Merge branch 'modoboa:master' into restore

This commit is contained in:
Spitfireap
2022-10-18 17:17:48 +02:00
committed by GitHub
5 changed files with 40 additions and 9 deletions

View File

@@ -89,6 +89,21 @@ service postlogin {
} }
} }
service stats {
# To allow modoboa to access available cipher list.
unix_listener stats-reader {
user = vmail
group = vmail
mode = 0660
}
unix_listener stats-writer {
user = vmail
group = vmail
mode = 0660
}
}
service auth { service auth {
# auth_socket_path points to this userdb socket by default. It's typically # auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Users that have # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have

View File

@@ -18,8 +18,8 @@ UMask 007
#KeyFile /etc/dkimkeys/dkim.key #KeyFile /etc/dkimkeys/dkim.key
#Selector 2007 #Selector 2007
KeyTable dsn:%{db_driver}://%{db_user}:%{db_password}@%{dbhost}:%{dbport}/%{db_name}/table=dkim?keycol=id?datacol=domain_name,selector,private_key_path KeyTable dsn:%{db_driver}://%{db_user}:%{db_password}@%{dbport}+%{dbhost}/%{db_name}/table=dkim?keycol=id?datacol=domain_name,selector,private_key_path
SigningTable dsn:%db_driver://%{db_user}:%{db_password}@%{dbhost}:%{dbport}/%{db_name}/table=dkim?keycol=domain_name?datacol=id SigningTable dsn:%db_driver://%{db_user}:%{db_password}@%{dbport}+%{dbhost}/%{db_name}/table=dkim?keycol=domain_name?datacol=id
# Commonly-used options; the commented-out versions show the defaults. # Commonly-used options; the commented-out versions show the defaults.
#Canonicalization simple #Canonicalization simple

View File

@@ -58,6 +58,7 @@ class Modoboa(base.Installer):
if not self.config.getboolean("radicale", "enabled"): if not self.config.getboolean("radicale", "enabled"):
self.extensions.remove("modoboa-radicale") self.extensions.remove("modoboa-radicale")
self.dovecot_enabled = self.config.getboolean("dovecot", "enabled") self.dovecot_enabled = self.config.getboolean("dovecot", "enabled")
self.opendkim_enabled = self.config.getboolean("opendkim", "enabled")
def is_extension_ok_for_version(self, extension, version): def is_extension_ok_for_version(self, extension, version):
"""Check if extension can be installed with this modo version.""" """Check if extension can be installed with this modo version."""
@@ -163,12 +164,25 @@ class Modoboa(base.Installer):
self.config.get("amavis", "dbname") self.config.get("amavis", "dbname")
) )
] ]
if self.upgrade and self.opendkim_enabled and self.dbengine == "postgres":
# Drop dkim view to prevent an error during migration (2.0)
self.backend._exec_query("DROP VIEW IF EXISTS dkim")
code, output = utils.exec_cmd( code, output = utils.exec_cmd(
"bash -c '{} modoboa-admin.py deploy instance {}'".format( "bash -c '{} modoboa-admin.py deploy instance {}'".format(
prefix, " ".join(args)), prefix, " ".join(args)),
sudo_user=self.user, cwd=self.home_dir) sudo_user=self.user, cwd=self.home_dir)
if code: if code:
raise utils.FatalError(output) raise utils.FatalError(output)
if self.upgrade and self.opendkim_enabled and self.dbengine == "postgres":
# Restore view previously deleted
self.backend.load_sql_file(
self.dbname, self.dbuser, self.dbpassword,
self.get_file_path("dkim_view_{}.sql".format(self.dbengine))
)
self.backend.grant_right_on_table(
self.dbname, "dkim", self.config.get("opendkim", "dbuser"),
"SELECT"
)
def setup_database(self): def setup_database(self):
"""Additional config.""" """Additional config."""

View File

@@ -97,7 +97,8 @@ class Opendkim(base.Installer):
'SOCKET="inet:12345@localhost"', 'SOCKET="inet:12345@localhost"',
])) ]))
""" Make sure opendkim is started after postgresql and mysql, respectively. """ # Make sure opendkim is started after postgresql and mysql,
# respectively.
if (self.dbengine != "postgres" and package.backend.FORMAT == "deb"): if (self.dbengine != "postgres" and package.backend.FORMAT == "deb"):
dbservice = "mysql.service" dbservice = "mysql.service"
elif (self.dbengine != "postgres" and package.backend.FORMAT != "deb"): elif (self.dbengine != "postgres" and package.backend.FORMAT != "deb"):

View File

@@ -93,12 +93,13 @@ class LetsEncryptCertificate(CertificateBackend):
utils.printcolor("Failed to install certbot, aborting.", utils.RED) utils.printcolor("Failed to install certbot, aborting.", utils.RED)
sys.exit(1) sys.exit(1)
# Nginx plugin certbot # Nginx plugin certbot
if (self.config.has_option("nginx", "enabled") and if (
self.config.getboolean("nginx", "enabled")): self.config.has_option("nginx", "enabled") and
package.backend.update() self.config.getboolean("nginx", "enabled")
):
if name == "ubuntu" or name.startswith("debian"):
package.backend.install("python3-certbot-nginx") package.backend.install("python3-certbot-nginx")
def generate_cert(self): def generate_cert(self):
"""Create a certificate.""" """Create a certificate."""
utils.printcolor( utils.printcolor(