diff --git a/modoboa_installer/scripts/base.py b/modoboa_installer/scripts/base.py index 241d382..821cb57 100644 --- a/modoboa_installer/scripts/base.py +++ b/modoboa_installer/scripts/base.py @@ -115,7 +115,9 @@ class Installer(object): else: dstname = ftpl src = self.get_file_path("{}.tpl".format(ftpl)) - dst = os.path.join(self.config_dir, dstname) + dst = dstname + if not dst.startswith("/"): + dst = os.path.join(self.config_dir, dst) utils.copy_from_template(src, dst, context) def restart_daemon(self): diff --git a/modoboa_installer/scripts/files/modoboa/crontab.tpl b/modoboa_installer/scripts/files/modoboa/crontab.tpl new file mode 100644 index 0000000..488410c --- /dev/null +++ b/modoboa_installer/scripts/files/modoboa/crontab.tpl @@ -0,0 +1,28 @@ +# +# Modoboa specific cron jobs +# +PYTHON=%{venv_path}/bin/python +INSTANCE=%{instance_path} + +# Operations on mailboxes +* * * * * %{dovecot_mailboxes_owner} $PYTHON $INSTANCE/manage.py handle_mailbox_operations + +# Sessions table cleanup +0 0 * * * root $PYTHON $INSTANCE/manage.py clearsessions + +# Logs table cleanup +0 0 * * * root $PYTHON $INSTANCE/manage.py cleanlogs + +{% if use_amavis %} +# Quarantine cleanup +0 0 * * * root $PYTHON $INSTANCE/manage.py qcleanup + +# Notifications about pending release requests +0 12 * * * root $PYTHON $INSTANCE/manage.py amnotify --baseurl='http://%{hostname}' +{% endif %} + +# Logs parsing +*/5 * * * * root $PYTHON $INSTANCE/manage.py logparser &> /dev/null + +# Radicale rights file +*/2 * * * * root $PYTHON $INSTANCE/manage.py generate_rights diff --git a/modoboa_installer/scripts/files/modoboa/sudoers.tpl b/modoboa_installer/scripts/files/modoboa/sudoers.tpl new file mode 100644 index 0000000..450cbca --- /dev/null +++ b/modoboa_installer/scripts/files/modoboa/sudoers.tpl @@ -0,0 +1 @@ +%{user} ALL=(%{dovecot_mailboxes_owner}) NOPASSWD: /usr/bin/doveadm diff --git a/modoboa_installer/scripts/modoboa.py b/modoboa_installer/scripts/modoboa.py index 6c4a8cd..50bad37 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -19,6 +19,10 @@ class Modoboa(base.Installer): packages = [ "python-dev", "libxml2-dev", "libxslt-dev", "libjpeg-dev", "librrd-dev", "rrdtool"] + config_files = [ + "crontab=/etc/cron.d/modoboa", + "sudoers=/etc/sudoers.d/modoboa", + ] with_db = True with_user = True