[Tutorial] Install v13 Production on Debian 10 VPS - Using “Easy Install” script - Now includes setting up SSL certificate!

Did you use the “Reload” function to refresh the frappe-erpnext cache in the browser?

Click on your icon in the upper right corner of the screen and select “Reload” from the drop down list. After it resets, check the version number again.


Seems like I was doing it wrong. I had to cd to the frappe-bench folder before updating bench. Once I did it properly, it worked well… Thank you for responding

Happily running 13.6 now

Confirmed successfully installed latest v13.6 on my Debian VPS cloud server 1Vcpu, 2G.
Many thanks.

instead of adding more domain to site1.local, do you know how to change it to different domain?

Edit the site_config.json for the site1.local site to delete the reference to the URL you wish to drop and save the file. (Be careful to keep the correct syntax for the file intact)


bench setup nginx
sudo service nginx reload

That will drop the URL assignment from the site. However, if your DNS pointers are still pointed to the site it may not stop the site login screen from being displayed. You will still be responsible for going to your DNS provider and changing the pointers manually.

Then using the previous instructions for adding a doman (URL) will let you finish the process of changing the URL assigned to the site.

Hope this helps.



Mate you are a champion, thanks for the tutorial. I sign up to the forum just to say this.
well done.

1 Like

Thank you @Maher_Smith for the kind words.

Please do not let this be the only reason for joining the forum. Communities like this thrive only when we all contribute. So while you may not have anything to add to the community knowledge today, there may come a time when you learn something we had not considered. Please be sure to come back and tell us about your discoveries when they have the potential to help others.

That is what makes this community special.

Welcome aboard!! :grin: It is great to have you as part of our forum community.




I’m trying to install on a debian 11 vm. I am getting this error:

The full traceback is:
File “/tmp/ansible_apt_payload_0fn05pkt/main.py”, line 718, in install_deb
pkg = apt.debfile.DebPackage(deb_file)
File “/usr/lib/python3/dist-packages/apt/debfile.py”, line 65, in init
File “/usr/lib/python3/dist-packages/apt/debfile.py”, line 75, in open
self._debfile = apt_inst.DebFile(self.filename)

