[SOLVED] Lets-encrypt setup issue

I setup lets-encrypt follow the bench document.But it says “user frappe is not allowed to execute the command”

frappe@weber:~/frappe-bench$ sudo -H bench setup lets-encrypt site.local1
[sudo] password for frappe:
Sorry, user frappe is not allowed to execute '/usr/local/bin/bench setup lets-encrypt site.local1' as root on weber.

This problem is fixed by “bench setup sudoers frappe”

But i have a new error.

 sudo -H bench setup lets-encrypt site.local1
Traceback (most recent call last):
  File "/usr/local/bin/bench", line 9, in <module>
    load_entry_point('bench==0.0.0', 'console_scripts', 'bench')()
  File "/home/frappe/bench-repo/bench/cli.py", line 40, in cli
    bench_command()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/bench-repo/bench/commands/setup.py", line 83, in setup_letsencrypt
    from bench.config.lets_encrypt import setup_letsencrypt
  File "/home/frappe/bench-repo/bench/config/lets_encrypt.py", line 7, in <module>
    from crontab import CronTab
ImportError: No module named crontab

Just run pip install python-crontab and run that command again. Also running lets-encrypt on site1.local makes no sense because that’s not even a real domain. Can you tell me what you’re trying to achieve?

2 Likes

First Let’s encrypt does not work on local domains, your domain must be registered domain on internet.
Second thing, your bench does not have sudo rights.
try $ sudo bench setup sudoers

if that does not work add manually following to your sudoers file in under /etc directory depending upon OS.
For Ubuntu 14.04 LTS:

$ nano /etc/sudoers.d/frappe

(ADD FOLLOWING and SAVE IT and Go BACK TO frappe to check sudo)


frappe ALL = (root) /usr/sbin/service
frappe ALL = (root) NOPASSWD: /usr/sbin/service nginx *
frappe ALL = (root) NOPASSWD: /usr/sbin/service supervisord *



frappe ALL = (root) NOPASSWD: /usr/bin/supervisorctl


frappe ALL = (root) NOPASSWD: /usr/sbin/nginx

frappe ALL = (root) NOPASSWD: /opt/certbot-auto
frappe ALL = (root) NOPASSWD: /usr/local/bin/bench
Defaults:frappe !requiretty
2 Likes