Hello, sorry to reply late, I’ve been out for work.
Responding to @adityahase, the DNS based multitenancy is done, I have three sites running in local mode, I access them from another computer on the local network as well as from the internet with the domain name plus port 8000 (one.domain.com:8000, two.domain.com:8000, three.domain.com:8000
). Regarding Let’s Encrypt I cannot configure it or assigning the mac server, the error is the following:
frappe@mac-server frappe-bench % sudo bench setup lets-encrypt one.domain.com
Password:
Running this will stop the nginx service temporarily causing your sites to go offline
Do you want to continue? [y/N]: y
Traceback (most recent call last):
File "/Users/frappe/frappe/bench-env/bin/bench", line 11, in <module>
load_entry_point('bench', 'console_scripts', 'bench')()
File "/Users/frappe/frappe/.bench-repo/bench/cli.py", line 41, in cli
bench_command()
File "/Users/frappe/frappe/bench-env/lib/python3.8/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/Users/frappe/frappe/bench-env/lib/python3.8/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/Users/frappe/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 "/Users/frappe/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 "/Users/frappe/frappe/bench-env/lib/python3.8/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/frappe/frappe/bench-env/lib/python3.8/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/Users/frappe/frappe/.bench-repo/bench/commands/setup.py", line 122, in setup_letsencrypt
setup_letsencrypt(site, custom_domain, bench_path=".", interactive=not non_interactive)
File "/Users/frappe/frappe/.bench-repo/bench/config/lets_encrypt.py", line 42, in setup_letsencrypt
run_certbot_and_setup_ssl(site, custom_domain, bench_path, interactive)
File "/Users/frappe/frappe/.bench-repo/bench/config/lets_encrypt.py", line 56, in run_certbot_and_setup_ssl
service('nginx', 'stop')
File "/Users/frappe/frappe/.bench-repo/bench/config/production_setup.py", line 79, in service
raise Exception('No service manager found')
Exception: No service manager found
If I try to configure ERPNext in production mode I get the following error:
frappe@mac-mini-2014 frappe-bench % sudo bench setup production frappe
$ sudo -H /usr/local/opt/python@3.8/bin/python3.8 -m pip install ansible
Collecting ansible
Downloading ansible-2.10.3.tar.gz (28.0 MB)
|████████████████████████████████| 28.0 MB 56.6 MB/s
Requirement already satisfied: ansible-base<2.11,>=2.10.3 in /usr/local/lib/python3.8/site-packages (from ansible) (2.10.3)
Requirement already satisfied: packaging in /usr/local/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.3->ansible) (20.4)
Requirement already satisfied: PyYAML in /usr/local/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.3->ansible) (5.3.1)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.3->ansible) (2.10.3)
Requirement already satisfied: cryptography in /usr/local/lib/python3.8/site-packages (from ansible-base<2.11,>=2.10.3->ansible) (3.2.1)
Requirement already satisfied: six in /usr/local/lib/python3.8/site-packages (from packaging->ansible-base<2.11,>=2.10.3->ansible) (1.12.0)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/lib/python3.8/site-packages (from packaging->ansible-base<2.11,>=2.10.3->ansible) (2.4.7)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.8/site-packages (from jinja2->ansible-base<2.11,>=2.10.3->ansible) (1.1.1)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/local/lib/python3.8/site-packages (from cryptography->ansible-base<2.11,>=2.10.3->ansible) (1.14.3)
Requirement already satisfied: pycparser in /usr/local/lib/python3.8/site-packages (from cffi!=1.11.3,>=1.8->cryptography->ansible-base<2.11,>=2.10.3->ansible) (2.20)
Building wheels for collected packages: ansible
Building wheel for ansible (setup.py) ... done
Created wheel for ansible: filename=ansible-2.10.3-py3-none-any.whl size=46091824 sha256=5d7dee141e0ebdc13ed160cffdcddf19986aef177980013cb9003e09489e0139
Stored in directory: /private/var/root/Library/Caches/pip/wheels/d4/aa/67/ab673e276d0f02bb35ac71ba7491b8456d56b3c7fe4322e7cb
Successfully built ansible
Installing collected packages: ansible
Successfully installed ansible-2.10.3
$ bench setup role fail2ban
Ansible is needed to run this command, please install it using 'pip install ansible'
$ bench setup role nginx
Ansible is needed to run this command, please install it using 'pip install ansible'
$ bench setup role supervisor
Ansible is needed to run this command, please install it using 'pip install ansible'
supervisor.conf already exists and this will overwrite it. Do you want to continue? [y/N]: y
nginx.conf already exists and this will overwrite it. Do you want to continue? [y/N]: y
Traceback (most recent call last):
File "/usr/local/bin/bench", line 8, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.8/site-packages/bench/cli.py", line 41, in cli
bench_command()
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/bench/commands/setup.py", line 73, in setup_production
setup_production(user=user, yes=yes)
File "/usr/local/lib/python3.8/site-packages/bench/config/production_setup.py", line 25, in setup_production
supervisor_conf = os.path.join(get_supervisor_confdir(), '{bench_name}.{extn}'.format(
File "/usr/local/Cellar/python@3.8/3.8.6_1/Frameworks/Python.framework/Versions/3.8/lib/python3.8/posixpath.py", line 76, in join
a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not NoneType
Responding to @rahy, I am using Frappe with ERPNext directly on macOS.
Thanks to both of you for your interest in helping, I am very grateful.