I’ve had several issues getting Mailcow to run on my server.
This is an Ubuntu 24 machine with the latest versions of Docker and docker compose. It’s a 2013 MacPro (trashcan) with 32gb of ram, 8 of which are reserved for a VM running onlyoffice.
I have a few other services running on my server (nextcloud, immich, biwarden), so I changed the ports in mailcow.conf to
HTTP_PORT=8086
HTTP_BIND=127.0.0.1
HTTPS_PORT=8444
HTTPS_BIND=127.0.0.1
I was having a lot of permissions issues with unbound that seem to have gone away after I put this in the docker-compose.override.yml
services:
unbound-mailcow:
volumes:
- ./data/unbound:/var/lib/unbound
and running this (found in the forums)
echo "forward-zone:
name: \“.\”
forward-addr: 1.1.1.1
forward-addr: 1.0.0.1″ >> data/conf/unbound/unbound.conf
and then restarting all containers.
Since restarting, I’m getting these errors again
######################################################################## 100.0%
unbound-mailcow-1 | setup in directory /etc/unbound
unbound-mailcow-1 | Certificate request self-signature ok
unbound-mailcow-1 | subject=CN=unbound-control
unbound-mailcow-1 | removing artifacts
unbound-mailcow-1 | Setup success. Certificates created. Enable in unbound.conf file to use
unbound-mailcow-1 | 2025-11-17 18:03:14,561 INFO Set uid to user 0 succeeded
unbound-mailcow-1 | 2025-11-17 18:03:15,132 INFO supervisord started with pid 1
unbound-mailcow-1 | 2025-11-17 18:03:16,136 INFO spawned: ‘processes’ with pid 23
unbound-mailcow-1 | 2025-11-17 18:03:16,138 INFO spawned: ‘syslog-ng’ with pid 24
unbound-mailcow-1 | 2025-11-17 18:03:16,140 INFO spawned: ‘unbound’ with pid 25
unbound-mailcow-1 | 2025-11-17 18:03:16,142 INFO spawned: ‘unbound-healthcheck’ with pid 26
unbound-mailcow-1 | [1763420596] unbound[25:0] notice: init module 0: subnetcache
unbound-mailcow-1 | [1763420596] unbound[25:0] notice: init module 1: validator
unbound-mailcow-1 | [1763420596] unbound[25:0] error: unable to open trusted-key.key for reading: Permission denied
unbound-mailcow-1 | [1763420596] unbound[25:0] error: error reading auto-trust-anchor-file: trusted-key.key
unbound-mailcow-1 | [1763420596] unbound[25:0] error: validator: error in trustanchors config
unbound-mailcow-1 | [1763420596] unbound[25:0] error: validator: could not apply configuration settings.
unbound-mailcow-1 | [1763420596] unbound[25:0] error: module init for module validator failed
unbound-mailcow-1 | [1763420596] unbound[25:0] fatal error: failed to init modules
unbound-mailcow-1 | 2025-11-17 18:03:16,156 WARN exited: unbound (exit status 1; not expected)
unbound-mailcow-1 | Nov 17 18:03:16 c09ba41b7fec syslog-ng[24]: syslog-ng starting up; version=‘4.8.1’
unbound-mailcow-1 | 2025-11-17 18:03:17,163 INFO success: processes entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
unbound-mailcow-1 | 2025-11-17 18:03:17,443 INFO success: syslog-ng entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
unbound-mailcow-1 | 2025-11-17 18:03:17,445 INFO spawned: ‘unbound’ with pid 30
unbound-mailcow-1 | 2025-11-17 18:03:17,446 INFO success: unbound-healthcheck entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
unbound-mailcow-1 | [1763420597] unbound[30:0] notice: init module 0: subnetcache
unbound-mailcow-1 | [1763420597] unbound[30:0] notice: init module 1: validator
unbound-mailcow-1 | [1763420597] unbound[30:0] error: unable to open trusted-key.key for reading: Permission denied
unbound-mailcow-1 exited with code 0 (restarting)
along with a whole lot of these
php-fpm-mailcow-1 | Waiting for SQL…
php-fpm-mailcow-1 | Waiting for SQL…
sogo-mailcow-1 | Waiting for database to come up…
sogo-mailcow-1 | Waiting for database to come up…
sogo-mailcow-1 | Waiting for database to come up…
sogo-mailcow-1 | Waiting for database to come up…
sogo-mailcow-1 | Waiting for database to come up…
php-fpm-mailcow-1 | Waiting for SQL…
php-fpm-mailcow-1 | Waiting for SQL…
php-fpm-mailcow-1 | Waiting for SQL…
php-fpm-mailcow-1 | Waiting for SQL…
sogo-mailcow-1 | Waiting for database to come up…
sogo-mailcow-1 | Waiting for database to come up…
sogo-mailcow-1 | Waiting for database to come up…
sogo-mailcow-1 | Waiting for database to come up…
and this is the network
docker network inspect mailcowdockerized_mailcow-network
[
{
“Name”: “mailcowdockerized_mailcow-network”,
“Id”: “13dd816278afb5066cdb3bdc0a7418422f70f12aad00586c80d15798d2d48591”,
“Created”: “2025-11-17T23:01:12.312905581Z”,
“Scope”: “local”,
“Driver”: “bridge”,
“EnableIPv4”: true,
“EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: null,
“Config”: [
{
“Subnet”: “172.22.1.0/24”,
“IPRange”: "",
“Gateway”: “172.22.1.1”
}
]
},
“Internal”: false,
“Attachable”: false,
“Ingress”: false,
“ConfigFrom”: {
“Network”: ""
},
“ConfigOnly”: false,
“Options”: {
“com.docker.network.bridge.name”: “br-mailcow”
},
“Labels”: {
“com.docker.compose.config-hash”: “7a08bd388c3c863eb645e04134b94c913c957b688a5907503fd6abd09f5103f6”,
“com.docker.compose.network”: “mailcow-network”,
“com.docker.compose.project”: “mailcowdockerized”,
“com.docker.compose.version”: “2.40.3”
},
“Containers”: {
“0c4f83f8b7c83b07f70263ef145939d6c3cea4c1c69e2593e73fb25daf09ea29”: {
“Name”: “mailcowdockerized-olefy-mailcow-1”,
“EndpointID”: “255db13e48e573a495fc8ef1b77c0695a948095b1fd080872d2d00843422e8ca”,
“MacAddress”: “92:d0:3f:02:23:df”,
“IPv4Address”: “172.22.1.4/24”,
“IPv6Address”: ""
},
“6af4ab5a7dabbc36a05a414414355bd8873acc92c2aeb7cecaeae5efe1722494”: {
“Name”: “mailcowdockerized-mysql-mailcow-1”,
“EndpointID”: “41b812f4b7ef27afe016a9ace8f78126471f9484d90764291b7a761357ec613e”,
“MacAddress”: “0e:2f:52:e1:84:60”,
“IPv4Address”: “172.22.1.5/24”,
“IPv6Address”: ""
},
“83bcd254d9d03e2fd11d057a7838d0e3a569ff7e301771ba62740730b4d727e3”: {
“Name”: “mailcowdockerized-php-fpm-mailcow-1”,
“EndpointID”: “d88421397195a1ad653c8229871c958a79bb8bd806530bd8b884be2a33c38b49”,
“MacAddress”: “9e:61:a7:32:43:5e”,
“IPv4Address”: “172.22.1.6/24”,
“IPv6Address”: ""
},
“93b211ea2c52e21a92df0654a4c15e34a83939815babebe0c518765c4ec87b5e”: {
“Name”: “mailcowdockerized-memcached-mailcow-1”,
“EndpointID”: “3eec13aeb8b94ec3ead550f6fbeb8c2e14fc99cfbebdee811ac6f3895876751f”,
“MacAddress”: “56:2b:f7:5f:09:d1”,
“IPv4Address”: “172.22.1.2/24”,
“IPv6Address”: ""
},
“b1f77b7ab43dbf39acf7fe961b0332562689d444752e1ce006546a934d76d564”: {
“Name”: “mailcowdockerized-dovecot-mailcow-1”,
“EndpointID”: “f7456fb62bb427dc31f05ba4e1d2cca9e3295fb6fb6ffe89a3c397dacb297818”,
“MacAddress”: “4e:07:ee:ea:01:3e”,
“IPv4Address”: “172.22.1.250/24”,
“IPv6Address”: ""
},
“b7e30e68c281a427ec7979140f17a54715499a12aafece2820a9d079d5240abc”: {
“Name”: “mailcowdockerized-sogo-mailcow-1”,
“EndpointID”: “13dda420de2b470731d34151482f8531c604f2b952afa87b3abc3516aac5a592”,
“MacAddress”: “ca:6b:ee:76:3b:d5”,
“IPv4Address”: “172.22.1.248/24”,
“IPv6Address”: ""
},
“c83f2e825159acaf15dd4e5426e68fc03e564994b41a723350e1151c729c51cb”: {
“Name”: “mailcowdockerized-dockerapi-mailcow-1”,
“EndpointID”: “8ed6287c3375dc110a8e5b81f395a78d9c99e44df85b5587836f8d0c27ed5007”,
“MacAddress”: “42:53:76:f8:88:b8”,
“IPv4Address”: “172.22.1.3/24”,
“IPv6Address”: ""
},
“db78cc4a8db8a85cf88be60006b0a78ee81890528193f08a7a57f20c7917b759”: {
“Name”: “mailcowdockerized-redis-mailcow-1”,
“EndpointID”: “e1467e87bf852e54fae5f4d3bccac851bc8e465ebccd8d20131eaf725bcebcf2”,
“MacAddress”: “76:0d:4d:4b:71:4f”,
“IPv4Address”: “172.22.1.249/24”,
“IPv6Address”: ""
}
},
“Status”: {
“IPAM”: {
“Subnets”: {
“172.22.1.0/24”: {
“IPsInUse”: 11,
“DynamicIPsAvailable”: 245
}
}
}
}
}
]