Hosting Listmonk na Managed VPS: Państwa newslettery na Państwa serwerze

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.

Simon Vasconcelos Lee Autor: Opublikowano 12 listopada 2026Czas czytania: 13 minut

Wszystkie poradniki

W skrócie

  1. Licencja AGPL-3.0 pozwala używać Listmonk 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.
  2. Proszę zainstalować wersję stabilną 6.2.0 ze stałym tagiem Docker: wersja 7, wyświetlana na górze na GitHubie, to wciąż beta.
  3. Docker Compose uruchamia Listmonk i PostgreSQL. Port 9000 proszę opublikować lokalnie, udostępnić go przez HTTPS za odwrotnym proxy i wpisać jego „Root URL”.
  4. Listmonk wysyła przez serwery SMTP, które Państwo skonfigurują: do wysyłki masowej proszę wybrać wyspecjalizowaną usługę wysyłkową na porcie 587, z SPF, DKIM i DMARC w Państwa domenie.
  5. Najlepiej wybrać double opt-in, włączyć obsługę odbić i eksportować bazę przez pg_dump przed każdą aktualizacją.

Co robi Listmonk

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.

Na co pozwala licencja AGPL-3.0

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.

Którą wersję Listmonk zainstalować?

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.

WersjaObraz DockerStan
v6.2.0listmonk/listmonk:v6.2.0Stabilna: ta z tego poradnika
v7.0.0-beta.2listmonk/listmonk:betaBeta: do wypróbowania na kopii, z kopią zapasową
nightlylistmonk/listmonk:nightlyWedł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ą.

Instalacja przez Docker Compose

Projekt zaleca Docker Compose: jego plik uruchamia Listmonk i PostgreSQL razem. Na serwerze z zainstalowanym Dockerem proszę utworzyć katalog i pobrać ten plik:

Terminal
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:

docker-compose.yml, linie do zmiany
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

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ę.

Terminal
LISTMONK_ADMIN_USER=votre-identifiant LISTMONK_ADMIN_PASSWORD=votre-mot-de-passe docker compose up -d

Bez Dockera: plik binarny

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.

  1. Proszę pobrać archiwum v6.2.0 ze strony wydań projektu, na przykład listmonk_6.2.0_linux_amd64.tar.gz, unikając bety wyświetlanej na górze, i rozpakować plik binarny.
  2. Proszę wygenerować plik konfiguracyjny, a następnie wpisać dane dostępowe do bazy w config.toml.
  3. Proszę zainstalować tabele, a potem uruchomić Listmonk.
Terminal
./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.

Rozmiar serwera

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.

HTTPS i odwrotne proxy

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.

Z Caddy

Caddy samodzielnie uzyskuje i odnawia certyfikat:

Caddyfile
listmonk.example.com {
    reverse_proxy 127.0.0.1:9000
}

Z Nginx i Certbotem

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:

Blok Nginx
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:

Terminal
sudo certbot --nginx -d listmonk.example.com

Pierwsze ustawienia

Proszę zalogować się na https://listmonk.example.com/admin, a następnie otworzyć „Settings”:

Co pozostaje publiczne, a co można zamknąć

Aby filtrować dostęp, według adresu IP lub przez proxy uwierzytelniające, dokumentacja dzieli trasy w ten sposób:

TrasyRolaDostęp
/admin/*, /api/*, /webhooks/bounceAdministracja, jej API i wewnętrzny webhook odbićPrywatny
/subscription/*, /public/*Strony zapisu i ich plikiPubliczny
/link/*, /campaign/*Śledzenie linków i piksel śledzącyPubliczny
/webhooks/service/*Odbicia wysyłane przez Państwa usługę wysyłkowąPubliczny
/uploads/*Obrazy w Państwa e-mailachPubliczny

Wysyłka: Listmonk korzysta z Państwa serwerów SMTP

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.

UstawienieWartośćCo Państwo sprawdzają
HostAdres SMTP Państwa usługiZastępuje podaną wartość przykładową
Port587Ustawienia wstępne na ekranie często proponują inny port: proszę wrócić do 587
TLSSTARTTLSIdzie w parze z portem 587
Auth protocolTen, który stosuje Państwa usługa, często LOGINZ 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.

Przepustowość

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.

Dostarczalność, wypisanie i zgoda

Samodzielny hosting aplikacji czyni Państwa panami tych kwestii, a to one decydują, czy Państwa e-maile dotrą.

SPF, DKIM i DMARC

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 %.

Wypisanie

Zgoda Państwa odbiorców

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.

Śledzenie otwarć i kliknięć

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”.

Odbicia

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.

Dla skrzynki dedykowanej proszę zadeklarować ją jako adres zwrotny w „Settings”, „SMTP”, „Custom headers”:

Nagłówki niestandardowe
[
  {"Return-Path": "your-bounce-inbox@example.com"}
]

Ustawienia wyjściowe to te, które dokumentacja podaje dla SES, i stanowią dobrą podstawę:

Typ odbiciaLiczbaDziałanie
Soft (lekkie)2None: brak
Hard (trwałe)1Blocklist: adres zostaje zablokowany
Complaint (zgłoszenie jako spam)1Blocklist: adres zostaje zablokowany

PostgreSQL, jedyna zależność

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:

Terminal, w katalogu z docker-compose.yml
docker compose exec db psql -U listmonk -d listmonk -c 'VACUUM ANALYZE;'

Kopie zapasowe i aktualizacje

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:

Terminal, w katalogu z docker-compose.yml
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ę:

Terminal
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

Aktualizacja

  1. Proszę przeczytać informacje o nowej wersji: Listmonk sygnalizuje nowe wersje w swoim interfejsie, a niektóre zawierają poprawki bezpieczeństwa.
  2. Proszę wyeksportować bazę, jak projekt każe przed każdą aktualizacją.
  3. Proszę zmienić tag obrazu w docker-compose.yml.
  4. Proszę uruchomić polecenia z dokumentacji. Plik Compose migruje bazę przy starcie.
Terminal
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.

Kto za co odpowiada na Managed VPS

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.

TematNasze zespołyPaństwo
SerwerAktualizacje systemu i zabezpieczeń, w tym interwencje na serwerzeMoment dogodny dla Państwa działalności
NadzórSerwer pod opieką całą dobę, 7 dni w tygodniu, z interwencją bez czekania na Państwa telefonŚledzenie Państwa kampanii i odbić
ListmonkProaktywna 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łkaSerwer, który łączy się z Państwa przekaźnikiem SMTP na porcie 587Państwa usługa wysyłkowa, rekordy DNS, listy i zgoda odbiorców
Kopie zapasoweCo noc, szyfrowane i przechowywane poza maszyną; przywracanie w cenieZgłoszenie prośby o przywrócenie oraz Państwa eksport przed każdą aktualizacją
MigracjaMigracja Państwa obecnego serwera, bezpłatnaMoment 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ą.

Listmonk na serwerze prowadzonym za Państwa

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.

Poznaj Managed VPS

Częste pytania

Czy Listmonk jest bezpłatny dla firmy?

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.

Którą wersję Listmonk zainstalować?

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.

Jak zainstalować Listmonk przez Docker Compose?

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.

Jakiego serwera SMTP użyć z Listmonk?

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.

Jak obsługiwać odbicia w Listmonk?

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.

Jak wykonać kopię zapasową Listmonk?

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.

Czy Listmonk obsługuje zgodę i wypisanie?

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.

Czy Managed VPS obejmuje Listmonk?

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.

Źródła i oficjalna dokumentacja

Skontaktuj się z nami