{ "module": "mailu", "version": "1", "capabilities": ["container-runtime"], "listens": [ {"port": 25, "protocol": "tcp", "from": "anywhere", "why": "mail from other mail servers"}, {"port": 465, "protocol": "tcp", "from": "anywhere", "why": "submission over TLS"}, {"port": 587, "protocol": "tcp", "from": "anywhere", "why": "submission"}, {"port": 993, "protocol": "tcp", "from": "anywhere", "why": "IMAP over TLS"}, {"port": 7080, "protocol": "tcp", "from": "mesh", "why": "the web interface, behind a proxy"} ], "own-secrets": { "secret-key": "/var/lib/mailu/secret-key.secret", "database": "/var/lib/mailu/database.secret", "admin": "/var/lib/mailu/admin.secret" }, "resources": [ {"id": "state", "type": "directory", "path": "/var/lib/mailu", "mode": "0700"}, {"id": "secret-env", "type": "file", "path": "/var/lib/mailu/secret.env", "mode": "0600", "content": "SECRET_KEY=${secret:secret-key}\n"}, {"id": "database-env", "type": "file", "path": "/var/lib/mailu/database.env", "mode": "0600", "content": "POSTGRES_USER=mailu\nPOSTGRES_DB=mailu\nPOSTGRES_PASSWORD=${secret:database}\nDB_USER=mailu\nDB_NAME=mailu\nDB_PW=${secret:database}\n"}, {"id": "admin-env", "type": "file", "path": "/var/lib/mailu/admin.env", "mode": "0600", "content": "INITIAL_ADMIN_PW=${secret:admin}\n"}, {"id": "net", "type": "network", "name": "mailu"}, {"id": "resolver", "type": "container", "name": "mailu-resolver", "image": "mailu-unbound@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env-file": ["/var/lib/mailu/secret.env"]}, {"id": "redis", "type": "container", "name": "mailu-redis", "image": "redis@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "volumes": ["/services/mailu/data/redis:/data"]}, {"id": "admindb", "type": "container", "name": "mailu-admindb", "image": "postgres@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env": {"PGDATA": "/var/lib/postgresql/data/pgdata"}, "env-file": ["/var/lib/mailu/database.env"], "volumes": ["/services/mailu/data/data/psql_admindb/pgdata:/var/lib/postgresql/data/pgdata"]}, {"id": "admin", "type": "container", "name": "mailu-admin", "image": "mailu-admin@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env-file": ["/var/lib/mailu/secret.env", "/var/lib/mailu/database.env", "/var/lib/mailu/admin.env"], "volumes": [ "/services/mailu/data/data:/data", "/services/mailu/data/dkim:/dkim" ]}, {"id": "imap", "type": "container", "name": "mailu-imap", "image": "mailu-dovecot@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env-file": ["/var/lib/mailu/secret.env"], "volumes": [ "/services/mailu/data/mail:/mail", "/services/mailu/data/overrides/dovecot:/overrides:ro" ]}, {"id": "smtp", "type": "container", "name": "mailu-smtp", "image": "mailu-postfix@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env-file": ["/var/lib/mailu/secret.env"], "volumes": ["/services/mailu/data/mailqueue:/queue"]}, {"id": "antispam", "type": "container", "name": "mailu-antispam", "image": "mailu-rspamd@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env-file": ["/var/lib/mailu/secret.env"], "volumes": ["/services/mailu/data/filter:/var/lib/rspamd"]}, {"id": "webmail", "type": "container", "name": "mailu-webmail", "image": "mailu-roundcube@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env-file": ["/var/lib/mailu/secret.env"], "volumes": ["/services/mailu/data/webmail:/data"]}, {"id": "front", "type": "container", "name": "mailu-front", "image": "mailu-nginx@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "mailu", "env-file": ["/var/lib/mailu/secret.env"], "ports": ["25:25", "465:465", "587:587", "993:993", "7080:80"], "volumes": [ "/services/mailu/data/certs:/certs", "/services/mailu/data/overrides/nginx:/overrides:ro" ], "restart-on": ["imap", "smtp", "admin"]} ] }