Listmonk to proste, wszechstronne rozwiązanie do samodzielnego hostowania biuletynów i list mailingowych dla systemu Linux. W przeciwieństwie do tradycyjnych programów list mailingowych, wyróżnia się dostarczaniem smukłej platformy, która jest lekka i szybka. Tutaj pokazujemy, jak zainstalować Listmonk przy użyciu Dockera na Ubuntu i jak zacząć używać go do wysyłania biuletynów.
Zalety korzystania z Listmonka
Jeden z największych punktów sprzedaży Listmonk polega na tym, że może współpracować z niemal każdym zewnętrznym serwerem dostarczania poczty w Internecie. Oznacza to, że możesz wysyłać biuletyny za pomocą dostawcy hostowanej poczty, takiego jak Gmail, lub korzystając z własnej konfiguracji poczty hostowanej.

Listmonk oferuje także możliwość tworzenia programowalnych szablonów wiadomości e-mail. Dzięki temu możliwe jest tworzenie niestandardowych wiadomości e-mail, które można dostosować w zależności od kontekstu, w jakim użytkownik otrzymuje wiadomość.
Wreszcie Listmonk jest wyposażony w intuicyjny moduł analityczny umożliwiający śledzenie każdego biuletynu wyświetlanego w programie. Może śledzić zarówno liczbę kliknięć każdej wiadomości, jak i ogólną liczbę wyświetleń całej listy mailingowej w danym okresie.
Instalacja Listmona
Uzyskiwanie Dockera i Docker Compose
Założenie: W tym artykule założono, że używasz Listmonk na zawsze aktywnym VPS. Co więcej, zakłada się również, że masz już nazwę domeny z rekordem A i PTR wskazującym na Twój VPS.
Aby rozpocząć, pobierz klucz repozytorium dla pakietów Docker i Docker Compose:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
Utwórz nowy plik repozytorium dla pakietów Docker i Docker Compose:
sudo nano /etc/apt/sources.list.d/docker.list
Wpisz następujący wiersz kodu w swoim nowym pliku repozytorium:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable
Zaktualizuj i uaktualnij cały system Ubuntu, uruchamiając następujące polecenie:
sudo apt update && sudo apt upgrade
Zainstaluj silnik Docker wraz z Docker Compose i zależnościami jego komponentów:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git curl
Upewnij się, że bieżący użytkownik ma odpowiednie uprawnienia dostępu do plików binarnych Dockera:
sudo usermod -aG docker ramces
Konfigurowanie i wdrażanie Listmonk
Utwórz nowy folder na pliki Dockera w katalogu domowym bieżącego użytkownika:
mkdir ~/listmonk && cd ~/listmonk
Utwórz nowy plik konfiguracyjny dla swojej instancji Listmonk:
nano ./config.toml
Wklej następujący kod do nowego pliku konfiguracyjnego:
[app] address = "0.0.0.0:9000" admin_username = "listmonk" admin_password = "listmonk" [db] host = "listmonk_db" port = 5432 user = "listmonk" password = "INSERT_RANDOM_PASSWORD_HERE" database = "listmonk" ssl_mode = "disable" max_open = 25 max_idle = 25 max_lifetime = "300s" params = ""
Notatka: Możesz łatwo utworzyć losowe hasło za pomocą polecenia: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1
Zapisz nowy plik konfiguracyjny, a następnie utwórz plik docker-compose.yml instancji Listmonk:
nano ./docker-compose.yml
Wklej następujący blok kodu do nowego pliku .yml. To jest domyślny plik docker-compose.yml dla Listmonk, który zmodyfikowałem tak, aby działał z moją strefą czasową:
--- version: "3.7" x-app-defaults: restart: unless-stopped image: listmonk/listmonk:latest ports: - 9000:9000 networks: - listmonk environment: - TZ=Asia/Manila x-db-defaults: image: postgres:13 ports: - 9432:5432 networks: - listmonk environment: - POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE - POSTGRES_USER=listmonk - POSTGRES_DB=listmonk restart: unless-stopped healthcheck: test: - CMD-SHELL - pg_isready -U listmonk interval: 10s timeout: 5s retries: 6 services: db: image: postgres:13 ports: - 9432:5432 networks: - listmonk environment: - POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE - POSTGRES_USER=listmonk - POSTGRES_DB=listmonk restart: unless-stopped healthcheck: test: - CMD-SHELL - pg_isready -U listmonk interval: 10s timeout: 5s retries: 6 container_name: listmonk_db volumes: - type: volume source: listmonk-data target: /var/lib/postgresql/data app: restart: unless-stopped image: listmonk/listmonk:latest ports: - 9000:9000 networks: - listmonk environment: - TZ=Asia/Manila container_name: listmonk_app depends_on: - db volumes: - ./config.toml:/listmonk/config.toml networks: listmonk: null volumes: listmonk-data: null
Wdrażanie kontenera dokowanego Listmonk
Uruchom następującą komendę Dockera, aby wygenerować plik bazy danych instancji:
docker compose up db
Otwórz nowe połączenie SSH, a następnie rozpocznij proces kompilacji Listmonk, uruchamiając plik binarny „listmonk” w jego kontenerze Docker:
docker compose run --rm app ./listmonk --install
Wpisz „Y”, a następnie naciśnij Wchodzić gdy skrypt kompilacji poprosi o wyczyszczenie wszelkich istniejących danych w działającej bazie danych. Dzięki temu kontener Listmonk będzie czysty po uruchomieniu.

Wróć do sesji SSH dla bazy danych swojej instancji i naciśnij klawisz kontrolny + C aby zakończyć sesję z wdziękiem.

