Installation instructions are outdated

My intention was not to get paid for the script that’s why i made it publicly available and I try to suggest it to anyone who is in need of installation guidance. I intend to continue to update it (so long as frappe remains truly free and open source which is now doubtful going by recent events). I am actually working on improvements to better handle logging so users can easily see errors if/when they occur. That update will be released soon.

Should you wish to show appreciation for my effort though, you can private message me and i’ll share info on how you can buy me coffee :wink:

2 Likes

I have a development background, but I am not a big fan of docker. It just kind of ‘moves’ the complexity without solving it

I installed the frappe framework on Ubuntu version 24 step by step (I used the online instructions I did not try flexy2ky’s script as I was not aware of it)

I did get it working but it took a long time and many times I got errors. Fortunately the error messages gave clues on how to solve.

what do you mean?

This has been implemented as part of the latest update pushed. Users are now given the option of installing ERPNext as well as HRMS. Other apps will be included in due course.

1 Like

I disagree. Docker is much easier. What’s hard about it is learning yet another syntax. I gotta be in the mood for that. Put off learning Kubernetes for a year because “I didn’t feel like it” :stuck_out_tongue:

Essentially, docker is the install, and once you got the code(docker-compose file) you can set and forget with minor tweaks along the way.

Volumes and Db are mounted to the container. Or their own separate containers. Did you get a version that throws errors? No problem, delete that container and redownload the old version until erpnext folks iron out the issues.
Back up and running in as much time as it takes to nano docker-compose.yml and change erpnext version. 2 minutes.

On a manual install, if dependencies are updated along with the bork install… have fun fixing that. :stuck_out_tongue:

Not sure what to backup? nano docker compose and checkout volumes. Or just use the inbuilt backup tool.

Don’t get me wrong, this script from @flexy2ky is a masterpiece, but docker has it’s advantages beyond what a manual install can provide. Flexy’s script is easier than a docker install, but docker is better/easier than a manual install imo.

You make some really good points there Jake. I guess I stand by my ‘docker moves complexity rather than solves it’ statement, just because that’s what I’ve observed. But I am open minded on it.

I guess also even if you take moving complexity there is an argument that the complexity should be moved - from regular developers to infrastructure experts. Then us regular devs could simply run a line or two of script and have everything magically set up for us :slight_smile:

@flexy2ky This is nice to hear, Thank you. i will try.

@flexy2ky

i have this error after setting password for Administrator;

SUCCESS: Bench frappe-bench initialized
Bench installation complete!
Preparing for Production installation. This could take a minute... or two so please be patient.
Enter the site name (If you wish to install SSL later, please enter a FQDN): fsapp
Enter the Administrator password:
Confirm password:
Password confirmed

Now setting up your site. This might take a few minutes. Please wait...
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.10/logging/__init__.py", line 1103, in emit
    stream.write(msg + self.terminator)
UnicodeEncodeError: 'utf-8' codec can't encode character '\udcc4' in position 59: surrogates not allowed
Call stack:
  File "/usr/local/bin/bench", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.10/dist-packages/bench/cli.py", line 81, in cli
    logger.info(command)
Message: '/usr/local/bin/bench new-site \udcc4fsapp --db-root-password 12345 --admin-password 12345'
Arguments: ()
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 114, in <module>
    main()
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 20, in main
    click.Group(commands=commands)(prog_name="bench")
  File "/home/frappeuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/frappeuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/frappeuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappeuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappeuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/frappeuser/frappe-bench/env/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/commands/site.py", line 66, in new_site
    frappe.init(site=site, new_site=True)
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/__init__.py", line 313, in init
    setup_module_map(include_all_apps=not (frappe.request or frappe.job or frappe.flags.in_migrate))
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/__init__.py", line 1686, in setup_module_map
    apps = get_all_apps(with_internal_apps=True)
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/__init__.py", line 1551, in get_all_apps
    for app in get_file_items(os.path.join(local.site_path, "apps.txt")):
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/__init__.py", line 1717, in get_file_items
    content = read_file(path, raise_not_found=raise_not_found)
  File "/home/frappeuser/frappe-bench/apps/frappe/frappe/__init__.py", line 1739, in read_file
    path = path.encode("utf-8")
UnicodeEncodeError: 'utf-8' codec can't encode character '\udcc4' in position 2: surrogates not allowed
An error occurred on line 369 with exit status 0

The site name you used it not allowed by Frappe.

@flexy2ky what should i do, how can i revert everything back? is it enough to delete frappe-bench folder and re-run the script?

the site has nort been created so just delete the bench folder and re-run the script

@flexy2ky , it seems working, thank you.

1 Like