Update from master

This commit is contained in:
Spitap
2022-09-19 15:39:05 +02:00
17 changed files with 56 additions and 28 deletions

View File

@@ -33,11 +33,12 @@ class Automx(base.Installer):
def get_template_context(self):
"""Additional variables."""
context = super(Automx, self).get_template_context()
sql_dsn = "{}://{}:{}@{}/{}".format(
sql_dsn = "{}://{}:{}@{}:{}/{}".format(
"postgresql" if self.dbengine == "postgres" else self.dbengine,
self.config.get("modoboa", "dbuser"),
self.config.get("modoboa", "dbpassword"),
self.dbhost,
self.dbport,
self.config.get("modoboa", "dbname"))
if self.db_driver == "pgsql":
sql_query = (

View File

@@ -31,7 +31,10 @@ class Installer(object):
# Used to install system packages
self.db_driver = (
"pgsql" if self.dbengine == "postgres" else self.dbengine)
self.backend = database.get_backend(self.config)
self.dbhost = self.config.get("database", "host")
self.dbport = self.config.get(
"database", "port", fallback=self.backend.default_port)
self._config_dir = None
if not self.with_db:
return
@@ -62,7 +65,6 @@ class Installer(object):
"""Setup a database."""
if not self.with_db:
return
self.backend = database.get_backend(self.config)
self.backend.create_user(self.dbuser, self.dbpasswd)
self.backend.create_database(self.dbname, self.dbuser)
schema = self.get_sql_schema_path()
@@ -87,6 +89,7 @@ class Installer(object):
"dbengine": (
"Pg" if self.dbengine == "postgres" else self.dbengine),
"dbhost": self.dbhost,
"dbport": self.dbport,
}
for option, value in self.config.items("general"):
context[option] = value

View File

@@ -124,6 +124,12 @@ class Dovecot(base.Installer):
utils.copy_file(f, "{}/conf.d".format(self.config_dir))
# Make postlogin script executable
utils.exec_cmd("chmod +x /usr/local/bin/postlogin.sh")
# Add mailboxes user to dovecot group for modoboa mailbox commands.
# See https://github.com/modoboa/modoboa/issues/2157.
system.add_user_to_group(
self.config.get("dovecot", "mailboxes_owner"),
'dovecot'
)
def restart_daemon(self):
"""Restart daemon process.

View File

@@ -112,7 +112,7 @@ $sa_local_tests_only = 0; # only tests which do not require internet access?
# @storage_redis_dsn = ( {server=>'127.0.0.1:6379', db_id=>1} );
# $redis_logging_key = 'amavis-log';
# $redis_logging_queue_size_limit = 300000; # about 250 MB / 100000
@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost', '%dbuser', '%dbpassword' ]);
@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost;port=%dbport', '%dbuser', '%dbpassword' ]);
@storage_sql_dsn = @lookup_sql_dsn;
$sql_allow_8bit_address = 1;

View File

@@ -7,7 +7,7 @@ $max_servers = %max_servers;
# SQL configuration
#
@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost', '%dbuser', '%dbpassword' ]);
@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost;port=%dbport', '%dbuser', '%dbpassword' ]);
@storage_sql_dsn = @lookup_sql_dsn;
$sql_allow_8bit_address = 1;

View File

@@ -1,4 +1,4 @@
connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
# CREATE TABLE quota (
# username varchar(100) not null,

View File

@@ -64,7 +64,7 @@ driver = %db_driver
# connect = /etc/dovecot/authdb.sqlite
#
#connect =
connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
# Default password scheme.
#

View File

@@ -64,7 +64,7 @@ driver = %db_driver
# connect = /etc/dovecot/authdb.sqlite
#
#connect =
connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
# Default password scheme.
#

View File

@@ -64,7 +64,7 @@ driver = %db_driver
# connect = /etc/dovecot/authdb.sqlite
#
#connect =
connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
# Default password scheme.
#

View File

@@ -64,7 +64,7 @@ driver = %db_driver
# connect = /etc/dovecot/authdb.sqlite
#
#connect =
connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword
# Default password scheme.
#

View File

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

View File

@@ -3,7 +3,7 @@ inet_protocols = all
myhostname = %hostname
myorigin = $myhostname
mydestination = $myhostname
mynetworks = 127.0.0.0/8
mynetworks = 127.0.0.0/8 [::1]/128
smtpd_banner = $myhostname ESMTP
biff = no
unknown_local_recipient_reject_code = 550
@@ -142,10 +142,10 @@ postscreen_blacklist_action = enforce
# Use some DNSBL
postscreen_dnsbl_sites =
zen.spamhaus.org*3
bl.spameatingmonkey.net*2
bl.spamcop.net
dnsbl.sorbs.net
zen.spamhaus.org=127.0.0.[2..11]*3
bl.spameatingmonkey.net=127.0.0.2*2
bl.spamcop.net=127.0.0.2
dnsbl.sorbs.net=127.0.0.[2..15]
postscreen_dnsbl_threshold = 3
postscreen_dnsbl_action = enforce

View File

@@ -144,20 +144,22 @@ class Modoboa(base.Installer):
"--domain", self.config.get("general", "hostname"),
"--extensions", " ".join(self.extensions),
"--dont-install-extensions",
"--dburl", "'default:{}://{}:{}@{}/{}'".format(
"--dburl", "'default:{}://{}:{}@{}:{}/{}'".format(
self.config.get("database", "engine"),
self.dbuser, self.dbpasswd, self.dbhost, self.dbname
self.dbuser, self.dbpasswd, self.dbhost, self.dbport,
self.dbname
)
]
if self.devmode:
args = ["--devel"] + args
if self.amavis_enabled:
args += [
"'amavis:{}://{}:{}@{}/{}'".format(
"'amavis:{}://{}:{}@{}:{}/{}'".format(
self.config.get("database", "engine"),
self.config.get("amavis", "dbuser"),
self.config.get("amavis", "dbpassword"),
self.dbhost,
self.dbport,
self.config.get("amavis", "dbname")
)
]

View File

@@ -20,6 +20,7 @@ class Postwhite(base.Installer):
]
no_daemon = True
packages = {
"deb": ["bind9-host"],
"rpm": ["bind-utils"]
}

View File

@@ -57,10 +57,12 @@ class Spamassassin(base.Installer):
context = super(Spamassassin, self).get_template_context()
if self.dbengine == "postgres":
store_module = "Mail::SpamAssassin::BayesStore::PgSQL"
dsn = "DBI:Pg:dbname={};host={}".format(self.dbname, self.dbhost)
dsn = "DBI:Pg:dbname={};host={};port={}".format(
self.dbname, self.dbhost, self.dbport)
else:
store_module = "Mail::SpamAssassin::BayesStore::MySQL"
dsn = "DBI:mysql:{}:{}".format(self.dbname, self.dbhost)
dsn = "DBI:mysql:{}:{}:{}".format(
self.dbname, self.dbhost, self.dbport)
context.update({
"store_module": store_module, "dsn": dsn, "dcc_enabled": "#"})
return context