[Solved] What changed in install.py today?!? Worked this morning, Fails now. (v13.1.1 & v13.2.x)

BTW…

For those still tracking this thread:

Easy Install method is still not working 23 days after originally reporting the problem.

BKM

Hi @bkm!

I’m not a developer. Saying that, I’m using Contabo since a couple of years and actually using easy install method. It’s having these warnings [Release Note] ERPNext and Frappe Version 13.3.0 - #9 by krnkris but is working on new installs.

VPS with 4 vCPU Cores, 8 GB RAM and 200 GB SSD, using Ubuntu v20.04

apt-get update

apt-get upgrade

adduser frappe

usermod -aG sudo frappe

su - frappe

export LC_ALL=C.UTF-8

sudo apt-get install python3-minimal git build-essential python3-setuptools python3-pip libffi-dev libssl-dev wkhtmltopdf

wget https://raw.githubusercontent.com/frappe/bench/develop/install.py

sudo apt install python3-testresources

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

cd /home/frappe/frappe-bench/

bench update

exit

To Multitenant:

Rename folder site1.local at /home/frappe/frappe-bench/sites to whatever domain name will be used

Replace site1.local at currentsite.txt

Replace site1.local at nginx.conf at cd /home/frappe/frappe-bench/config

Add hostname at /etc/hostname

Add hostname at /etc/hosts

Add hostname at cd /home/frappe/frappe-bench/sites/[site name]/site_config.json
Should look like this:
{
          "db_name": "[site name]",
          "db_password": "*********",
          "host_name": "[domain name]"
}

sudo apt-get install certbot

sudo systemctl stop nginx

sudo certbot --standalone --agree-tos --domain [domain name] -n -m [your email] certonly

sudo systemctl start nginx

If missing, add the following to cd /home/frappe/frappe-bench/sites/[site name]/site_config.json
{
          "ssl_certificate": "/etc/letsencrypt/live/[domain name]/fullchain.pem",
          "ssl_certificate_key": "/etc/letsencrypt/live/[domain name]/privkey.pem"
}

cd /home/frappe/frappe-bench

bench setup nginx

sudo service nginx reload

sudo service nginx restart
3 Likes

@Francisco_Buendia

What OS are you using on Contabo?

BKM

Sorry, I missed to mention:

Ubuntu v20.04 on a VPS with 4 vCPU Cores, 8 GB RAM and 200 GB SSD

Thank you.

Did you get it to work @bkm?

ubuntu 20.10 2gb ram 14% 40GB storage used

I logged in my system through the browser, configured Admin user, and after a few days (not touching anything) I log in so I can find out how to setup my custom domain and the ERP system is offline. It doesn’t auto-start anymore on VPS reboot, when I use systemctl status supervisor, mariadb and nginx all are active. It says the [ip] does not exist when opening:

https://i.imgur.com/TxD2ame.png

Using the ports 8000, 80, 443, all give “Connection refused” (my supervisor config uses port 8000 but it was working just with the ip). The main error seems to be:

redis_socketio.1: Could not create server TCP listening socket 127.0.0.1:12000: bind: Address already in use


That error appears here, this is what happens when I do bench start: (sudo bench start does same thing)

click to expand
gian@vps-13eeb010:~/frappe-bench$ bench start
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
22:53:36 system           | redis_cache.1 started (pid=1375)
22:53:36 system           | redis_socketio.1 started (pid=1372)
22:53:36 system           | socketio.1 started (pid=1377)
22:53:36 system           | redis_queue.1 started (pid=1381)
22:53:36 system           | web.1 started (pid=1376)
22:53:36 system           | watch.1 started (pid=1382)
22:53:36 system           | worker_short.1 started (pid=1394)
22:53:36 worker_short.1   | /bin/sh: 1: cannot create logs/worker.log: Permission denied
22:53:36 system           | worker_short.1 stopped (rc=2)
22:53:36 system           | schedule.1 started (pid=1393)
/usr/lib/python3.8/subprocess.py:844: RuntimeWarning: line buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used
  self.stdout = io.open(c2pread, 'rb', bufsize)
