Merge branch 'modoboa:master' into restore
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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."""
|
||||||
|
|||||||
@@ -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"):
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user