Na koniec zrestartuj wszystkie kontenery Dockera dla Listmonk z odpowiednimi ustawieniami:
docker compose up -d app db
Tworzenie odwrotnego proxy Nginx
Mimo że Listmonk zaczął działać na instancji Dockera, nie jest on publicznie dostępny, dopóki nie skonfigurujesz odwrotnego proxy, aby się z nim połączyć. Postępuj zgodnie z instrukcjami poniżej, aby skonfigurować odwrotne proxy Nginx.
Utwórz nowy plik konfiguracyjny witryny dla swojej instancji Listmonk:
sudo nano /etc/nginx/sites-available/listmonk
Wklej następujący blok kodu do pliku konfiguracyjnego nowej witryny:
server { server_name listmonk.myvpsserver.top; location / { proxy_pass http://127.0.0.1:9000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; } }
Połącz swój nowy plik konfiguracyjny z /etc/nginx/sites-available do /etc/nginx/sites-enabled:
sudo ln -s /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/
Uruchom ponownie demona serwera Nginx, uruchamiając następujące polecenie:
sudo systemctl reload nginx
Instalacja certyfikatu SSL
Po skonfigurowaniu odwrotnego proxy Twoja witryna będzie publicznie dostępna. Nie jest to jednak bezpieczne, ponieważ nie ma certyfikatu SSL. Zatem kolejnym krokiem jest instalacja certyfikatu SSL.
Upewnij się, że w systemie działa demon Core Snap:
sudo snap install core
Zainstaluj pakiet snap certbot z Electronic Frontier Foundation (EFF). To narzędzie umożliwia zażądanie certyfikatu SSL, którego serwer może używać do szyfrowania połączeń między hostami.
sudo snap install certbot --classic
Sprawdź, czy Twój pakiet certbota działa poprawnie, rejestrując go w EFF:
sudo certbot register --agree-tos -m you@your-email.invalid
Uzyskaj nowy certyfikat SSL dla swojej instalacji Listmonk, uruchamiając następującą komendę:
sudo certbot --nginx -d listmonk.myvpsserver.top
Dostęp i konfiguracja Listmonk
Otwórz przeglądarkę internetową, a następnie przejdź do adresu swojej instancji Listmonk. Spowoduje to wyświetlenie prostej strony internetowej z przyciskiem logowania.

Kliknij przycisk „Zaloguj się”, a następnie wpisz „listmonk” w polach Nazwa użytkownika i Hasło.

Spowoduje to załadowanie głównego pulpitu nawigacyjnego dla Twojej instancji Listmonk. Kliknij opcję „Ustawienia” na lewym pasku bocznym strony.

Zastąp wartość pola tekstowego „Root URL” pełnym adresem instancji Listmonk.

Kliknij „Zapisz” w prawym górnym rogu strony, aby zapisać nowe ustawienie.
Notatka: Nie zapomnij zmienić domyślnej nazwy użytkownika i hasła.
Łączenie konta Gmail z Listmonk
Zaloguj się na swoje konto Gmail, a następnie kliknij ikonę użytkownika w prawym górnym rogu strony.

Kliknij „Zarządzaj swoim kontem Google”.

Kliknij kategorię „Bezpieczeństwo” na lewym pasku bocznym strony. Na podstronie Bezpieczeństwo wybierz opcję „Weryfikacja dwuetapowa”.

Przewiń w dół strony, a następnie kliknij przycisk „Hasła do aplikacji”.

Spowoduje to wyświetlenie monitu z prośbą o podanie nazwy aplikacji, którą chcesz połączyć. Wpisz „listmonk”, a następnie kliknij „Utwórz”.
Na stronie wyświetli się małe okno z 16 losowymi znakami pogrupowanymi w czwórki. Skopiuj to do pliku tekstowego, a następnie kliknij „Gotowe”.

Wróć do strony panelu kontrolnego Listmonk, a następnie kliknij opcję „Ustawienia” na lewym pasku bocznym strony.
Wybierz zakładkę „SMTP” na górnym pasku strony. Kliknij link „Gmail” pod listą rozwijaną „Protokół uwierzytelniania”.

Wpisz pełny adres e-mail swojego konta Gmail w polu „Nazwa użytkownika”.
Kliknij pole „Hasło”, a następnie wpisz 16-literowy ciąg skopiowany ze strony Gmaila bez spacji.

Kliknij „Zapisz”, aby zastosować nowe ustawienia SMTP.

Na koniec przejdź do karty Ogólne i zastąp wartość pola tekstowego „Domyślny adres „od”” adresem swojego konta Gmail.
Tworzenie nowego biuletynu Listmonk
Przejdź do strony panelu kontrolnego Listmonk, kliknij kategorię „Listy”, a następnie kliknij opcję „Wszystkie listy”.

Wybierz przycisk „Nowy” w prawym górnym rogu strony.

Podaj szczegóły nowej listy mailingowej, a następnie kliknij „Zapisz”.

Otóż to. Zakończyłeś instalację Listmonka.
Hostowanie własnego biuletynu to tylko jeden z elementów tworzenia własnej platformy cyfrowej. Dowiedz się, jak możesz to rozszerzyć, hostując blog w systemie Linux za pomocą Ghost i uruchamiając własną internetową tablicę Kanban za pomocą Kanboard.
Źródło obrazu: Newsletter – pisany na starej maszynie do pisania przez 123RF. Wszystkie zmiany i zrzuty ekranu wykonał Ramces Red.
Wesprzyj naszą pracę ❤️
Jeśli spodobał Ci się ten artykuł, rozważ pozostawienie napiwku, aby pomóc nam dalej publikować wartościowe treści.




















