Selfhosting
Photos
- https://opensource.com/alternatives/google-photos
- https://tonfotos.com/articles/self-hosted-photo-gallery/
- Google Photos - The Megathread
| Docker Mail Server | Mailu | Mailcow | Mailinabox | iRedMail | Modoboa | Postal | Poste.io | Wildduck | Stalwart | |
|---|---|---|---|---|---|---|---|---|---|---|
| Docker | yes | yes | no | no | ||||||
Forwarding
When forwarding emails to another domain, the SPF records may lead to failures. For that, “Sender Rewriting Scheme”, short SRS, exists, which rewrites the envelope source address after the forwarding. Docker Mail Server has an option for this (others may as well) -> ENABLE_SRS config option
Mailing Lists
Adding Mailing Lists to a Mail setup seems to be a tad more trouble. Mailman3 seems to be the best thing to go with, and they have some information on running Mailman3 in Docker:
Trouble is: this sucks bigtime. And documentation blows as well.
Different containers
There are 3 container images, which you need two of.
maxking/mailman-core- the “backend”, which you will always needmaxking/mailman-web- the frontend containing ‘Posterios’, the mailing list management, and ‘HyperKitty’, the list archivesmaxking/postorius- the frontend with just Posterios, but no HyperKitty. Alternative to the one above. (this is not really explained anywhere)
Compose Files
There are some compose files, but they are all lacking (the same) important bits and pieces. Let’s go with the default file
- Pinned container versions are outdated -> current version as of writing is 0.5.2
- The frontend needs some additional environment variables, otherwise it doesn’t start at all and shows no static files
SECRET_KEY=<random string>- required by DjangoSERVE_FROM_DOMAIN=<lists.example.com>- Domain usedMAILMAN_ADMIN_USER=admin- user name of initial super adminMAILMAN_ADMIN_EMAIL=listadmin@example.com- email address of initial super adminUWSGI_STATIC_MAP=/static=/opt/mailman-web-data/static- required to serve static files on the http port properly. This is described in the docs, but still frustrating
- Outbound SMTP server is assumed to be the gateway in the bridge network, which is likely not the case. You need to set it on both containers with env variable
SMTP_HOST=<hostname> - Container linking is deprecated, and not even needed at all here
Integration
I tried integration with docker-mailserver, and it took me a while
- There’s a github issue on docker-mailserver referencing this repo, which is terribly outdated, but notes how you configure postfix with the
postfix-main.cffile - Description in docker-mailman docs (this) is wrong, as docker-mailserver uses virtual maps and dovecot
- There’s a Postfix + Dovecot section with the working bits
- There should be a docker compose example for this whole thing
Permission issue
After creating the first list, an error like Uncaught runner exception: [Errno 13] Permission denied: '/opt/mailman/var/queue/virgin/... popped up in the logs.
Issue seems to be that by default you create the list as root and that breaks things. Should use the mailman user instead. See this thread
References
- https://www.reddit.com/r/selfhosted/comments/yhboae/docker_mail_server_which_to_choose/
Newsletters
Digital Sovernty
Not necessarily only self-hosting but also more generic “independance from ‘foreign’ tech service providers”