From 031c3f29c22b0d8d0ca059a8e1b65a3168fb0527 Mon Sep 17 00:00:00 2001 From: Daniel Silva Date: Fri, 19 Jan 2024 10:59:07 -0500 Subject: [PATCH 1/3] Added some changes to make available to Oracle Linux Servers --- modoboa_installer/package.py | 6 +++--- modoboa_installer/python.py | 2 +- modoboa_installer/scripts/dovecot.py | 2 +- modoboa_installer/scripts/modoboa.py | 18 ++++++++++++------ modoboa_installer/scripts/uwsgi.py | 6 +++--- run.py | 2 +- 6 files changed, 21 insertions(+), 15 deletions(-) diff --git a/modoboa_installer/package.py b/modoboa_installer/package.py index 5354b359..882dfff8 100644 --- a/modoboa_installer/package.py +++ b/modoboa_installer/package.py @@ -83,7 +83,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): @@ -92,7 +92,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.""" @@ -110,7 +110,7 @@ def get_backend(): backend = None if distname in ["debian", "debian gnu/linux", "ubuntu"]: 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 948c62f8..fcb356bb 100644 --- a/modoboa_installer/python.py +++ b/modoboa_installer/python.py @@ -102,7 +102,7 @@ def setup_virtualenv(path, sudo_user=None, python_version=2): if utils.dist_name() == "debian": packages.append("virtualenv") else: - 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: diff --git a/modoboa_installer/scripts/dovecot.py b/modoboa_installer/scripts/dovecot.py index b4520e13..c32ce861 100644 --- a/modoboa_installer/scripts/dovecot.py +++ b/modoboa_installer/scripts/dovecot.py @@ -75,7 +75,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 9c18475c..a80840b2 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -227,10 +227,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): @@ -303,7 +309,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") @@ -311,7 +317,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/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 d643fc83..36dbe658 100755 --- a/run.py +++ b/run.py @@ -264,7 +264,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( From 76c4eaf3be64ad5f3eb437169e80b40b49d00a8f Mon Sep 17 00:00:00 2001 From: Daniel Silva Date: Fri, 19 Jan 2024 12:16:58 -0500 Subject: [PATCH 2/3] Added bug fix for opendkim 'Unrecognized parameter on Linue 94' --- installer.cfg | 123 ++++++++++++++++++++++++++ modoboa_installer/scripts/opendkim.py | 2 +- 2 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 installer.cfg 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/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, From eea74dc3d525a4aa0cc9ce9cdec7dcc5dc0ac902 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 8 Jan 2025 04:10:33 +0000 Subject: [PATCH 3/3] [GitHub Action] Updated version file --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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