Skip to content

Releases: kristijorgji/docker-mailserver

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 14:25

Added

  • Inbound MX rate limits (Postfix anvil on port 25, configurable, on by default)
  • Outbound per-user/domain send rate limits (Postfix anvil + postfwd, on by default)
  • Mailbox quotas with per-account and per-domain overrides (on by default, 5G default)
  • Dovecot Sieve + Junk folder when Rspamd is enabled (enable_rspamd_junk_sieve)
  • Postscreen + DNSBL spam protection (Tier 0) and OpenDKIM outbound signing
  • Optional Rspamd, postgrey, and SnappyMail webmail (enable_* toggles in vars.yml)
  • scripts/up.sh / scripts/down.sh — auto-wire SnappyMail when enable_webmail: true
  • scripts/backup/backup.sh and scripts/backup/restore.sh for MySQL + maildir backups
  • scripts/dev-init.sh / make dev-init — clone bootstrap (git hooks, vault template, data dirs)
  • Markdown lint (make lint-markdown / fix-markdown), pre-commit hooks, CI lint-markdown job
  • Certbot Ansible role; pinned Ubuntu 22.04 digest + weekly drift workflow
  • Pre-release Hub tags: :edge / :sha-* on merge to main; local :dev-* via ci/push-to-docker.sh
  • CI: smoke, open-relay, IMAP auth, rate limits, quotas, upsert, backup/restore, Rspamd render
  • CHANGELOG.md and automated GitHub Release notes on v* tag publish
  • docs/repository-layout.md (configs map, compose dev vs release vs webmail overlay)
  • Multi-arch Docker Hub images (linux/amd64 + linux/arm64) for v*,
    :edge / :sha-*, and local :dev-* pushes

Changed

  • Dev compose mounts ./docker-data at /dev-docker-data; entrypoint resolves Ansible root
  • Release compose requires MAILSERVER_MAILS_PATH from .env (no YAML default)
  • Idempotent MySQL provisioning via INSERT ... ON DUPLICATE KEY UPDATE in ./update.sh
  • README overhaul: TOC, spam/Junk, TLS modes, backup, quotas, rate limits, pre-release images
  • CI badge switched to GitHub Actions workflow status API
  • Hub multi-arch via shared .github/actions/docker-hub-build-push
    (override locally with PUSH_PLATFORMS=linux/amd64)
  • Entrypoint refuses mysqld --initialize when /var/lib/mysql is non-empty
    but missing the system schema (avoids wiping a broken/upgrading datadir)

Fixed

  • Self-signed certificate script exit code (gen-certificate.sh)
  • Let's Encrypt issuance skips when certificates already exist

Security

  • Least-privilege MySQL user in vault.example.yml (not root)
  • Dovecot system (PAM) auth disabled for virtual-user-only setups
  • Boot fails when default CHANGE_ME / weak passwords remain in vault.yml
  • Maildir permissions tightened to 750

v0.0.5

Choose a tag to compare

@kristijorgji kristijorgji released this 09 Jul 10:03

feat(postfix): sendgrid relay, discard transports, and vault-driven provisioning

  • Add sender-dependent relayhost maps and per-profile SendGrid SASL
  • Add mail_virtual_transports for inbound discard (noreply blackhole)
  • Tag ansible tasks for update.sh (db-provision, postfix-provision, reload)
  • Run db-provision in update.sh so vault mail data syncs to MySQL
  • Fix SQL statement termination in postfix-db-provision for aliases/transports
  • Restore MX and mail A record screenshot markdown in Requirements
  • Document @Domain default relay and per-mailbox override precedence
  • Add postmap verification for multiple mailboxes on one domain
  • fix(postfix): avoid trim_blocks merging smtp_tls lines in main.cf

v0.0.4

Choose a tag to compare

@kristijorgji kristijorgji released this 26 Jul 16:23
add guide on how to setup email aliases (redirects)

v0.0.3

Choose a tag to compare

@kristijorgji kristijorgji released this 26 Jul 15:39
add a script to enable change of users and domains on the fly during …

v0.0.2

Choose a tag to compare

@kristijorgji kristijorgji released this 26 Jul 14:51
add documentation on how to use a mailclient with this setup

v0.0.1

Choose a tag to compare

@kristijorgji kristijorgji released this 25 Jul 16:07
provide one installation script that sets up everything for usage

v0.0.0

Choose a tag to compare

@kristijorgji kristijorgji released this 25 Jul 15:46
provide one installation script that sets up everything for usage