diff --git a/installer.cfg b/installer.cfg new file mode 100644 index 00000000..bfdce208 --- /dev/null +++ b/installer.cfg @@ -0,0 +1,123 @@ +[general] +hostname = mail.%(domain)s + +[certificate] +generate = true +type = self-signed + +[letsencrypt] +email = admin@example.com + +[database] +engine = mysql +host = 127.0.0.1 +install = true + +[postgres] +user = postgres +password = + +[mysql] +user = root +password = +charset = utf8 +collation = utf8_general_ci + +[fail2ban] +enabled = true +config_dir = /etc/fail2ban +max_retry = 20 +ban_time = 3600 +find_time = 30 + +[modoboa] +user = modoboa +home_dir = /srv/modoboa +venv_path = %(home_dir)s/env +instance_path = %(home_dir)s/instance +timezone = Europe/Paris +dbname = modoboa +dbuser = modoboa +dbpassword = w7l9tRsrpxZW8fd8 +extensions = modoboa-amavis modoboa-postfix-autoreply modoboa-sievefilters modoboa-webmail modoboa-contacts modoboa-radicale +devmode = false + +[automx] +enabled = true +user = automx +config_dir = /etc +home_dir = /srv/automx +venv_path = %(home_dir)s/env +instance_path = %(home_dir)s/instance + +[amavis] +enabled = true +user = amavis +max_servers = 2 +dbname = amavis +dbuser = amavis +dbpassword = rluH50ZePN5JfnCq + +[clamav] +enabled = true +user = clamav + +[dovecot] +enabled = true +config_dir = /etc/dovecot +user = dovecot +home_dir = /srv/vmail +mailboxes_owner = vmail +extra_protocols = +postmaster_address = postmaster@%(domain)s +radicale_auth_socket_path = /var/run/dovecot/auth-radicale + +[nginx] +enabled = true +config_dir = /etc/nginx + +[razor] +enabled = true +config_dir = /etc/razor + +[postfix] +enabled = true +config_dir = /etc/postfix +message_size_limit = 11534336 +dhe_group = 4096 + +[postwhite] +enabled = true +config_dir = /etc + +[spamassassin] +enabled = true +config_dir = /etc/mail/spamassassin +dbname = spamassassin +dbuser = spamassassin +dbpassword = WyCxTR0EJp1GrMf1 + +[uwsgi] +enabled = true +config_dir = /etc/uwsgi +nb_processes = 2 + +[radicale] +enabled = true +user = radicale +config_dir = /etc/radicale +home_dir = /srv/radicale +venv_path = %(home_dir)s/env + +[opendkim] +enabled = true +user = opendkim +config_dir = /etc +port = 12345 +keys_storage_dir = /var/lib/dkim +dbuser = opendkim +dbpassword = p54KctDPaSy2ENgl + +[backup] +default_path = ./modoboa_backup/ + diff --git a/modoboa_installer/package.py b/modoboa_installer/package.py index 58ee940c..bb10ddbc 100644 --- a/modoboa_installer/package.py +++ b/modoboa_installer/package.py @@ -90,7 +90,7 @@ class RPMPackage(Package): def __init__(self, dist_name): """Initialize backend.""" super(RPMPackage, self).__init__(dist_name) - if "centos" in dist_name: + if dist_name in ["centos", "oracle linux server"]: self.install("epel-release") def install(self, name): @@ -99,7 +99,7 @@ def install(self, name): def install_many(self, names): """Install many packages.""" - return utils.exec_cmd("yum install -y --quiet {}".format(" ".join(names))) + return utils.exec_cmd("yum install -y {}".format(" ".join(names))) # Before it was quiet def get_installed_version(self, name): """Get installed package version.""" @@ -117,7 +117,7 @@ def get_backend(): backend = None if distname in ["debian", "debian gnu/linux", "ubuntu", "linuxmint"]: backend = DEBPackage - elif "centos" in distname: + elif distname in ["centos", "oracle linux server"]: backend = RPMPackage else: raise NotImplementedError( diff --git a/modoboa_installer/python.py b/modoboa_installer/python.py index 87903caf..9961db3d 100644 --- a/modoboa_installer/python.py +++ b/modoboa_installer/python.py @@ -103,12 +103,13 @@ def setup_virtualenv(path, sudo_user=None): """Install a virtualenv if needed.""" if os.path.exists(path): return - if utils.dist_name().startswith("centos"): + if utils.dist_name().startswith("centos") or utils.dist_name().startswith("oracle linux server"):: python_binary = "python3" packages = ["python3"] else: python_binary = "python3" packages = ["python3-venv"] + package.backend.install_many(packages) with utils.settings(sudo_user=sudo_user): utils.exec_cmd("{} -m venv {}".format(python_binary, path)) diff --git a/modoboa_installer/scripts/dovecot.py b/modoboa_installer/scripts/dovecot.py index 2559b70a..6831f7ff 100644 --- a/modoboa_installer/scripts/dovecot.py +++ b/modoboa_installer/scripts/dovecot.py @@ -104,7 +104,7 @@ def get_template_context(self): ssl_protocols = "!SSLv3" if ssl_protocol_parameter == "ssl_min_protocol": ssl_protocols = "TLSv1" - if "centos" in utils.dist_name(): + if utils.dist_name() in ["centos", "oracle linux server"]: protocols = "protocols = imap lmtp sieve" extra_protocols = self.config.get("dovecot", "extra_protocols") if extra_protocols: diff --git a/modoboa_installer/scripts/modoboa.py b/modoboa_installer/scripts/modoboa.py index 1904a144..004cecd2 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -237,10 +237,16 @@ def get_config_files(self): # Add worker for dkim if needed if self.modoboa_2_2_or_greater: - config_files.append( - "supervisor-rq-dkim=/etc/supervisor/conf.d/modoboa-dkim-worker.conf") - config_files.append( - "supervisor-rq-base=/etc/supervisor/conf.d/modoboa-base-worker.conf") + if package.backend.FORMAT == "deb": + config_files.append( + "supervisor-rq-dkim=/etc/supervisor/conf.d/modoboa-dkim-worker.conf") + config_files.append( + "supervisor-rq-base=/etc/supervisor/conf.d/modoboa-base-worker.conf") + else: + config_files.append( + "supervisor-rq-dkim=/etc/supervisord.d/modoboa-dkim-worker.conf") + config_files.append( + "supervisor-rq-base=/etc/supervisord.d/modoboa-base-worker.conf") return config_files def get_template_context(self): @@ -313,7 +319,7 @@ def apply_settings(self): def post_run(self): """Additional tasks.""" - if 'centos' in utils.dist_name(): + if utils.dist_name() in ["centos", "oracle linux server"]: system.enable_and_start_service("redis") else: system.enable_and_start_service("redis-server") @@ -321,7 +327,7 @@ def post_run(self): if not self.upgrade: self.apply_settings() - if 'centos' in utils.dist_name(): + if utils.dist_name() in ["centos", "oracle linux server"]: supervisor = "supervisord" else: supervisor = "supervisor" diff --git a/modoboa_installer/scripts/opendkim.py b/modoboa_installer/scripts/opendkim.py index fea60a75..b7425d78 100644 --- a/modoboa_installer/scripts/opendkim.py +++ b/modoboa_installer/scripts/opendkim.py @@ -95,7 +95,7 @@ def post_run(self): with open(params_file, "a") as f: f.write('\n'.join([ "", - 'SOCKET="inet:12345@localhost"', + 'Socket inet:12345@localhost', ])) # Make sure opendkim is started after postgresql and mysql, diff --git a/modoboa_installer/scripts/uwsgi.py b/modoboa_installer/scripts/uwsgi.py index a20e8658..2e9dcf28 100644 --- a/modoboa_installer/scripts/uwsgi.py +++ b/modoboa_installer/scripts/uwsgi.py @@ -17,7 +17,7 @@ class Uwsgi(base.Installer): appname = "uwsgi" packages = { "deb": ["uwsgi", "uwsgi-plugin-python3"], - "rpm": ["uwsgi", "uwsgi-plugin-python36"], + "rpm": ["uwsgi", "uwsgi-plugin-python3"], #Previousli was 36 } def get_socket_path(self, app): @@ -29,7 +29,7 @@ def get_socket_path(self, app): def get_template_context(self, app): """Additionnal variables.""" context = super(Uwsgi, self).get_template_context() - if package.backend.FORMAT == "deb": + if package.backend.FORMAT == "deb" or True: uwsgi_plugin = "python3" else: uwsgi_plugin = "python36" @@ -105,7 +105,7 @@ def post_run(self): def restart_daemon(self): """Restart daemon process.""" # Temp. fix for CentOS - if utils.dist_name().startswith("centos"): + if utils.dist_name().startswith("centos") or utils.dist_name().startswith("oracle linux server"): pw = pwd.getpwnam("uwsgi") utils.mkdir( "/run/uwsgi", diff --git a/run.py b/run.py index 22cfa145..d3243d67 100755 --- a/run.py +++ b/run.py @@ -286,7 +286,7 @@ def main(input_args): ssl_backend.generate_cert() for appname in PRIMARY_APPS: scripts.install(appname, config, args.upgrade, args.restore) - system.restart_service("cron") + system.restart_service("crond") package.backend.restore_system() if not args.restore: utils.success( diff --git a/version.txt b/version.txt index 369a22e2..1572d0bd 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -20b6ede21173441284efe533627e95ba91bfeb53 \ No newline at end of file +f38c9eb0bd3558d8c6b162ec5ae8209389b1687c \ No newline at end of file