Frappe & ERPNext v16 Installation Ubuntu 25

Thank you for your effort.

Can it be on a VPS server running Ubuntu 24.04?

for erpnext 16 & hrms 16

Thank you so much, i’m also on Ubuntu 25

I was getting this error while installing erpnext 16 on ubuntu 25 at step 10

PermissionError: [Errno 13] Permission denied: ‘./apps’

Resolved it by giving sudo access & was able to access erpnext.

But the command ‘bench setup production frappe_user’ is not working

the error is 'sudo-rs: ‘bench’: command not found’

Thanks

Missing wkhtmltopdf.
That said, I remember some chatter regarding replacing wkhtmltopdf for something like puppeteer (maybe).
We need to have a good, coherent and reproducible method for spinning a Frappe-Bench machine (with or without ERP-Next).
I am currently working on this, so it will be as simple as possible, and still, I don’t know what to do about wkhtmltopdf.

Detailed steps for Ubuntu 25 Enterprise Production Setup & Security (ERPNext v16 / Ubuntu 25)

Thank you for your effort

Can the same steps be used for vps server Ubuntu 24.04?

okay sure, let me work on it

thank you but not work with vps server ubuntu 24.04 LTS

Will work on this version tomorrow

1 Like

Thank you for your effort

If anyone wants one click hassle free v16 please check out

1 Like

thank you but i get this error

Terminated
error Command failed with exit code 143.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Traceback (most recent call last):
  File "/home/zain/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/home/zain/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1873, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/zain/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1269, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zain/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 824, in invoke
    return callback(*args, **kwargs)
  File "/home/zain/frappe-bench/apps/frappe/frappe/commands/utils.py", line 90, in build
    bundle(
    ~~~~~~^
        mode,
     ^^^^^
    ...<6 lines>...
        esbuild_target=esbuild_target,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/zain/frappe-bench/apps/frappe/frappe/build.py", line 262, in bundle
    frappe.commands.popen(command, cwd=frappe_app_path, env=get_node_env(), raise_err=True)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zain/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 97, in popen
    raise subprocess.CalledProcessError(return_, command)
subprocess.CalledProcessError: Command 'yarn run production --run-build-command' returned non-zero exit status 143.

Command 'yarn run production --run-build-command' returned non-zero exit status 143.
subprocess.CalledProcessError: Command 'bench build' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/dist-packages/bench/commands/make.py", line 75, in init
    init(
  File "/usr/local/lib/python3.12/dist-packages/bench/utils/render.py", line 105, in wrapper_fn
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/dist-packages/bench/utils/system.py", line 112, in init
    build_assets(bench_path=path)
  File "/usr/local/lib/python3.12/dist-packages/bench/utils/bench.py", line 405, in build_assets
    exec_cmd(command, cwd=bench_path, env=env)
  File "/usr/local/lib/python3.12/dist-packages/bench/utils/__init__.py", line 193, in exec_cmd
    raise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: bench build

ERROR: There was a problem while creating frappe-bench

are you can make guide step by step to install ?

Many thanks for this & your effort - tried with Ubuntu 25.10

Everything OK until Step 12: bench get-app hrms --branch v16.0.0

error Error: ``https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz:`` Request failed "500 Internal Server Error"

error Command failed with exit code 1.

And then at Step 13: bench --site site1.local install-app erpnext

Please make sure that Redis Queue runs @ redis://127.0.0.1:11000. Redis reported error: Error 111 connecting to 127.0.0.1:11000. Connection refused.

From memory Redis used to do something similar with ERPNext v15 install - can’t remember the fix.

And then with: bench --site site1.local install-app hrms

It returned that “App erpnext already installed” but:

An error occurred while installing hrms: App hrms not in apps.txt

There’s discussion about this error in reddit here. I’m trying to get my head around it & will post here IF I find a fix.

OK - I get (from within ~/frappe-bench)

bench setup production frappe_user
WARN: superuser privileges required for this command

but if I do: bench -v setup production frappe_user - then it gets as far as fail2ban before giving that error:

$ bench setup role fail2ban
WARN: superuser privileges required for this command

And doing: 'bench -v setup role fail2ban’ returns:
Ansible is needed to run this command, please install it using 'pip install ansible'

I had production setup steps here

Still getting issues with redis … it’s as if frappe-bench/sites/common_site_config.json

isn’t doing what it’s supposed to do & so redis not listening on 127.0.0.1:11000 or 127.0.0.1:13000

and throwing errors at Step 13:

bench --site site1.local install-app erpnext

bench --site site1.local install-app hrms

I’m just running 25.10 on bare metal