22:53:36 system           | worker_long.1 started (pid=1395)
22:53:36 worker_long.1    | /bin/sh: 1: cannot create logs/worker.log: Permission denied
22:53:36 system           | worker_long.1 stopped (rc=2)
22:53:36 redis_socketio.1 | 1378:C 21 May 2021 22:53:36.455 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
22:53:36 redis_socketio.1 | 1378:C 21 May 2021 22:53:36.455 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=1378, just started
22:53:36 redis_socketio.1 | 1378:C 21 May 2021 22:53:36.456 # Configuration loaded
22:53:36 redis_socketio.1 | 1378:M 21 May 2021 22:53:36.457 * Increased maximum number of open files to 10032 (it was originally set to 1024).
22:53:36 redis_cache.1    | 1379:C 21 May 2021 22:53:36.468 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
22:53:36 redis_cache.1    | 1379:C 21 May 2021 22:53:36.469 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=1379, just started
22:53:36 redis_cache.1    | 1379:C 21 May 2021 22:53:36.471 # Configuration loaded
22:53:36 redis_cache.1    | 1379:M 21 May 2021 22:53:36.472 * Increased maximum number of open files to 10032 (it was originally set to 1024).
22:53:36 system           | worker_default.1 started (pid=1401)
22:53:36 system           | sending SIGTERM to redis_cache.1 (pid 1375)
22:53:36 system           | sending SIGTERM to redis_socketio.1 (pid 1372)
22:53:36 system           | sending SIGTERM to redis_queue.1 (pid 1381)
22:53:36 system           | sending SIGTERM to web.1 (pid 1376)
22:53:36 system           | sending SIGTERM to socketio.1 (pid 1377)
22:53:36 system           | sending SIGTERM to watch.1 (pid 1382)
22:53:36 system           | sending SIGTERM to schedule.1 (pid 1393)
22:53:36 system           | sending SIGTERM to worker_default.1 (pid 1401)
22:53:36 worker_default.1 | /bin/sh: 1: cannot create logs/worker.log: Permission denied
22:53:36 system           | worker_default.1 stopped (rc=2)
22:53:36 redis_socketio.1 | 1378:signal-handler (1621637616) Received SIGTERM scheduling shutdown...
22:53:36 redis_socketio.1 | 1378:M 21 May 2021 22:53:36.477 # Could not create server TCP listening socket 127.0.0.1:12000: bind: Address already in use
22:53:36 system           | redis_socketio.1 stopped (rc=-15)
22:53:36 system           | redis_queue.1 stopped (rc=-15)
22:53:36 redis_cache.1    | 1379:signal-handler (1621637616) Received SIGTERM scheduling shutdown...
22:53:36 redis_cache.1    | 1379:M 21 May 2021 22:53:36.483 # Could not create server TCP listening socket 127.0.0.1:13000: bind: Address already in use
22:53:36 system           | web.1 stopped (rc=-15)
22:53:36 system           | redis_cache.1 stopped (rc=-15)
22:53:36 system           | socketio.1 stopped (rc=-15)
22:53:36 system           | watch.1 stopped (rc=-15)
22:53:36 system           | schedule.1 stopped (rc=-15)

I kinda feel like a noob for this, but it’s not even my fault since I didn’t even touch the system and it breaks mysteriously by itself. :laughing:


edit: found this in frappe-bench/logs/worker.error.log

