Listmonk auf einem Managed VPS zu hosten heißt, Ihre Abonnentenlisten und Ihre Kampagnen auf einer Maschine zu bewahren, die Ihnen gehört und die unsere Teams aktuell halten und Tag und Nacht beaufsichtigen. Listmonk ist freie Software unter der AGPL-3.0. Dieser Leitfaden folgt der offiziellen Dokumentation: die zu wählende Version, Docker Compose, PostgreSQL, HTTPS, der Versand per SMTP, Bounces, die Einwilligung, Backups und Updates.
Von Simon Vasconcelos Lee
Veröffentlicht am 12. November 2026Lesezeit: 13 Minuten
pg_dump.Listmonk verwaltet Ihre Verteilerlisten und Ihre Newsletter über eine Weboberfläche. Es ist ein einzelnes, in Go geschriebenes Programm, dessen einzige Abhängigkeit PostgreSQL ist. Seine Listen sind einseitig: Sie schreiben an Ihre Abonnenten, und es handelt sich nicht um eine Diskussionsliste unter ihnen.
Listmonk wird unter der GNU AGPL Version 3 veröffentlicht. Sie können es nutzen, auch im Unternehmen, und Ihre Kampagnen wie die Ihrer Kunden versenden, ohne eine Lizenz zu kaufen. Bleiben die Kosten für den Server und für Ihren Versanddienst.
Artikel 13 fügt eine Bedingung hinzu, die der AGPL eigen ist: Wenn Sie das Programm ändern, muss Ihre Version allen, die es aus der Ferne über das Netzwerk nutzen, deutlich anbieten, ihren Quellcode kostenlos zu erhalten. Wenn Sie Kopien weitergeben, gelten auch die Pflichten der Lizenz zur Weitergabe des Codes. Listmonk unverändert zu betreiben, löst diesen Artikel nicht aus.
Ein Punkt, den Sie vor dem Beginn kennen sollten. Auf GitHub bezeichnet das Etikett „Latest“ derzeit die v7.0.0-beta.2 vom 10. November 2026, die das Projekt selbst als Beta darstellt. Die letzte stabile Version ist die v6.2.0, die Sicherheitskorrekturen für die Berechtigungen enthält. Am 11. November 2026 bezeichnet das Docker-Image latest diese v6.2.0.
| Version | Docker-Image | Stand |
|---|---|---|
| v6.2.0 | listmonk/listmonk:v6.2.0 | Stabil: die Version dieses Leitfadens |
| v7.0.0-beta.2 | listmonk/listmonk:beta | Beta: auf einer Kopie auszuprobieren, mit einem Backup |
| nightly | listmonk/listmonk:nightly | Laut Projekt ungetestet: auf eigenes Risiko |
Die Version 7 ersetzt die gesamte Administrationsoberfläche, ändert einige ihrer Adressen, macht aus der Einstellung app.from_email eine Adressliste und ändert Übersetzungsschlüssel, was benutzerdefinierte Vorlagen betrifft. Lesen Sie ihre Release Notes, bevor Sie darauf wechseln.
Die Compose-Datei des Projekts führt bei jedem Start --upgrade --yes aus: Ein neues Image migriert die Datenbank, ohne Sie zu fragen. Eine migrierte Datenbank lässt sich aber mit einer älteren Version nicht mehr lesen, und ein Zurück verlangt die Wiederherstellung eines Backups. Mit einem festen Tag wie v6.2.0 bleibt der Versionswechsel Ihre Entscheidung.
Das Projekt empfiehlt Docker Compose: Seine Datei startet Listmonk und PostgreSQL gemeinsam. Legen Sie auf einem Server, auf dem Docker installiert ist, einen Ordner an und holen Sie diese Datei:
mkdir listmonk
cd listmonk
curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml
Das Projekt verlangt, diese Datei an Ihre Umgebung anzupassen. Das sind die einzigen Zeilen, die Sie ändern, der Rest bleibt unverändert:
x-db-credentials: &db-credentials
POSTGRES_USER: &db-user listmonk
POSTGRES_PASSWORD: &db-password un-mot-de-passe-long
POSTGRES_DB: &db-name listmonk
services:
app:
image: listmonk/listmonk:v6.2.0
ports:
- "127.0.0.1:9000:9000"
hostname: listmonk.example.com
listmonk als Startwert. Ändern Sie es vor dem ersten Start, denn das PostgreSQL-Image liest diese Variable nur bei einem leeren Datenordner.latest, aus dem oben genannten Grund.127.0.0.1 veröffentlichte Port: Das ist unsere Anpassung. Die Datei des Projekts veröffentlicht den Port 9000 ohne Adressbegrenzung und beschränkt PostgreSQL bereits auf die lokale Adresse. Auf dieselbe Weise behandelt, ist Listmonk nur über den Reverse Proxy erreichbar.Starten Sie dann die Dienste und legen Sie dabei das Super-Admin-Konto gleich an. Diese beiden Variablen dienen nur dem ersten Start, und ohne sie wird das Konto beim ersten Besuch der Oberfläche angelegt: Besser, es existiert, bevor Sie Ihre Domain öffnen.
LISTMONK_ADMIN_USER=votre-identifiant LISTMONK_ADMIN_PASSWORD=votre-mot-de-passe docker compose up -d
Listmonk läuft auch als eigenständiges Programm, neben Ihrem eigenen PostgreSQL-Server in Version 12 oder neuer, auf dem die Datenbank bereits angelegt ist.
listmonk_6.2.0_linux_amd64.tar.gz, und meiden Sie dabei die an erster Stelle angezeigte Beta; entpacken Sie das Binary.config.toml ein../listmonk --new-config
./listmonk --install
./listmonk
Standardmäßig lauscht config.toml auf localhost:9000, was hinter einem Reverse Proxy passt. Das Repository liefert eine Dienstdatei listmonk@.service für systemd.
Die Website des Projekts nennt eine Produktionsinstanz, die eine Kampagne von mehr als 7 Millionen E-Mails mit einem Bruchteil eines Prozessorkerns und einer Spitze von 57 MB Arbeitsspeicher versendet. Sie veröffentlicht weder ein Minimum noch eine Zahl für PostgreSQL, dessen Volumen mit Ihren Abonnenten, Ihren Öffnungen und Ihren Klicks wächst. Auf einem Managed VPS beschreiben Sie uns Ihren Einsatz, und wir empfehlen Ihnen die passende Größe.
Ihre Abonnenten klicken auf Links, die auf Ihre Instanz zeigen: Abmeldung, Bestätigung, Klickverfolgung. Sie wird daher mit HTTPS unter einem eigenen Domainnamen betrieben. Legen Sie die A- und AAAA-Einträge dieses Namens auf Ihren Server an, wo die Besucher über die Ports 80 und 443 ankommen. Die Dokumentation von Listmonk lässt die Wahl des Proxys offen, hier zwei gängige Konfigurationen.
Caddy bezieht und erneuert das Zertifikat selbstständig:
listmonk.example.com {
reverse_proxy 127.0.0.1:9000
}
Nginx lehnt standardmäßig Anfragen über 1 MB mit einem Fehler 413 ab. Um eine Abonnentendatei oder Bilder zu importieren, erhöhen Sie dieses Limit passend zu Ihren Dateien:
server {
listen 80;
listen [::]:80;
server_name listmonk.example.com;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Certbot richtet anschließend das Zertifikat von Let’s Encrypt und die Weiterleitung auf HTTPS ein und erneuert das Zertifikat danach selbstständig:
sudo certbot --nginx -d listmonk.example.com
Melden Sie sich auf https://listmonk.example.com/admin an und öffnen Sie dann „Settings“:
https://listmonk.example.com. Listmonk bildet daraus die Links zur Abmeldung, Bestätigung und Verfolgung in Ihren E-Mails. Ihr Startwert, http://localhost:9000, würde bei Ihren Abonnenten nicht funktionieren./listmonk/uploads, der Ordner, den die Compose-Datei auf dem Server einbindet.Um den Zugang zu filtern, nach IP-Adresse oder über einen Authentifizierungs-Proxy, teilt die Dokumentation die Routen so ein:
| Routen | Aufgabe | Zugang |
|---|---|---|
/admin/*, /api/*, /webhooks/bounce | Die Administration, ihre API und der interne Bounce-Webhook | Privat |
/subscription/*, /public/* | Die Anmeldeseiten und ihre Dateien | Öffentlich |
/link/*, /campaign/* | Die Linkverfolgung und das Tracking-Pixel | Öffentlich |
/webhooks/service/* | Die Bounces, die Ihr Versanddienst sendet | Öffentlich |
/uploads/* | Die Bilder Ihrer E-Mails | Öffentlich |
Listmonk bereitet Ihre E-Mails vor und taktet sie, dann übergibt es sie den SMTP-Servern, die Sie unter „Settings“, „SMTP“ deklarieren. Es liefert sie nicht selbst an die Postfächer Ihrer Abonnenten aus: Die Qualität der Zustellung hängt also von diesem Server, Ihrer Domain und Ihren Listen ab.
Wählen Sie für den Massenversand einen spezialisierten Versanddienst: Er trägt die Reputation Ihrer Sendungen und die Signaturen Ihrer Domain und kann Bounces zurückmelden. Von einem Simafri-VPS aus läuft der Versand über ein authentifiziertes SMTP-Relay auf Port 587: hier das dieses Dienstes.
Zur Orientierung: Die Dokumentation von Listmonk beschreibt die Bounces von Amazon SES, Azure Communication Services, SendGrid, Postmark, Forward Email und Lettermint. Vergleichen Sie sie nach Ihrem Volumen und Ihren Empfängern.
| Einstellung | Wert | Was Sie prüfen |
|---|---|---|
| Host | Die SMTP-Adresse Ihres Dienstes | Ersetzt den mitgelieferten Beispielwert |
| Port | 587 | Die Voreinstellungen des Bildschirms schlagen oft einen anderen Port vor: Wechseln Sie zurück auf 587 |
| TLS | STARTTLS | Passt zum Port 587 |
| Auth protocol | Das Ihres Dienstes, oft LOGIN | Mit dem SMTP-Benutzernamen und -Passwort des Dienstes |
Klicken Sie dann auf „Test connection“: Listmonk sendet eine Testnachricht und zeigt den Fehler des Servers an, falls der Versand scheitert. Sie können mehrere Server deklarieren, pro Kampagne einen davon wählen oder die Sendungen nach Absenderadresse oder -domain leiten.
Stellen Sie ihn unter „Settings“, „Performance“ ein, unterhalb des Limits Ihres Dienstes:
Eine fehlgeschlagene Nachricht wird gemäß der Einstellung „Retries“ über andere Verbindungen des Servers erneut versucht. Scheitert sie weiter, vermerkt Listmonk sie als Fehler und geht zur nächsten über: Beobachten Sie diese Fehler während einer großen Kampagne.
Die Anwendung selbst zu hosten, macht Sie zum Herrn über diese Themen, und sie entscheiden, ob Ihre E-Mails ankommen.
Senden Sie von einer Adresse Ihrer Domain und veröffentlichen Sie in deren DNS-Zone die SPF- und DKIM-Einträge, die Ihr Versanddienst Ihnen gibt, dazu einen DMARC-Eintrag. Google verlangt alle drei von Absendern von mehr als 5.000 Nachrichten pro Tag an Gmail-Konten, mit einer an SPF oder DKIM ausgerichteten Absenderdomain, der Ein-Klick-Abmeldung für Marketing-Nachrichten und einer Spam-Meldequote unter 0,30 %, idealerweise unter 0,10 %.
{{ UnsubscribeURL }} in den Fußbereich Ihrer Vorlage. Dieser Link führt zur Verwaltung der Einstellungen und zur Abmeldung.Listmonk wendet den Listentyp an, den Sie wählen. Auf einer Liste mit Single-Opt-in erhält ein ohne Bestätigung hinzugefügter Abonnent Ihre Kampagnen trotzdem. Auf einer Liste mit Double-Opt-in erhält er zuerst eine Bestätigungs-E-Mail, und nur bestätigte Abonnenten erhalten Ihre Kampagnen. Das ist die Wahl, die Ihre Versandreputation am besten schützt und eine klare Spur der Zustimmung bewahrt.
Die Regeln hängen vom Land Ihrer Empfänger ab. In Frankreich zum Beispiel verlangt die CNIL die vorherige Einwilligung von Privatpersonen, durch eine positive Handlung wie ein nicht vorausgewähltes Kästchen, mit einer Ausnahme für Ihre Kunden bei ähnlichen Produkten oder Dienstleistungen. Zwischen Unternehmen kann sich die Ansprache auf das berechtigte Interesse stützen, wenn sie ihr Berufsfeld betrifft. In jedem Fall nennt jede Nachricht den Absender und bietet eine einfache Möglichkeit, weitere abzulehnen.
Schreiben Sie nur an Personen, die Ihre Nachrichten erwarten. Eine gekaufte oder alte Liste lässt die Bounces und Spam-Meldungen steigen, und die Folgen trägt Ihre Domain.
Das Tracking-Pixel und die Klickverfolgung berühren die Privatsphäre, und die Dokumentation verlangt, sie im Einklang mit Regeln wie der DSGVO zu nutzen. Standardmäßig wird diese Verfolgung nicht mit jedem Abonnenten verknüpft: Die Option „Individual subscriber tracking“ verknüpft sie, und „Disable tracking“ schaltet sie ganz ab, unter „Settings“, „Privacy“.
Weiter an eine Adresse zu schreiben, die Ihre Nachrichten zurückweist, schadet Ihrer Versandreputation. Die Verarbeitung der Bounces ist zu Beginn deaktiviert: Aktivieren Sie sie unter „Settings“, „Bounces“ und wählen Sie dann einen dieser beiden Wege.
https://listmonk.example.com/webhooks/service/ses, wobei sich das letzte Wort je nach Dienst ändert. Diese Adresse muss öffentlich bleiben.Für ein eigenes Postfach deklarieren Sie es als Rückadresse unter „Settings“, „SMTP“, „Custom headers“:
[
{"Return-Path": "your-bounce-inbox@example.com"}
]
Die Startwerte sind die, die die Dokumentation für SES angibt, und sie bilden eine gute Basis:
| Art des Bounces | Anzahl | Aktion |
|---|---|---|
| Soft (leicht) | 2 | None: keine |
| Hard (endgültig) | 1 | Blocklist: Die Adresse wird gesperrt |
| Complaint (Spam-Meldung) | 1 | Blocklist: Die Adresse wird gesperrt |
Listmonk verlangt PostgreSQL 12 oder neuer. Die Compose-Datei bringt postgres:17-alpine mit, mit seinen Daten im Docker-Volume listmonk-data. Abonnenten, Kampagnen, Vorlagen, Statistiken und die meisten Einstellungen leben dort; nur die Zugangsdaten zur Datenbank und die Lauschadresse bleiben in der Konfiguration.
Um einen bestehenden PostgreSQL-Server anzusprechen, ändern Sie die Variablen LISTMONK_db__host, LISTMONK_db__port, LISTMONK_db__user, LISTMONK_db__password und LISTMONK_db__database des Dienstes app.
Listmonk ist für große Listen gemacht. Wächst die Datenbank, kann sie es sein, die die Oberfläche bremst: Bei Millionen von Abonnenten können das Dashboard und die Zähler Dutzende von Sekunden zum Anzeigen brauchen. Das Projekt rät dann zu zwei Maßnahmen:
VACUUM ANALYZE auf einer großen Datenbank, zum Beispiel jede Woche. Der Befehl blockiert die Abfragen für die Dauer seines Durchlaufs, in der Regel einige Sekunden.docker compose exec db psql -U listmonk -d listmonk -c 'VACUUM ANALYZE;'
Zwei Elemente machen Ihre Instanz aus: die PostgreSQL-Datenbank und der Ordner uploads, falls Ihre Bilder auf der Festplatte bleiben. pg_dump erzeugt einen konsistenten Export, ohne Listmonk anzuhalten oder die anderen Zugriffe auf die Datenbank zu blockieren:
docker compose exec -T db pg_dump -U listmonk listmonk > listmonk-$(date +%F).sql
tar -czf listmonk-uploads-$(date +%F).tar.gz uploads
Zum Wiederherstellen stoppen Sie Listmonk, leeren die Datenbank und laden dann den Export neu. Wie die Dokumentation klarstellt, löscht dieser Schritt die vorhandene Datenbank:
docker compose stop app
docker compose exec db psql -U listmonk -d listmonk -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;'
docker compose exec -T db psql -U listmonk -d listmonk < listmonk-2026-11-01.sql
docker compose start app
docker-compose.yml.docker compose down app
docker compose pull
docker compose up app -d
Mit dem Binary stoppen Sie Listmonk, ersetzen das Binary, führen ./listmonk --upgrade aus und starten es dann neu. Um zu einer früheren Version zurückzukehren, stellen Sie den vor dem Update gezogenen Export wieder her und setzen dann das alte Tag zurück.
Beim Selbsthosting müssen Sie neben der Anwendung auch den Server betreuen. Auf einem Managed VPS übernehmen unsere Teams den Server und betreuen Ihre Instanz proaktiv; Listmonk bleibt Ihre Software, mit ihren Einstellungen, Ihren Listen und Ihren Kampagnen.
| Thema | Unsere Teams | Sie |
|---|---|---|
| Der Server | System- und Sicherheitsupdates, Eingriffe am Server inbegriffen | Der Zeitpunkt, der zu Ihrem Betrieb passt |
| Die Überwachung | Server rund um die Uhr im Blick, mit Eingriff, ohne auf Ihren Anruf zu warten | Die Verfolgung Ihrer Kampagnen und Ihrer Bounces |
| Listmonk | Proaktive Betreuung: Fehler, lange Antwortzeiten und Speicherplatz erkannt, Korrektur empfohlen | Installation, Updates und Einstellungen, die Sie umsetzen, selbst oder mit Ihrem KI-Assistenten |
| Der Versand | Ein Server, der Ihr SMTP-Relay auf Port 587 erreicht | Ihr Versanddienst, Ihre DNS-Einträge, Ihre Listen und die Einwilligung Ihrer Empfänger |
| Die Backups | Jede Nacht, verschlüsselt und außerhalb der Maschine aufbewahrt; Wiederherstellung inbegriffen | Die Wiederherstellungsanfrage und Ihr Export vor jedem Update |
| Die Migration | Ihr aktueller Server wird kostenlos migriert | Der Zeitpunkt der Umstellung |
Wenn unsere Teams lieber in der Anwendung selbst eingreifen sollen, wird diese Leistung nach Stunden oder pauschal abgerechnet, mit einem Kostenvoranschlag vor dem Eingriff.
Mit einem Managed VPS von Simafri halten unsere Teams den Server Ihrer Listmonk-Instanz aktuell, überwachen ihn Tag und Nacht und greifen ein, ohne auf Ihren Anruf zu warten; sie betreuen auch Ihre Instanz proaktiv und empfehlen Ihnen die sinnvollen Korrekturen, die Sie umsetzen, selbst oder mit Ihrem KI-Assistenten. Die Backups werden jede Nacht verschlüsselt und außerhalb der Maschine aufbewahrt, ihre Wiederherstellung ist inbegriffen, und die Migration Ihres aktuellen Servers ist kostenlos.
Ja. Listmonk steht unter der AGPL-3.0: Sie können es im Unternehmen nutzen, ohne eine Lizenz zu kaufen. Wenn Sie es ändern, müssen Ihre Nutzer aus der Ferne den Quellcode Ihrer Version erhalten können. Bleiben die Kosten für den Server und für Ihren Versanddienst.
Die v6.2.0, die letzte stabile Version am 11. November 2026. Die v7.0.0-beta.2, auf GitHub an erster Stelle angezeigt, ist eine Beta. Legen Sie in Docker Compose das Image auf listmonk/listmonk:v6.2.0 fest: Der Versionswechsel bleibt dann Ihre Entscheidung, denn eine migrierte Datenbank lässt sich mit einer älteren Version nicht mehr lesen.
Holen Sie die Datei docker-compose.yml des Projekts, ändern Sie das Passwort der Datenbank und das Tag des Images und starten Sie docker compose up -d. Die Oberfläche antwortet auf Port 9000, mit PostgreSQL daneben. Betreiben Sie sie mit HTTPS hinter einem Reverse Proxy und tragen Sie ihre Root URL ein.
Listmonk sendet über die SMTP-Server, die Sie konfigurieren. Nehmen Sie für den Massenversand einen spezialisierten Versanddienst, mit STARTTLS auf Port 587, und veröffentlichen Sie SPF, DKIM und DMARC auf Ihrer Domain. Die Dokumentation von Listmonk beschreibt zum Beispiel die Bounces von Amazon SES, SendGrid und Postmark.
Aktivieren Sie die Verarbeitung unter Settings, Bounces und binden Sie dann den Webhook Ihres Versanddienstes oder ein eigenes POP3-Postfach an. Die Startwerte sperren eine Adresse schon bei einem endgültigen Bounce oder einer Spam-Meldung.
Exportieren Sie die Datenbank mit pg_dump, ohne den Dienst anzuhalten, und bewahren Sie den Ordner uploads auf, wenn Ihre Bilder auf der Festplatte liegen. Das Projekt verlangt diesen Export vor jedem Update, denn eine frühere Version liest eine bereits migrierte Datenbank nicht mehr.
Es gibt Ihnen die Werkzeuge dafür: Listen mit Double-Opt-in, Abmeldelink in Ihren Vorlagen, Header List-Unsubscribe, Export und Löschung der Daten durch den Abonnenten. Die Einwilligung selbst müssen Sie auf Ihrer Seite einholen, nach den Regeln des Landes Ihrer Empfänger.
Ein Managed VPS deckt den Server ab: System, Sicherheit, Überwachung und Backups. Unsere Teams betreuen auch Ihre Instanz proaktiv und empfehlen Ihnen die sinnvollen Korrekturen, die Sie umsetzen. Ein Eingriff in der Anwendung wird nach Stunden oder pauschal abgerechnet.
Simafri
Sprechen wir über Ihr Vorhaben
Sagen Sie uns in wenigen Worten, was Sie brauchen: Wir melden uns schnell bei Ihnen.
Vielen Dank! Ihre Anfrage wurde gesendet. Wir melden uns in Kürze bei Ihnen.
Sie schreiben lieber eine E-Mail? Schreiben Sie uns an support@simafri.com.