Jak stworzyć własny biuletyn za pomocą Listmonk 1

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

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.

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

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

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

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 "Główny adres URL" wartość przy użyciu nazwy domeny VPS.

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.

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

Bezpieczna płatność przez PayPal