Listmonk - leistungsstarker Newsletter-Server selbst betreiben

Listmonk - leistungsstarker Newsletter-Server selbst betreiben

Listmonk ist ein hochperformanter, selbst gehosteter Newsletter- und Mailing-List-Server mit modernem Web-Interface und umfangreicher API.

Was ist Listmonk?

Listmonk bietet alles, was ein professioneller Newsletter-Dienst können muss – Abonnentenverwaltung, Segmentierung, HTML-Vorlagen, Kampagnen-Tracking und Bounce-Handling – ohne monatliche Abo-Kosten. Die Anwendung ist in Go geschrieben und verarbeitet hunderttausende E-Mails effizient über konfigurierbares SMTP-Throttling. Als Datenbank dient PostgreSQL. Listmonk lässt sich vollständig per REST-API steuern und eignet sich sowohl für kleine Blogs als auch für mittelgroße Organisationen.

Voraussetzungen

  • Docker 20.10+ / Docker Compose
  • PostgreSQL 12+
  • Externer SMTP-Server (z. B. Postfix, Mailgun, Amazon SES)

Compose-Beispiel

services:
  listmonk:
    image: listmonk/listmonk:latest
    container_name: listmonk
    restart: unless-stopped
    ports:
      - "9000:9000"
    volumes:
      - ./config.toml:/listmonk/config.toml
      - ./uploads:/listmonk/uploads
    environment:
      - TZ=Europe/Berlin
    depends_on:
      - db
    command: ["./listmonk", "--config", "/listmonk/config.toml"]

  db:
    image: postgres:15-alpine
    container_name: listmonk-db
    restart: unless-stopped
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=listmonk
      - POSTGRES_PASSWORD=listmonk
      - POSTGRES_DB=listmonk

Hinweise

  • Beim ersten Start --install als Command übergeben, um das Datenbankschema anzulegen: command: ["./listmonk", "--install", "--config", "/listmonk/config.toml"].
  • Die config.toml enthält SMTP-Credentials – Datei mit restriktiven Dateiberechtigungen ablegen und nicht in Git einchecken.
  • Bounce-Handling lässt sich über POP3/IMAP konfigurieren, um unzustellbare Adressen automatisch zu deaktivieren.
  • Für großen Versandvolumen mehrere SMTP-Pools in der Konfiguration hinterlegen und das Throttling-Limit anpassen.