fatal: [localhost]: FAILED! => {

This is the entire error:

The full traceback is:
File “/tmp/ansible_apt_payload_0fn05pkt/main.py”, line 718, in install_deb
pkg = apt.debfile.DebPackage(deb_file)
File “/usr/lib/python3/dist-packages/apt/debfile.py”, line 65, in init
File “/usr/lib/python3/dist-packages/apt/debfile.py”, line 75, in open
self._debfile = apt_inst.DebFile(self.filename)

fatal: [localhost]: FAILED! => {
“changed”: false,
“invocation”: {
“module_args”: {
“allow_unauthenticated”: false,
“autoclean”: false,
“autoremove”: false,
“cache_valid_time”: 0,
“deb”: “/tmp/wkhtmltox.deb”,
“default_release”: null,
“dpkg_options”: “force-confdef,force-confold”,
“force”: false,
“force_apt_get”: false,
“install_recommends”: null,
“only_upgrade”: false,
“package”: null,
“policy_rc_d”: null,
“purge”: false,
“state”: “present”,
“update_cache”: null,
“upgrade”: null
“msg”: “Unable to install package: E:Could not open file /tmp/wkhtmltox.deb - open (2: No such file or directory)”

Probably not a very good idea to attempt installs on Debian 11. It is not stable yet and the installation process has only just recently become stable using Debian 10.

If you wish to continue to play on the fringes of software stability, please open a separate thread for those conversations.

Your error messages give the perfect example of why we do not use developing operating system versions to try to run ERPNext. The example here is that the installer could not find the install package for one for the system prerequisites ( wkhtmltopdf ) and the install crashed.

Again, please follow the tutorials as presented in order to have success. If you chose to use alternate operating system versions then start your own thread to search out the solutions. Visitors to this thread are looking for success with the tutorial and not failures of experimental OS versions.


I was not aware that ERPNext was not stable on Debian 11. Thanks for your help on this. I will try this on 10.


This tutorial has worked for me, straight and concise, thanks and really appreciate it.
By the way, now I am in a dilemma to change the domain to a different one.
How would you go about it considering I have done the letsencrypt SSL configuration too.
Hopefully, soon I will be able to fully understand the whole architecture of the erpnext.
Thanks you in advance.

Ok… so all you have to do is a few simple steps:

  • get a new URL and set the DNS pointers to the correct IP Address
  • in the /frappe-bench directory run:

bench setup add-domain --site site1.local [your.new.URL]
(This step actually adds an additional URL to operate with your site_config.json)

bench setup nginx
(This step forces the system to read the newly added info from the site_config.json)

sudo service restart nginx
(This step forces the nginx service to restart using new URL info in site_config.json)

  • then re-run the commands for setting up the SSL certificate for the new URL
  • and finally, if you really want to completely eliminate the old references to the previous URL then edit the ‘site_config.json’ file to delete that site name and re-run the ‘bench setup nginx’ again to make it read the new json file.

This method of naming and renaming is much simpler than trying to rectify things if you had changed the directory names. I prefer using the method listed above.

Hope this helps.

BKM :nerd_face:

1 Like

AWS Lightsail with Debian 10.8

I followed the instructions precisely as specified, and created a user with name frappe.
When I invoke

sudo python3 install.py --verbose --production --user frappe --mariadb-version 10.5 --frappe-branch version-13 --erpnext-branch version-13

and after the mysql and Administrator passwords, I get the following error

    fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "/root/.ansible/tmp/ansible-tmp-1635329621.7844665-7255-72090185007833/AnsiballZ_apt.py:18: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses\n  import imp\nTraceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1635329621.7844665-7255-72090185007833/AnsiballZ_apt.py\", line 114, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1635329621.7844665-7255-72090185007833/AnsiballZ_apt.py\", line 106, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1635329621.7844665-7255-72090185007833/AnsiballZ_apt.py\", line 49, in invoke_module\n    imp.load_module('__main__', mod, module, MOD_DESC)\n  File \"/usr/lib/python3.7/imp.py\", line 234, in load_module\n    return load_source(name, filename, file)\n  File \"/usr/lib/python3.7/imp.py\", line 169, in load_source\n    module = _exec(spec, sys.modules[name])\n  File \"<frozen importlib._bootstrap>\", line 630, in _exec\n  File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n  File \"/tmp/ansible_apt_payload_o53ojbwm/__main__.py\", line 281, in <module>\n  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n  File \"<frozen importlib._bootstrap>\", line 967, in _find_and_load_unlocked\n  File \"<frozen importlib._bootstrap>\", line 668, in _load_unlocked\n  File \"<frozen importlib._bootstrap>\", line 638, in _load_backward_compatible\n  File \"/tmp/ansible_apt_payload_o53ojbwm/ansible_apt_payload.zip/ansible/module_utils/urls.py\", line 97, in <module>\n  File \"/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py\", line 46, in <module>\n    import OpenSSL.SSL\n  File \"/usr/local/lib/python3.7/dist-packages/OpenSSL/__init__.py\", line 8, in <module>\n    from OpenSSL import rand, crypto, SSL\n  File \"/usr/local/lib/python3.7/dist-packages/OpenSSL/rand.py\", line 211, in <module>\n    _lib.ERR_load_RAND_strings()\nAttributeError: module 'lib' has no attribute 'ERR_load_RAND_strings'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1

PLAY RECAP ***********************************************************************************************************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

Traceback (most recent call last):
  File "install.py", line 500, in <module>
  File "install.py", line 281, in install_bench
    run_playbook('site.yml', sudo=True, extra_vars=extra_vars)
  File "install.py", line 416, in run_playbook
    success = subprocess.check_call(args, cwd=playbooks_folder, stdout=log_stream, stderr=sys.stderr)
  File "/usr/lib/python3.7/subprocess.py", line 347, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ansible-playbook', '-c', 'local', 'site.yml', '-vvvv', '-e', '@/tmp/extra_vars.json', '--become', '--become-user=frappe']' returned non-zero exit status 2.

I see this is not a new error as others have posted similar topics but without any resolution as yet. Does anyone have the faintest idea of how to resolve this.

From the above error message it appears that the cause is

the imp module is deprecated in favour of importlib

Does anyone know how to fix this?

Yes, there is another way.

I abandoned the easy install script back in July because of so many changes to the OS images and the constant moving target of the prerequisites needed to get a successful install. There had also been a great deal of confusion over whether the easy install script would continue to be maintained. So I moved to another install method.

Since sometime near the end of August, I have been using the following install instructions. I only made them an official topic about 3 weeks ago:


This set of instructions have not failed in the several months I have been using them. I have 6 sandbox servers and 3 production servers running from these instructions right now.

Even though the title says it installs v13.11, it will install whatever the most recent release version is at the time of installation.

Hope this helps.


1 Like

Hi, I get NET::ERR_CERT_COMMON_NAME_INVALID when I add SSL to another site, what am I doing wrong?