At hoste Listmonk på en Managed VPS betyder at opbevare dine abonnentlister og dine kampagner på en maskine, der er din egen, og som vores teams holder opdateret og overvåger dag og nat. Listmonk er fri software under AGPL-3.0-licensen. Denne guide følger den officielle dokumentation: hvilken version du skal vælge, Docker Compose, PostgreSQL, HTTPS, afsendelse via SMTP, bounces, samtykke, backup og opdateringer.
Af Simon Vasconcelos Lee
Udgivet den 12. november 2026Læsetid: 13 minutter
pg_dump før hver opdatering.Listmonk administrerer dine mailinglister og dine nyhedsbreve fra en webgrænseflade. Det er ét enkelt program, skrevet i Go, hvor PostgreSQL er den eneste afhængighed. Dets lister er envejs: du skriver til dine abonnenter, og det er ikke en diskussionsliste mellem dem.
Listmonk udgives under GNU AGPL version 3-licensen. Du kan bruge den, også i en virksomhed, og sende dine og dine kunders kampagner uden at skulle købe en licens. Tilbage er udgiften til serveren og til din afsendertjeneste.
Artikel 13 tilføjer en betingelse, der er særlig for AGPL: hvis du ændrer programmet, skal din version tydeligt tilbyde alle, der bruger det på afstand, via netværket, at få dets kildekode gratis. Hvis du distribuerer kopier, gælder licensens forpligtelser til at dele koden også. At køre Listmonk uden at ændre den udløser ikke denne artikel.
Noget, du bør vide, før du begynder. På GitHub betegner mærket «Latest» for tiden v7.0.0-beta.2 fra den 10. november 2026, som projektet selv præsenterer som en beta. Den seneste stabile version er v6.2.0, som indeholder sikkerhedsrettelser til tilladelserne. Den 11. november 2026 peger Docker-imaget latest på denne v6.2.0.
| Version | Docker-image | Status |
|---|---|---|
| v6.2.0 | listmonk/listmonk:v6.2.0 | Stabil: den, der bruges i denne guide |
| v7.0.0-beta.2 | listmonk/listmonk:beta | Beta: skal prøves på en kopi, med en backup |
| nightly | listmonk/listmonk:nightly | Ikke testet, ifølge projektet: på eget ansvar |
Version 7 erstatter hele administrationsgrænsefladen, ændrer nogle af dens adresser, gør indstillingen app.from_email til en liste af adresser og ændrer oversættelsesnøgler, hvilket berører tilpassede skabeloner. Læs dens versionsnoter, før du går over til den.
Projektets Compose-fil kører --upgrade --yes ved hver opstart: et nyt image migrerer databasen uden at spørge dig. Men en migreret database kan ikke læses af en ældre version, og at gå tilbage kræver, at en backup gendannes. Med et fast tag, som v6.2.0, forbliver skiftet af version din beslutning.
Projektet anbefaler Docker Compose: dets fil starter Listmonk og PostgreSQL sammen. På en server, hvor Docker er installeret, opretter du en mappe og henter denne fil:
mkdir listmonk
cd listmonk
curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml
Projektet beder om at tilpasse denne fil til dit miljø. Her er de eneste linjer, der skal ændres, resten røres ikke:
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 som startværdi. Ændr den før første opstart, for PostgreSQL-imaget læser kun denne variabel på en tom datamappe.latest, af den grund der er nævnt ovenfor.127.0.0.1: det er vores tilpasning. Projektets fil publicerer port 9000 uden begrænsning af adresse og begrænser allerede PostgreSQL til den lokale adresse. Behandlet på samme måde nås Listmonk kun via reverse proxyen.Start derefter tjenesterne, og opret samtidig Super Admin-kontoen på forhånd. Disse to variabler bruges kun ved første opstart, og uden dem oprettes kontoen ved det første besøg i grænsefladen: det er bedre, at den findes, før du åbner dit domæne.
LISTMONK_ADMIN_USER=votre-identifiant LISTMONK_ADMIN_PASSWORD=votre-mot-de-passe docker compose up -d
Listmonk kører også som et selvstændigt program ved siden af din egen PostgreSQL-server, i version 12 eller nyere, hvor databasen allerede er oprettet.
listmonk_6.2.0_linux_amd64.tar.gz, og undgå betaen, der vises øverst, og udpak binæren.config.toml../listmonk --new-config
./listmonk --install
./listmonk
Som standard lytter config.toml på localhost:9000, hvilket passer bag en reverse proxy. Repositoryet leverer en tjenestefil listmonk@.service til systemd.
Projektets website nævner en produktionsinstans, der sender en kampagne på mere end 7 millioner e-mails med en brøkdel af en processorkerne og en spids på 57 MB hukommelse. Det offentliggør hverken et minimum eller et tal for PostgreSQL, hvis volumen vokser med dine abonnenter, dine åbninger og dine klik. På en Managed VPS beskriver du blot din brug for os, og vi anbefaler den størrelse, der passer.
Dine abonnenter klikker på links, der peger på din instans: afmelding, bekræftelse, sporing af klik. Den serveres derfor via HTTPS på sit eget domænenavn. Opret A- og AAAA-records for dette navn, der peger på din server, hvor de besøgende kommer ind på port 80 og 443. Listmonks dokumentation overlader valget af proxy til dig, her er to almindelige konfigurationer.
Caddy henter og fornyer selv certifikatet:
listmonk.example.com {
reverse_proxy 127.0.0.1:9000
}
Nginx afviser som standard forespørgsler på mere end 1 MB med fejlen 413. For at importere en fil med abonnenter eller billeder skal du hæve denne grænse, så den passer til dine filer:
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 installerer derefter certifikatet fra Let's Encrypt og omdirigeringen til HTTPS og fornyer derefter certifikatet af sig selv:
sudo certbot --nginx -d listmonk.example.com
Log ind på https://listmonk.example.com/admin, og åbn derefter «Settings»:
https://listmonk.example.com. Listmonk henter linkene til afmelding, bekræftelse og sporing i dine e-mails herfra. Dens startværdi, http://localhost:9000, ville ikke fungere hos dine abonnenter./listmonk/uploads, den mappe, som Compose-filen mounter på serveren.For at filtrere adgangen, efter IP-adresse eller via en godkendelsesproxy, fordeler dokumentationen ruterne således:
| Ruter | Rolle | Adgang |
|---|---|---|
/admin/*, /api/*, /webhooks/bounce | Administrationen, dens API og den interne webhook til bounces | Privat |
/subscription/*, /public/* | Tilmeldingssiderne og deres filer | Offentlig |
/link/*, /campaign/* | Sporing af links og sporingspixlen | Offentlig |
/webhooks/service/* | De bounces, som din afsendertjeneste sender | Offentlig |
/uploads/* | Billederne i dine e-mails | Offentlig |
Listmonk forbereder og tidsstyrer dine e-mails og overlader dem derefter til de SMTP-servere, du angiver under «Settings», «SMTP». Det leverer dem ikke selv til dine abonnenters postkasser: leveringens kvalitet afhænger derfor af denne server, af dit domæne og af dine lister.
Til masseudsendelse bør du vælge en specialiseret afsendertjeneste: den bærer dine udsendelsers omdømme og dit domænes signaturer og kan rapportere bounces. Fra en Simafri VPS går afsendelsen gennem et autentificeret SMTP-relay på port 587: her denne tjenestes.
Som rettesnor beskriver Listmonks dokumentation bounces fra Amazon SES, Azure Communication Services, SendGrid, Postmark, Forward Email og Lettermint. Sammenlign dem efter dit volumen og dine modtagere.
| Indstilling | Værdi | Hvad du kontrollerer |
|---|---|---|
| Host | SMTP-adressen på din tjeneste | Erstatter det medfølgende eksempel |
| Port | 587 | Skærmbilledets forvalg foreslår ofte en anden port: skift tilbage til 587 |
| TLS | STARTTLS | Hører sammen med port 587 |
| Auth protocol | Din tjenestes, ofte LOGIN | Med tjenestens SMTP-brugernavn og -adgangskode |
Klik derefter på «Test connection»: Listmonk sender en testbesked og viser serverens fejl, hvis afsendelsen mislykkes. Du kan angive flere servere, vælge en af dem pr. kampagne eller route afsendelserne efter afsenderadresse eller -domæne.
Indstil den under «Settings», «Performance», under din tjenestes grænse:
En besked, der mislykkes, forsøges igen efter indstillingen «Retries», på andre forbindelser til serveren. Mislykkes den stadig, noterer Listmonk den som fejl og går videre til den næste: hold øje med disse fejl under en stor kampagne.
At hoste applikationen gør dig til herre over disse emner, og det er dem, der afgør, om dine e-mails når frem.
Send fra en adresse på dit domæne, og publicér i dets DNS-zone de SPF- og DKIM-records, som din afsendertjeneste giver dig, sammen med en DMARC-record. Google kræver alle tre af afsendere af mere end 5.000 beskeder om dagen til Gmail-konti, med et afsenderdomæne afstemt efter SPF eller DKIM, afmelding med ét klik for markedsføringsbeskeder og en spamrapporteringsrate under 0,30 %, helst under 0,10 %.
{{ UnsubscribeURL }} i bunden af din skabelon. Dette link fører til administration af præferencer og til afmelding.Listmonk anvender den listetype, du vælger. På en liste med single opt-in modtager en abonnent, der er tilføjet uden bekræftelse, alligevel dine kampagner. På en liste med double opt-in modtager vedkommende først en bekræftelsesmail, og kun bekræftede abonnenter modtager dine kampagner. Det er det valg, der bedst beskytter dit afsenderomdømme, og som bevarer et tydeligt spor af samtykket.
Reglerne afhænger af dine modtageres land. I Frankrig kræver CNIL for eksempel forudgående samtykke fra privatpersoner, ved en positiv handling som et felt, der ikke er afkrydset på forhånd, med en undtagelse for dine kunder for lignende produkter eller tjenester. Mellem erhvervsdrivende kan markedsføring bygge på legitim interesse, hvis den vedrører deres fag. I alle tilfælde identificerer hver besked afsenderen og giver en enkel måde at afvise de næste på.
Skriv kun til personer, der venter dine beskeder. En købt eller gammel liste får bounces og spamrapporteringer til at stige, og det er dit domæne, der bærer konsekvenserne.
Sporingspixlen og sporingen af klik berører privatlivet, og dokumentationen beder om at bruge dem under overholdelse af regler som GDPR. Som standard er denne sporing ikke knyttet til hver enkelt abonnent: valgmuligheden «Individual subscriber tracking» knytter den, og «Disable tracking» slår den helt fra, under «Settings», «Privacy».
At fortsætte med at skrive til en adresse, der afviser dine beskeder, skader dit afsenderomdømme. Behandlingen af bounces er slået fra fra start: slå den til under «Settings», «Bounces», og vælg derefter en af disse to veje.
https://listmonk.example.com/webhooks/service/ses, hvor det sidste ord ændrer sig efter tjenesten. Denne adresse skal forblive offentlig.Til en dedikeret postkasse angiver du den som returadresse under «Settings», «SMTP», «Custom headers»:
[
{"Return-Path": "your-bounce-inbox@example.com"}
]
Startindstillingerne er dem, som dokumentationen giver for SES, og de udgør et godt grundlag:
| Type bounce | Antal | Handling |
|---|---|---|
| Soft (let) | 2 | None: ingen |
| Hard (endelig) | 1 | Blocklist: adressen blokeres |
| Complaint (spamrapportering) | 1 | Blocklist: adressen blokeres |
Listmonk kræver PostgreSQL 12 eller nyere. Compose-filen medbringer postgres:17-alpine, med dataene i Docker-volumen listmonk-data. Abonnenter, kampagner, skabeloner, statistikker og de fleste indstillinger ligger der; kun adgangene til databasen og lytteadressen bliver i konfigurationen.
For at pege på en eksisterende PostgreSQL-server ændrer du variablerne LISTMONK_db__host, LISTMONK_db__port, LISTMONK_db__user, LISTMONK_db__password og LISTMONK_db__database i tjenesten app.
Listmonk er bygget til store lister. Efterhånden som databasen vokser, er det den, der kan gøre grænsefladen langsom: med millioner af abonnenter kan dashboardet og tællerne bruge flere titals sekunder på at blive vist. Projektet råder da til to greb:
VACUUM ANALYZE på en stor database, for eksempel hver uge. Kommandoen blokerer forespørgslerne, mens den kører, normalt nogle sekunder.docker compose exec db psql -U listmonk -d listmonk -c 'VACUUM ANALYZE;'
To elementer udgør din instans: PostgreSQL-databasen og mappen uploads, hvis dine billeder bliver på disken. pg_dump producerer en konsistent eksport uden at stoppe Listmonk eller blokere de øvrige adgange til databasen:
docker compose exec -T db pg_dump -U listmonk listmonk > listmonk-$(date +%F).sql
tar -czf listmonk-uploads-$(date +%F).tar.gz uploads
For at gendanne stopper du Listmonk, tømmer databasen og genindlæser derefter eksporten. Som dokumentationen understreger, sletter dette indgreb den eksisterende database:
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
Med binæren stopper du Listmonk, erstatter binæren, kører ./listmonk --upgrade og starter den derefter igen. For at gå tilbage til en tidligere version gendanner du den eksport, du tog før opdateringen, og sætter derefter det gamle tag på igen.
Selvhosting kræver, at du holder serveren ud over selve applikationen. På en Managed VPS tager vores teams sig af serveren og følger din instans proaktivt; Listmonk forbliver din software, med dens indstillinger, dine lister og dine kampagner.
| Emne | Vores teams | Dig |
|---|---|---|
| Serveren | Opdateringer af system og sikkerhed, indgreb på serveren inkluderet | Det tidspunkt, der passer til din drift |
| Overvågningen | Serveren følges døgnet rundt, alle ugens dage, med indgreb uden at vente på dit opkald | Opfølgningen på dine kampagner og dine bounces |
| Listmonk | Proaktiv opfølgning: fejl, langsomme svartider og diskplads opdages, og en rettelse anbefales | Installation, opdateringer og indstillinger, som du gennemfører, selv eller med din AI-assistent |
| Afsendelsen | En server, der når dit SMTP-relay på port 587 | Din afsendertjeneste, dine DNS-records, dine lister og dine modtageres samtykke |
| Backup | Hver nat, krypteret og opbevaret uden for maskinen; gendannelse inkluderet | Anmodningen om gendannelse og din eksport før hver opdatering |
| Migreringen | Din nuværende server flyttes, uden beregning | Tidspunktet for omlægningen |
Hvis du foretrækker, at vores teams griber ind i selve applikationen, faktureres den ydelse pr. time eller som fast pris, med et overslag oplyst før indgrebet.
Med en Managed VPS fra Simafri holder vores teams serveren bag din Listmonk-instans opdateret, overvåger den dag og nat og griber ind uden at vente på dit opkald; de følger også din instans proaktivt og anbefaler dig de nyttige rettelser, som du gennemfører, selv eller med din AI-assistent. Backup krypteres hver nat og opbevares uden for maskinen, gendannelsen er inkluderet, og migreringen af din nuværende server sker uden beregning.
Ja. Listmonk er under AGPL-3.0-licensen: du kan bruge den i din virksomhed uden at skulle købe en licens. Hvis du ændrer den, skal dine brugere på afstand kunne få kildekoden til din version. Tilbage er udgiften til serveren og til din afsendertjeneste.
v6.2.0, den seneste stabile version den 11. november 2026. v7.0.0-beta.2, der vises øverst på GitHub, er en beta. I Docker Compose fastlåser du imaget på listmonk/listmonk:v6.2.0: så forbliver skiftet af version din beslutning, for en migreret database kan ikke læses af en ældre version.
Hent projektets docker-compose.yml, ændr databasens adgangskode og imagets tag, og kør derefter docker compose up -d. Grænsefladen svarer på port 9000, med PostgreSQL ved siden af. Server den via HTTPS bag en reverse proxy, og angiv dens Root URL.
Listmonk sender via de SMTP-servere, du konfigurerer. Til masseudsendelse bør du vælge en specialiseret afsendertjeneste, med STARTTLS på port 587, og publicere SPF, DKIM og DMARC på dit domæne. Listmonks dokumentation beskriver for eksempel bounces fra Amazon SES, SendGrid og Postmark.
Slå behandlingen til under Settings, Bounces, og tilslut derefter din afsendertjenestes webhook eller en dedikeret POP3-postkasse. Startindstillingerne blokerer en adresse ved det første endelige bounce eller den første spamrapportering.
Eksportér databasen med pg_dump, uden at stoppe tjenesten, og behold mappen uploads, hvis dine billeder ligger på disken. Projektet beder om denne eksport før hver opdatering, for en tidligere version kan ikke læse en database, der allerede er migreret.
Det giver værktøjerne: lister med double opt-in, afmeldingslink i dine skabeloner, headeren List-Unsubscribe og abonnentens eksport og sletning af data. Selve samtykket skal indhentes af dig, efter reglerne i dine modtageres land.
En Managed VPS dækker serveren: system, sikkerhed, overvågning og backup. Vores teams følger også din instans proaktivt og anbefaler dig de nyttige rettelser, som du gennemfører. Et indgreb i selve applikationen faktureres pr. time eller som fast pris.
Simafri
Lad os tale om din hjemmeside
Fortæl os om dit projekt med få ord: vi vender hurtigt tilbage til dig.
Tak! Din forespørgsel er sendt. Vi vender tilbage til dig hurtigst muligt.
Foretrækker du e-mail? Skriv til os på support@simafri.com.