frappe.exceptions.LinkValidationError: Could not find User Id: 
my-email@gmail.com [replaced cuz its my email]
click to expand
22:07:24 Traceback (most recent call last):
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/worker.py", line 1008, in perform_job
    rv = job.perform()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 706, in perform
    self._result = self._execute()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 729, in _execute
    result = self.func(*self.args, **self.kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 100, in execute_job
    method(**kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/core/doctype/user/user.py", line 1177, in create_contact
    contact.insert(ignore_permissions=True, ignore_links=ignore_links, ignore_mandatory=ignore_mandatory)
  File "/home/gian/frappe-bench/apps/frappe/frappe/model/document.py", line 231, in insert
    self._validate_links()
  File "/home/gian/frappe-bench/apps/frappe/frappe/model/document.py", line 826, in _validate_links
    frappe.throw(_("Could not find {0}").format(msg),
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 433, in throw
    msgprint(msg, raise_exception=exc, title=title, indicator='red', is_minimizable=is_minimizable, wide=wide, as_list=as_list)
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 412, in msgprint
    _raise_exception()
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 366, in _raise_exception
    raise raise_exception(msg)
frappe.exceptions.LinkValidationError: Could not find User Id: my-email@gmail.com
Traceback (most recent call last):
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/worker.py", line 1008, in perform_job
    rv = job.perform()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 706, in perform
    self._result = self._execute()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 729, in _execute
    result = self.func(*self.args, **self.kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 100, in execute_job
    method(**kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/core/doctype/user/user.py", line 1177, in create_contact
22:07:24 Traceback (most recent call last):
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/worker.py", line 1008, in perform_job
    rv = job.perform()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 706, in perform
    self._result = self._execute()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 729, in _execute
    result = self.func(*self.args, **self.kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 100, in execute_job
    method(**kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/core/doctype/user/user.py", line 1177, in create_contact
    contact.insert(ignore_permissions=True, ignore_links=ignore_links, ignore_mandatory=ignore_mandatory)
  File "/home/gian/frappe-bench/apps/frappe/frappe/model/document.py", line 231, in insert
    self._validate_links()
  File "/home/gian/frappe-bench/apps/frappe/frappe/model/document.py", line 826, in _validate_links
    frappe.throw(_("Could not find {0}").format(msg),
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 433, in throw
    msgprint(msg, raise_exception=exc, title=title, indicator='red', is_minimizable=is_minimizable, wide=wide, as_list=as_list)
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 412, in msgprint
    _raise_exception()
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 366, in _raise_exception
    raise raise_exception(msg)
frappe.exceptions.LinkValidationError: Could not find User Id: my-email@gmail.com
Traceback (most recent call last):
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/worker.py", line 1008, in perform_job
    rv = job.perform()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 706, in perform
    self._result = self._execute()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 729, in _execute
    result = self.func(*self.args, **self.kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 100, in execute_job
    method(**kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/core/doctype/user/user.py", line 1177, in create_contact
    contact.insert(ignore_permissions=True, ignore_links=ignore_links, ignore_mandatory=ignore_mandatory)
  File "/home/gian/frappe-bench/apps/frappe/frappe/model/document.py", line 231, in insert
    self._validate_links()
  File "/home/gian/frappe-bench/apps/frappe/frappe/model/document.py", line 826, in _validate_links
    frappe.throw(_("Could not find {0}").format(msg),
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 433, in throw
    msgprint(msg, raise_exception=exc, title=title, indicator='red', is_minimizable=is_minimizable, wide=wide, as_list=as_list)
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 412, in msgprint
    _raise_exception()
  File "/home/gian/frappe-bench/apps/frappe/frappe/__init__.py", line 366, in _raise_exception
    raise raise_exception(msg)
frappe.exceptions.LinkValidationError: Could not find User Id: my-email@gmail.com
Traceback (most recent call last):
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/worker.py", line 1008, in perform_job
    rv = job.perform()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 706, in perform
    self._result = self._execute()
  File "/home/gian/frappe-bench/env/lib/python3.8/site-packages/rq/job.py", line 729, in _execute
    result = self.func(*self.args, **self.kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 100, in execute_job
    method(**kwargs)
  File "/home/gian/frappe-bench/apps/frappe/frappe/core/doctype/user/user.py", line 1177, in create_contact

Trying these steps exactly as it is but just version-12 is used and username is as per my requirement.
Contabo Ubuntu-20.04 I hope it works.

Will share the feedback soon.

First, nginx and supervisor does not have anything to do when you use bench start (you are in develop mode). Nginx and supervisor are only used on production mode.

Second, When you are in develop mode, your system will not restart automatically (when you use bench start).

If you want ERPNext to start-up automatically when VPS reboots, you must be in production mode. You use bench restart in production mode.

There are some discussions here on what is the difference between develop and production mode.

1 Like

Failed with the same error.

       "    main()",
        "  File \"/home/adliyaph/frappe-bench/apps/frappe/frappe/utils/bench_helper.py\", line 18, in main",
        "    click.Group(commands=commands)(prog_name='bench')",
        "  File \"/home/adliyaph/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 764, in __call__",
        "    return self.main(*args, **kwargs)",
        "  File \"/home/adliyaph/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 717, in main",
        "    rv = self.invoke(ctx)",
        "  File \"/home/adliyaph/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 1137, in invoke",
        "    return _process_result(sub_ctx.command.invoke(sub_ctx))",
        "  File \"/home/adliyaph/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 1137, in invoke",
        "    return _process_result(sub_ctx.command.invoke(sub_ctx))",
        "  File \"/home/adliyaph/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 956, in invoke",
        "    return ctx.invoke(self.callback, **ctx.params)",
        "  File \"/home/adliyaph/frappe-bench/env/lib/python3.8/site-packages/click/core.py\", line 555, in invoke",
        "    return callback(*args, **kwargs)",
        "  File \"/home/adliyaph/frappe-bench/apps/frappe/frappe/commands/site.py\", line 41, in new_site",
        "    frappe.init(site=site, new_site=True)",
        "  File \"/home/adliyaph/frappe-bench/apps/frappe/frappe/__init__.py\", line 175, in init",
        "    setup_module_map()",
        "  File \"/home/adliyaph/frappe-bench/apps/frappe/frappe/__init__.py\", line 1019, in setup_module_map",
        "    for module in get_module_list(app):",
        "  File \"/home/adliyaph/frappe-bench/apps/frappe/frappe/__init__.py\", line 882, in get_module_list",
        "    return get_file_items(os.path.join(os.path.dirname(get_module(app_name).__file__), \"modules.txt\"))",
        "  File \"/home/adliyaph/frappe-bench/apps/frappe/frappe/__init__.py\", line 840, in get_module",
        "    return importlib.import_module(modulename)",
        "  File \"/usr/lib/python3.8/importlib/__init__.py\", line 127, in import_module",
        "    return _bootstrap._gcd_import(name[level:], package, level)",
        "  File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import",
        "  File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load",
        "  File \"<frozen importlib._bootstrap>\", line 973, in _find_and_load_unlocked",
        "ModuleNotFoundError: No module named 'erpnext'"
    ],
    "stdout": "",
    "stdout_lines": []
}

PLAY RECAP *********************************************************************
localhost                  : ok=80   changed=46   unreachable=0    failed=1    skipped=61   rescued=0    ignored=0   

Update:
I installed python3.6 and switch bench env to it and then installed all requirements for erpnext.
even did
pip install cython as it was missing still getting the same error
Error Log

It looks like you don’t have erpnext / frappe installed.

Not yet. The only thing I have working is the 24 steps posted in this thread. The Easy Install is still broken.

BKM

I have never tried Ubuntu 20.10. That is not the LTS release so I tend to stay away from the non-LTS releases because they tend to change to often.

BKM

1 Like

In the file below:

/etc/redis/redis.conf

Change bind 127.0.0.1 ::1 as bind 127.0.0.1
and run install.py again

Thanks for the clarifications, I didn’t know I was in dev mode since bkm’s tutorial was setting up for production. I can’t seem to find the documentation I want about the ERPNext app itself, inside Bench’s site. Also, the fact that I just now started a Linux course probably has something to do with my problems. That’s why I say, thanks for the help. I’ll search more about that.

Documentation began to make more sense much later. But it helped that I read it. Meantime, if you feel in a dead end anytime, just post in this forum.

1 Like

i have a permision error but the solution is add

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo -s

Great guide!! :slight_smile:
trying to install frappe without ERPNext.
got all the way to

created a blank app using bench new-app [appname] as described here and installed using bench --site site.local install-app [app-name]
all went well including an addition of

the only problem is: I rebooted and I can’t load the site (“The connection was reset” on port 8000)
:-\

:man_facepalming:
my bad…
port 80 works fine.
:slight_smile:

Welcome to the community @alonbr

Happy to hear that you were able to use this to get a success story in your ERPNext adventure.

Thanks for posting your results.

BKM