Jak stworzyć własny biuletyn za pomocą Listmonk

Jak stworzyć własny biuletyn za pomocą Listmonk

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

Jedną z największych zalet Listmonk jest to, że może współpracować z prawie każdym zewnętrznym serwerem dostarczania poczty w Internecie. Oznacza to, że możesz wysyłać biuletyny za pośrednictwem dostawcy poczty hostowanej, takiego jak Gmail, lub korzystając z własnej konfiguracji poczty hostowanej .

Zrzut ekranu przedstawiający przegląd nowej instancji Listmonk.

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 Listmonka 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 = ""

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 pliku new. plik 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 Enter, 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.

Terminal wyświetlający monit o wyczyszczenie bazy danych dla kontenera dokowanego Listmonk.

Wróć do sesji SSH dla bazy danych swojej instancji, a następnie naciśnij Ctrl+ C, aby bezpiecznie zakończyć sesję.

Terminal pokazujący, jak tymczasowo zamyka się baza danych.

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.

Zrzut ekranu przedstawiający ekran logowania Listmonk.

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

Zrzut ekranu przedstawiający monit o poświadczenie.

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

Zrzut ekranu przedstawiający

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

Zrzut ekranu przedstawiający

Kliknij „Zapisz” w prawym górnym rogu strony, aby zapisać nowe ustawienie.

Łączenie konta Gmail z Listmonk

Zaloguj się na swoje konto Gmail, a następnie kliknij ikonę użytkownika w prawym górnym rogu strony.

Zrzut ekranu przedstawiający ikonę użytkownika w Gmailu.

Kliknij „Zarządzaj swoim kontem Google”.

Zrzut ekranu przedstawiający

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

Zrzut ekranu przedstawiający

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

Zrzut ekranu przedstawiający

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

Zrzut ekranu przedstawiający przykładowe hasło do aplikacji.

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

Zrzut ekranu przedstawiający link do szablonu Gmaila.

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.

Zrzut ekranu przedstawiający pełny link do Gmaila.

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

Zrzut ekranu przedstawiający

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

Zrzut ekranu przedstawiający

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

Zrzut ekranu przedstawiający

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

Zrzut ekranu przedstawiający podstawową listę biuletynów publicznych.

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ą tablicę internetową Kanban za pomocą Kanboard .

Źródło zdjęcia: Newsletter – napisany na starej maszynie do pisania przez 123RF. Wszystkie zmiany i zrzuty ekranu wykonał Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *