Hosting Listmonk na Managed VPS oznacza, że listy subskrybentów i kampanie trafiają na maszynę, która należy do Państwa, a nasze zespoły dbają o jej aktualność i nadzorują ją dniem i nocą. Listmonk to wolne oprogramowanie na licencji AGPL-3.0. Ten poradnik podąża za jego oficjalną dokumentacją: wybór wersji, Docker Compose, PostgreSQL, HTTPS, wysyłka przez SMTP, odbicia, zgody, kopie zapasowe i aktualizacje.
Autor: Simon Vasconcelos Lee
Opublikowano 12 listopada 2026Czas czytania: 13 minut
pg_dump przed każdą aktualizacją.Listmonk zarządza Państwa listami mailingowymi i newsletterami z poziomu interfejsu webowego. To pojedynczy program, napisany w Go, którego jedyną zależnością jest PostgreSQL. Jego listy są jednokierunkowe: Państwo piszą do subskrybentów, a nie jest to lista dyskusyjna między nimi.
Listmonk jest udostępniany na licencji GNU AGPL w wersji 3. Mogą Państwo go używać, także w firmie, i wysyłać swoje kampanie oraz kampanie swoich klientów, bez zakupu licencji. Pozostaje koszt serwera i koszt Państwa usługi wysyłkowej.
Artykuł 13 dodaje warunek właściwy dla AGPL: jeśli Państwo zmodyfikują program, Państwa wersja musi wyraźnie proponować każdemu, kto korzysta z niej zdalnie, przez sieć, bezpłatne uzyskanie jej kodu źródłowego. Jeśli rozpowszechniają Państwo kopie, stosują się też obowiązki licencji dotyczące udostępniania kodu. Uruchamianie Listmonk bez modyfikacji nie uruchamia tego artykułu.
Jedna rzecz, którą warto znać na początku. Na GitHubie etykieta „Latest” wskazuje obecnie v7.0.0-beta.2 z 10 listopada 2026 roku, którą sam projekt przedstawia jako betę. Ostatnia wersja stabilna to v6.2.0, zawierająca poprawki bezpieczeństwa dotyczące uprawnień. Na 11 listopada 2026 roku obraz Docker latest wskazuje tę v6.2.0.
| Wersja | Obraz Docker | Stan |
|---|---|---|
| v6.2.0 | listmonk/listmonk:v6.2.0 | Stabilna: ta z tego poradnika |
| v7.0.0-beta.2 | listmonk/listmonk:beta | Beta: do wypróbowania na kopii, z kopią zapasową |
| nightly | listmonk/listmonk:nightly | Według projektu nietestowana: na Państwa ryzyko |
Wersja 7 zastępuje cały interfejs administracyjny, zmienia niektóre jego adresy, czyni z ustawienia app.from_email listę adresów i modyfikuje klucze tłumaczeń, co dotyka szablonów własnych. Przed przejściem proszę przeczytać jej informacje o wydaniu.
Plik Compose projektu uruchamia --upgrade --yes przy każdym starcie: nowy obraz migruje bazę bez pytania. Tymczasem zmigrowanej bazy nie da się odczytać starszą wersją, a powrót wymaga przywrócenia kopii zapasowej. Przy stałym tagu, jak v6.2.0, zmiana wersji pozostaje Państwa decyzją.
Projekt zaleca Docker Compose: jego plik uruchamia Listmonk i PostgreSQL razem. Na serwerze z zainstalowanym Dockerem proszę utworzyć katalog i pobrać ten plik:
mkdir listmonk
cd listmonk
curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml
Projekt każe dostosować ten plik do Państwa środowiska. Oto jedyne linie do zmiany, reszta pozostaje bez zmian:
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 jako wartość wyjściową. Proszę zmienić je przed pierwszym uruchomieniem, ponieważ obraz PostgreSQL odczytuje tę zmienną tylko przy pustym katalogu danych.latest, z powodu opisanego wyżej.127.0.0.1: to nasza adaptacja. Plik projektu publikuje port 9000 bez ograniczenia adresu, a PostgreSQL ogranicza już do adresu lokalnego. Potraktowany tak samo, Listmonk jest osiągalny wyłącznie przez odwrotne proxy.Następnie proszę uruchomić usługi, tworząc z góry konto Super Admin. Te dwie zmienne służą tylko przy pierwszym uruchomieniu, a bez nich konto powstaje przy pierwszej wizycie w interfejsie: lepiej, by istniało, zanim otworzą Państwo swoją domenę.
LISTMONK_ADMIN_USER=votre-identifiant LISTMONK_ADMIN_PASSWORD=votre-mot-de-passe docker compose up -d
Listmonk działa też jako samodzielny program, obok Państwa własnego serwera PostgreSQL w wersji 12 lub nowszej, w którym baza jest już utworzona.
listmonk_6.2.0_linux_amd64.tar.gz, unikając bety wyświetlanej na górze, i rozpakować plik binarny.config.toml../listmonk --new-config
./listmonk --install
./listmonk
Domyślnie config.toml nasłuchuje na localhost:9000, co pasuje za odwrotnym proxy. Repozytorium dostarcza plik usługi listmonk@.service dla systemd.
Strona projektu podaje instancję produkcyjną, która wysyła kampanię liczącą ponad 7 milionów e-maili, używając ułamka rdzenia procesora i szczytowo 57 MB pamięci. Nie publikuje ani minimum, ani liczby dla PostgreSQL, którego objętość rośnie wraz z subskrybentami, otwarciami i kliknięciami. Na Managed VPS wystarczy opisać nam swoje zastosowanie, a polecimy odpowiedni rozmiar.
Państwa subskrybenci klikają linki wskazujące na Państwa instancję: wypisanie, potwierdzenie, śledzenie kliknięć. Udostępnia się ją więc przez HTTPS pod własną nazwą domeny. Rekordy A i AAAA tej nazwy proszę skierować na serwer, na którego porty 80 i 443 docierają odwiedzający. Dokumentacja Listmonk zostawia wybór proxy, oto dwie typowe konfiguracje.
Caddy samodzielnie uzyskuje i odnawia certyfikat:
listmonk.example.com {
reverse_proxy 127.0.0.1:9000
}
Nginx domyślnie odrzuca żądania większe niż 1 MB, z błędem 413. Aby zaimportować plik subskrybentów albo obrazy, proszę podnieść ten limit stosownie do swoich plików:
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 następnie instaluje certyfikat Let’s Encrypt oraz przekierowanie na HTTPS, a potem sam go odnawia:
sudo certbot --nginx -d listmonk.example.com
Proszę zalogować się na https://listmonk.example.com/admin, a następnie otworzyć „Settings”:
https://listmonk.example.com. Listmonk buduje z niego linki do wypisania, potwierdzenia i śledzenia w Państwa e-mailach. Jego wartość wyjściowa, http://localhost:9000, nie działałaby u Państwa subskrybentów./listmonk/uploads, katalog, który plik Compose montuje na serwerze.Aby filtrować dostęp, według adresu IP lub przez proxy uwierzytelniające, dokumentacja dzieli trasy w ten sposób:
| Trasy | Rola | Dostęp |
|---|---|---|
/admin/*, /api/*, /webhooks/bounce | Administracja, jej API i wewnętrzny webhook odbić | Prywatny |
/subscription/*, /public/* | Strony zapisu i ich pliki | Publiczny |
/link/*, /campaign/* | Śledzenie linków i piksel śledzący | Publiczny |
/webhooks/service/* | Odbicia wysyłane przez Państwa usługę wysyłkową | Publiczny |
/uploads/* | Obrazy w Państwa e-mailach | Publiczny |
Listmonk przygotowuje i dozuje Państwa e-maile, a następnie powierza je serwerom SMTP, które Państwo zadeklarują w „Settings”, „SMTP”. Sam nie dostarcza ich do skrzynek subskrybentów: jakość dostarczania zależy więc od tego serwera, Państwa domeny i Państwa list.
Do wysyłki masowej proszę wybrać wyspecjalizowaną usługę wysyłkową: niesie ona reputację Państwa wysyłek i podpisy Państwa domeny oraz potrafi przekazywać odbicia. Z VPS Simafri wysyłka odbywa się przez uwierzytelniony przekaźnik SMTP, na porcie 587: tutaj przekaźnik tej usługi.
Dla orientacji dokumentacja Listmonk opisuje odbicia Amazon SES, Azure Communication Services, SendGrid, Postmark, Forward Email i Lettermint. Proszę je porównać według swojego wolumenu i odbiorców.
| Ustawienie | Wartość | Co Państwo sprawdzają |
|---|---|---|
| Host | Adres SMTP Państwa usługi | Zastępuje podaną wartość przykładową |
| Port | 587 | Ustawienia wstępne na ekranie często proponują inny port: proszę wrócić do 587 |
| TLS | STARTTLS | Idzie w parze z portem 587 |
| Auth protocol | Ten, który stosuje Państwa usługa, często LOGIN | Z identyfikatorem i hasłem SMTP usługi |
Następnie proszę kliknąć „Test connection”: Listmonk wysyła wiadomość próbną i wyświetla błąd serwera, jeśli wysyłka się nie powiedzie. Mogą Państwo zadeklarować kilka serwerów, wybrać jeden z nich dla kampanii albo kierować wysyłki według adresu lub domeny nadawcy.
Ustawia się ją w „Settings”, „Performance”, poniżej limitu Państwa usługi:
Wiadomość, która się nie powiodła, jest ponawiana według ustawienia „Retries”, na innych połączeniach serwera. Jeśli znów się nie powiedzie, Listmonk odnotowuje błąd i przechodzi do następnej: podczas dużej kampanii proszę obserwować te błędy.
Samodzielny hosting aplikacji czyni Państwa panami tych kwestii, a to one decydują, czy Państwa e-maile dotrą.
Proszę wysyłać z adresu w swojej domenie i opublikować w jej strefie DNS rekordy SPF i DKIM, które podaje Państwa usługa wysyłkowa, razem z rekordem DMARC. Google wymaga wszystkich trzech od nadawców wysyłających ponad 5 000 wiadomości dziennie na konta Gmail, z domeną nadawcy zgodną z SPF lub DKIM, wypisaniem jednym kliknięciem dla wiadomości marketingowych oraz odsetkiem zgłoszeń spamu poniżej 0,30 %, najlepiej poniżej 0,10 %.
{{ UnsubscribeURL }} proszę umieścić w stopce szablonu. Ten link prowadzi do zarządzania preferencjami i wypisania.Listmonk stosuje typ listy, który Państwo wybiorą. Na liście z pojedynczym opt-in subskrybent dodany bez potwierdzenia i tak otrzymuje Państwa kampanie. Na liście z podwójnym opt-in otrzymuje najpierw e-mail z potwierdzeniem, a kampanie otrzymują tylko potwierdzeni subskrybenci. To wybór, który najlepiej chroni reputację Państwa wysyłek i zachowuje wyraźny ślad zgody.
Zasady zależą od kraju odbiorców. We Francji, na przykład, CNIL wymaga uprzedniej zgody osób prywatnych, wyrażonej aktywnym działaniem, jak niezaznaczone domyślnie pole, z wyjątkiem Państwa klientów w odniesieniu do podobnych produktów lub usług. Między przedsiębiorcami prospekcja może opierać się na uzasadnionym interesie, jeśli dotyczy ich zawodu. W każdym przypadku każda wiadomość wskazuje nadawcę i oferuje prosty sposób odmowy kolejnych.
Proszę pisać tylko do osób, które oczekują Państwa wiadomości. Lista kupiona lub stara zwiększa liczbę odbić i zgłoszeń spamu, a konsekwencje ponosi Państwa domena.
Piksel śledzący i śledzenie kliknięć dotykają prywatności, a dokumentacja prosi o używanie ich z poszanowaniem przepisów takich jak RODO. Domyślnie to śledzenie nie jest powiązane z poszczególnymi subskrybentami: opcja „Individual subscriber tracking” je łączy, a „Disable tracking” wyłącza całkowicie, w „Settings”, „Privacy”.
Dalsze pisanie na adres, który odrzuca Państwa wiadomości, psuje reputację wysyłek. Obsługa odbić jest na początku wyłączona: proszę włączyć ją w „Settings”, „Bounces”, a następnie wybrać jedną z dwóch dróg.
https://listmonk.example.com/webhooks/service/ses, przy czym ostatni człon zależy od usługi. Ten adres musi pozostać publiczny.Dla skrzynki dedykowanej proszę zadeklarować ją jako adres zwrotny w „Settings”, „SMTP”, „Custom headers”:
[
{"Return-Path": "your-bounce-inbox@example.com"}
]
Ustawienia wyjściowe to te, które dokumentacja podaje dla SES, i stanowią dobrą podstawę:
| Typ odbicia | Liczba | Działanie |
|---|---|---|
| Soft (lekkie) | 2 | None: brak |
| Hard (trwałe) | 1 | Blocklist: adres zostaje zablokowany |
| Complaint (zgłoszenie jako spam) | 1 | Blocklist: adres zostaje zablokowany |
Listmonk wymaga PostgreSQL 12 lub nowszego. Plik Compose dostarcza postgres:17-alpine, z danymi w wolumenie Docker listmonk-data. Subskrybenci, kampanie, szablony, statystyki i większość ustawień mieszkają tam; w konfiguracji pozostają tylko dane dostępowe do bazy i adres nasłuchu.
Aby wskazać istniejący serwer PostgreSQL, proszę zmienić zmienne LISTMONK_db__host, LISTMONK_db__port, LISTMONK_db__user, LISTMONK_db__password i LISTMONK_db__database usługi app.
Listmonk zaprojektowano z myślą o dużych listach. W miarę jak baza rośnie, to ona może spowalniać interfejs: przy milionach subskrybentów panel i liczniki mogą wyświetlać się kilkadziesiąt sekund. Projekt radzi wtedy dwa kroki:
VACUUM ANALYZE na dużej bazie, na przykład co tydzień. Polecenie blokuje zapytania na czas działania, zwykle kilka sekund.docker compose exec db psql -U listmonk -d listmonk -c 'VACUUM ANALYZE;'
Państwa instancję tworzą dwa elementy: baza PostgreSQL i katalog uploads, jeśli obrazy pozostają na dysku. pg_dump tworzy spójny eksport bez zatrzymywania Listmonk i bez blokowania pozostałego dostępu do bazy:
docker compose exec -T db pg_dump -U listmonk listmonk > listmonk-$(date +%F).sql
tar -czf listmonk-uploads-$(date +%F).tar.gz uploads
Aby przywrócić, proszę zatrzymać Listmonk, opróżnić bazę, a potem wczytać eksport ponownie. Jak zaznacza dokumentacja, ta czynność kasuje obecną bazę:
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
W przypadku pliku binarnego proszę zatrzymać Listmonk, zastąpić plik binarny, uruchomić ./listmonk --upgrade, a potem uruchomić go ponownie. Aby wrócić do wersji wcześniejszej, proszę przywrócić eksport wykonany przed aktualizacją, a potem przywrócić stary tag.
Samodzielny hosting wymaga prowadzenia serwera, oprócz samej aplikacji. Na Managed VPS nasze zespoły przejmują serwer i proaktywnie czuwają nad Państwa instancją; Listmonk pozostaje Państwa oprogramowaniem, z Państwa ustawieniami, listami i kampaniami.
| Temat | Nasze zespoły | Państwo |
|---|---|---|
| Serwer | Aktualizacje systemu i zabezpieczeń, w tym interwencje na serwerze | Moment dogodny dla Państwa działalności |
| Nadzór | Serwer pod opieką całą dobę, 7 dni w tygodniu, z interwencją bez czekania na Państwa telefon | Śledzenie Państwa kampanii i odbić |
| Listmonk | Proaktywna opieka: wychwytujemy błędy, spowolnienia i brak miejsca na dysku oraz polecamy poprawkę | Instalacja, aktualizacje i ustawienia, które wdrażają Państwo sami albo Państwa asystent AI |
| Wysyłka | Serwer, który łączy się z Państwa przekaźnikiem SMTP na porcie 587 | Państwa usługa wysyłkowa, rekordy DNS, listy i zgoda odbiorców |
| Kopie zapasowe | Co noc, szyfrowane i przechowywane poza maszyną; przywracanie w cenie | Zgłoszenie prośby o przywrócenie oraz Państwa eksport przed każdą aktualizacją |
| Migracja | Migracja Państwa obecnego serwera, bezpłatna | Moment przełączenia |
Jeśli wolą Państwo, aby nasze zespoły interweniowały w samej aplikacji, usługa ta jest rozliczana godzinowo lub ryczałtowo, z wyceną przekazaną przed interwencją.
Z Managed VPS od Simafri nasze zespoły utrzymują serwer Państwa instancji Listmonk w aktualności, nadzorują go dniem i nocą i interweniują bez czekania na Państwa telefon; proaktywnie czuwają także nad Państwa instancją i polecają przydatne poprawki, które wdrażają Państwo sami albo Państwa asystent AI. Kopie zapasowe są szyfrowane co noc i przechowywane poza maszyną, ich przywracanie jest w cenie, a migracja obecnego serwera jest bezpłatna.
Tak. Listmonk jest udostępniany na licencji AGPL-3.0: mogą Państwo używać go w firmie bez zakupu licencji. Jeśli go Państwo zmodyfikują, użytkownicy zdalni muszą móc uzyskać kod źródłowy Państwa wersji. Pozostają koszt serwera i koszt Państwa usługi wysyłkowej.
Wersję v6.2.0, ostatnią stabilną na 11 listopada 2026 roku. Wersja v7.0.0-beta.2, wyświetlana na górze na GitHubie, to beta. W Docker Compose proszę przypiąć obraz do listmonk/listmonk:v6.2.0: zmiana wersji pozostaje wtedy Państwa decyzją, bo zmigrowanej bazy nie odczyta starsza wersja.
Proszę pobrać plik docker-compose.yml projektu, zmienić hasło do bazy i tag obrazu, a następnie uruchomić docker compose up -d. Interfejs odpowiada na porcie 9000, a obok działa PostgreSQL. Proszę udostępnić go przez HTTPS za odwrotnym proxy i wpisać jego Root URL.
Listmonk wysyła przez serwery SMTP, które Państwo skonfigurują. Do wysyłki masowej proszę wybrać wyspecjalizowaną usługę wysyłkową, z STARTTLS na porcie 587, i opublikować SPF, DKIM i DMARC w swojej domenie. Dokumentacja Listmonk opisuje na przykład odbicia Amazon SES, SendGrid i Postmark.
Proszę włączyć obsługę w Settings, Bounces, a następnie podłączyć webhook Państwa usługi wysyłkowej albo dedykowaną skrzynkę POP3. Ustawienia wyjściowe blokują adres po jednym odbiciu trwałym lub zgłoszeniu spamu.
Proszę wyeksportować bazę przez pg_dump, bez zatrzymywania usługi, i zachować katalog uploads, jeśli obrazy są na dysku. Projekt każe wykonać ten eksport przed każdą aktualizacją, ponieważ wcześniejsza wersja nie odczyta już zmigrowanej bazy.
Daje do tego narzędzia: listy z podwójnym opt-in, link do wypisania w szablonach, nagłówek List-Unsubscribe, eksport i usunięcie danych przez subskrybenta. Samą zgodę trzeba uzyskać po Państwa stronie, według zasad kraju odbiorców.
Managed VPS obejmuje serwer: system, bezpieczeństwo, nadzór i kopie zapasowe. Nasze zespoły proaktywnie czuwają też nad Państwa instancją i polecają przydatne poprawki, które wdrażają Państwo sami. Interwencja w aplikacji jest rozliczana godzinowo lub ryczałtowo.
Simafri
Porozmawiajmy o Państwa projekcie
Proszę powiedzieć nam w kilku słowach, czego Państwo potrzebują: odpowiemy szybko.
Dziękujemy! Państwa zapytanie zostało wysłane. Wkrótce się odezwiemy.
Wolą Państwo e-mail? Proszę napisać do nas na support@simafri.com.