Impacted versions
- OS Type: Ubuntu
- OS Version: 22.04.1 LTS
- Database Type: PostgreSQL
- Database version: 14
- Modoboa: 2.0.3
- installer used: A clone of the repo today. run.py does not convey a version.
- Webserver: lighttpd 1.4.63
Steps to reproduce
Surf to:
https://my-modoboa-site/user/#preferences/
Current behavior
I see this:
Expected behavior
Not that.
Basically landed here after an install because experienced this: https://github.com/modoboa/modoboa/issues/1411 and there it suggested looking at Preferences. But they don't load either.
For what it's worth I used this installer.cfg (redacted):
[general]
hostname = hermes.%(domain)s
tls_key_file = /etc/ssl/mykey
tls_cert_file = /etc/ssl/mycert
[certificate]
generate = false
#type = self-signed
# [letsencrypt]
# email = [email protected]
[database]
engine = postgres
host = 127.0.0.1
install = false
[postgres]
user = postgres
password = XXX
# [mysql]
# user = root
# password = s0FZUMDDfp5e3ASy
# charset = utf8
# collation = utf8_general_ci
[modoboa]
user = modoboa
home_dir = /data/www/hermes
venv_path = /data/venv/modoboa
instance_path = %(home_dir)s
timezone = Australia/Hobart
dbname = modoboa
dbuser = modoboa
dbpassword = XXX
extensions = modoboa-amavis modoboa-pdfcredentials modoboa-postfix-autoreply modoboa-sievefilters modoboa-webmail modoboa-contacts modoboa-radicale
devmode = false
[automx]
# makes configuring email accounts easy.
# Doesn't seem well maintained and hard to find info on it
# https://github.com/sys4/automx
# https://github.com/rseichter/automx2
enabled = true
user = automx
config_dir = /etc
home_dir = /srv/automx
venv_path = /data/venv/modoboa-automx
instance_path = %(home_dir)s/instance
[amavis]
# a high-performance and reliable interface between mailer (MTA) and one or more content checkers: virus scanners,
# and/or Mail::SpamAssassin Perl module. It is written in Perl
enabled = true
user = amavis
max_servers = 2
dbname = modoboa-amavis
dbuser = amavis
dbpassword = XXX
[clamav]
# open-source standard for mail gateway-scanning software
enabled = true
user = clamav
[dovecot]
# The IMAP server
# vmail is a user used by dovecot for storing mails.
# Well described by dovecot here: https://wiki.dovecot.org/VirtualUsers
# and by Arch here: https://wiki.archlinux.org/title/Virtual_user_mail_system_with_Postfix,_Dovecot_and_Roundcube#User
# And IMHO the best HowTo: is here: https://sharkysoft.com/wiki/how_to_configure_a_virtual_user_email_server_using_Postfix,_Dovecot,_and_SpamAssassin#Step_3:_Create_a_system_user_to_own_all_virtual_email_accounts.
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]
# Not needed, using lighttpd
enabled = false
config_dir = /etc/nginx
[razor]
# spam-catcher using a collaborative filtering network
enabled = true
config_dir = /etc/razor
[postfix]
# The SMTP server itself (MTA or Mail Transfer Agent), an alternative to the classic sendmail.
enabled = true
config_dir = /etc/postfix
message_size_limit = 11534336
[postwhite]
# A script for generating a Postscreen whitelist (and optionally a blacklist) based on large and presumably trustworthy senders' SPF records.
# The Postfix postscreen daemon provides additional protection against mail server overload.
enabled = true
config_dir = /etc
[spamassassin]
# Apache SpamAssassin is the #1 Open Source anti-spam platform
enabled = true
config_dir = /etc/mail/spamassassin
dbname = modoboa-spamassassin
dbuser = spamassassin
dbpassword = XXX
[uwsgi]
# Already installed (running other Django sites)
enabled = false
# config_dir = /etc/uwsgi
# nb_processes = 2
[radicale]
# Free and Open-Source CalDAV and CardDAV Server
enabled = true
user = radicale
config_dir = /etc/radicale
home_dir = /srv/radicale
venv_path = /data/venv/modoboa-radicale
[opendkim]
# OpenDKIM is an open source implementation of the DKIM (Domain Keys Identified Mail) sender authentication system
enabled = true
user = opendkim
config_dir = /etc
port = 12345
keys_storage_dir = /var/lib/dkim
dbuser = opendkim
dbpassword = XXX
[backup]
default_path = ./modoboa_backup/
And for what it's worth:
$ ll /var/lib/dkim
total 8
drwxr-xr-x 2 opendkim opendkim 4096 Dec 12 13:50 ./
drwxr-xr-x 52 root root 4096 Dec 12 13:50 ../
and
$ cat /etc/opendkim.conf
# This file was automatically installed on 2022-12-12T15:19:42.629214
# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.
# Log to syslog
Syslog yes
SyslogSuccess Yes
LogWhy Yes
LogResults Yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask 007
# Sign for example.com with key in /etc/dkimkeys/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
#Domain example.com
#KeyFile /etc/dkimkeys/dkim.key
#Selector 2007
KeyTable dsn:pgsql://opendkim:password@5432+127.0.0.1/modoboa/table=dkim?keycol=id?datacol=domain_name,selector,private_key_path
SigningTable dsn:pgsql://opendkim:password@5432+127.0.0.1/modoboa/table=dkim?keycol=domain_name?datacol=id
# Commonly-used options; the commented-out versions show the defaults.
#Canonicalization simple
#Mode sv
SubDomains yes
Canonicalization relaxed/relaxed
# Socket smtp://localhost
#
# ## Socket socketspec
# ##
# ## Names the socket where this filter should listen for milter connections
# ## from the MTA. Required. Should be in one of these forms:
# ##
# ## inet:port@address to listen on a specific interface
# ## inet:port to listen on all interfaces
# ## local:/path/to/socket to listen on a UNIX domain socket
#
Socket inet:12345@localhost
#Socket local:/var/run/opendkim/opendkim.sock
## PidFile filename
### default (none)
###
### Name of the file where the filter should write its pid before beginning
### normal operations.
#
PidFile /var/run/opendkim/opendkim.pid
# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier. From is oversigned by default in the Debian pacakge
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders From
## ResolverConfiguration filename
## default (none)
##
## Specifies a configuration file to be passed to the Unbound library that
## performs DNS queries applying the DNSSEC protocol. See the Unbound
## documentation at http://unbound.net for the expected content of this file.
## The results of using this and the TrustAnchorFile setting at the same
## time are undefined.
## In Debian, /etc/unbound/unbound.conf is shipped as part of the Suggested
## unbound package
# ResolverConfiguration /etc/unbound/unbound.conf
## TrustAnchorFile filename
## default (none)
##
## Specifies a file from which trust anchor data should be read when doing
## DNS queries and applying the DNSSEC protocol. See the Unbound documentation
## at http://unbound.net for the expected format of this file.
# TrustAnchorFile /usr/share/dns/root.key
## Userid userid
### default (none)
###
### Change to user "userid" before starting normal operation? May include
### a group ID as well, separated from the userid by a colon.
#
UserID opendkim
ExternalIgnoreList /etc/opendkim.hosts
InternalHosts /etc/opendkim.hosts
and
$ ll /etc/opendkim*
-rw-r--r-- 1 root root 3310 Dec 12 15:19 /etc/opendkim.conf
-rw-r--r-- 1 root root 3310 Dec 12 15:19 /etc/opendkim.conf.old.2022-12-12T15:19:42.630614
-rw-r--r-- 1 root root 94 Dec 12 15:19 /etc/opendkim.hosts
-rw-r--r-- 1 root root 94 Dec 12 15:19 /etc/opendkim.hosts.old.2022-12-12T15:19:42.632340
All looks good on the OpenDKIM front (bar the fact that it's not working and I can't see Preferences at all which may be related).
$ sudo ls -l /var/run/opendkim/
total 4
-rw-r--r-- 1 root root 5 Dec 12 15:55 opendkim.pid
feedback-needed