Sådan opretter du dit eget nyhedsbrev med Listmonk 1

Sådan opretter du dit eget nyhedsbrev med Listmonk

Listmonk er en enkel, alt-i-en selv-hostet nyhedsbreve og postlisteløsning til Linux. I modsætning til traditionelle postlisteprogrammer udmærker den sig ved at levere en slank platform, der er let og hurtig. Her viser vi dig, hvordan du installerer Listmonk ved hjælp af Docker på Ubuntu, og hvordan du kommer i gang med at bruge det til at sende nyhedsbreve.

Fordele ved at bruge Listmonk

Et af de største salgsargumenter Listmonk er, at den kan fungere med næsten enhver ekstern postleveringsserver på internettet. Det betyder, at du kan sende dine nyhedsbreve med en hostet mailudbyder såsom Gmail eller din egen selvhostede mailopsætning.

Et skærmbillede, der viser oversigten over en ny Listmonk-instans.

Listmonk kommer også med muligheden for at oprette programmerbare e-mail-skabeloner. Dette gør det muligt at oprette brugerdefinerede e-mails, der kan justere sig selv afhængigt af konteksten, hvorigennem brugeren modtager beskeden.

Endelig kommer Listmonk med et intuitivt analysemodul, så du kan spore hvert nyhedsbrev, der kører i programmet. Det kan spore både antallet af klik, hver besked får, samt de samlede visninger, en hel mailingliste opnår i løbet af en periode.

Installation af Listmonk

Få Docker og Docker Compose

Antagelse: Denne artikel antager, at du kører Listmonk på en altid tændt VPS. Ydermere forudsætter det også, at du allerede har et domænenavn med en A- og PTR-record, der peger på din VPS.

For at begynde skal du hente lagernøglen til Docker- og Docker Compose-pakkerne:

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

Opret den nye lagerfil til dine Docker- og Docker Compose-pakker:

sudo nano /etc/apt/sources.list.d/docker.list

Skriv følgende kodelinje inde i din nye depotfil:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

Opdater og opgrader hele dit Ubuntu-system ved at køre følgende kommando:

sudo apt update && sudo apt upgrade

Installer Docker Engine sammen med Docker Compose og dens komponentafhængigheder:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git curl

Sørg for, at din nuværende bruger har de rigtige tilladelser til at få adgang til Docker binære filer:

sudo usermod -aG docker ramces

Opsætning og implementering af Listmonk

Opret en ny mappe til dine Docker-filer inde i hjemmemappen for din nuværende bruger:

mkdir ~/listmonk && cd ~/listmonk

Opret en ny konfigurationsfil til din Listmonk-instans:

nano ./config.toml

Indsæt følgende kode i din nye konfigurationsfil:

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

Bemærk: Du kan nemt oprette en tilfældig adgangskode med kommandoen: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1

Gem din nye konfigurationsfil, og opret derefter din Listmonk-instans’s docker-compose.yml:

nano ./docker-compose.yml

Indsæt følgende kodeblok i din nye .yml-fil. Dette er standard docker-compose.yml-filen for Listmonk, som jeg ændrede til at fungere med min tidszone:

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

Implementering af Listmonk Docker Container

Kør følgende Docker-kommando for at generere din forekomsts databasefil:

docker compose up db

Åbn en ny SSH-forbindelse, og start derefter byggeprocessen for Listmonk ved at køre “listmonk”-binæren inde i dens Docker-beholder:

docker compose run --rm app ./listmonk --install

Skriv “Y”, og tryk derefter på Gå ind når build-scriptet beder dig om at slette eksisterende data på den kørende database. Dette sikrer, at din Listmonk-beholder er ren, når den starter.

En terminal, der viser databasen klar prompt for Listmonk Docker Container.

Gå tilbage til SSH-session for din forekomsts database, og tryk derefter på Ctrl + C for at afslutte sessionen yndefuldt.

En terminal, der viser, at den midlertidige database lukker elegant.

Til sidst skal du genstarte alle Docker-containerne til Listmonk med de korrekte indstillinger:

docker compose up -d app db

Oprettelse af Nginx Reverse Proxy

Selvom Listmonk er begyndt at køre på en Docker-instans, er den ikke offentlig tilgængelig, før du har konfigureret en omvendt proxy til at linke til den. Følg instruktionerne nedenfor for at konfigurere en Nginx omvendt proxy.

Opret en ny webstedskonfigurationsfil til din Listmonk-instans:

sudo nano /etc/nginx/sites-available/listmonk

Indsæt følgende kodeblok i din nye webstedskonfigurationsfil:

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;
        }
}

Link din nye konfigurationsfil fra /etc/nginx/sites-available til /etc/nginx/sites-enabled:

sudo ln -s /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/

Genstart din Nginx-serverdæmon ved at køre følgende kommando:

sudo systemctl reload nginx

Installation af SSL-certifikat

Når du har konfigureret den omvendte proxy, vil dit websted være offentligt tilgængeligt. Det er dog ikke sikkert, da der ikke er noget SSL-certifikat. Det næste trin er således at installere SSL-certifikatet.

Sørg for, at kerne-snap-dæmonen kører i dit system:

sudo snap install core

Installer certbot snap-pakken fra Electronic Frontier Foundation (EFF). Dette værktøj giver dig mulighed for at anmode om et SSL-certifikat, som din server kan bruge til at kryptere forbindelser mellem værter.

sudo snap install certbot --classic

Test om din certbot-pakke kører korrekt ved at registrere den til EFF:

sudo certbot register --agree-tos -m you@your-email.invalid

Få et nyt SSL-certifikat til din Listmonk-installation ved at køre følgende kommando:

sudo certbot --nginx -d listmonk.myvpsserver.top

Adgang og konfiguration af Listmonk

Åbn en webbrowser, og naviger derefter til adressen på din Listmonk-instans. Dette åbner en simpel webside med en login-knap.

Et skærmbillede, der viser Listmonks login-skærm.

Klik på knappen “Login”, og skriv derefter “listmonk” i både brugernavn og adgangskode felterne.

Et skærmbillede, der viser loginoplysningerne.

Hvis du gør det, indlæses hoveddashboardet for din Listmonk-instans. Klik på indstillingen “Indstillinger” på sidens venstre sidebjælke.

Et skærmbillede, der fremhæver

Erstat værdien af ​​”Root URL”-tekstboksen med den komplette adresse på din Listmonk-instans.

Et skærmbillede, der fremhæver "Root URL" værdi ved hjælp af VPS' domænenavn.

Klik på “Gem” i sidens øverste højre hjørne for at gemme den nye indstilling.

Bemærk: Glem ikke at ændre standard brugernavn og adgangskode.

Tilknytning af en Gmail-konto til Listmonk

Log ind på din Gmail-konto, og klik derefter på din brugers ikon i sidens øverste højre hjørne.

Et skærmbillede, der fremhæver brugerikonet i Gmail.

Klik på “Administrer din Google-konto”.

Et skærmbillede, der fremhæver

Klik på kategorien “Sikkerhed” på sidens venstre sidebjælke. Vælg indstillingen “2-trins verifikation” på undersiden Sikkerhed.

Et skærmbillede, der fremhæver

Rul ned til bunden af ​​siden, og klik derefter på knappen “App-adgangskoder”.

Et skærmbillede, der viser

Dette vil vise en prompt for at bede dig om navnet på den applikation, du vil linke til. Skriv “listmonk”, og klik derefter på “Opret”.

Siden vil derefter poppe op i et lille vindue med 16 tilfældige tegn grupperet i fire. Kopier dette til en tekstfil, og klik derefter på “Udført”.

Et skærmbillede, der viser et eksempel på en app-adgangskode.

Gå tilbage til din Listmonk-dashboard-side, og klik derefter på indstillingen “Indstillinger” på sidens venstre sidebjælke.

Vælg fanen “SMTP” på sidens øverste bjælke. Klik på linket “Gmail” under rullemenuen “Auth Protocol”.

Et skærmbillede, der fremhæver Gmail-skabelonlinket.

Indtast den komplette e-mail-adresse på din Gmail-konto i feltet “Brugernavn”.

Klik på feltet “Adgangskode”, og skriv derefter den 16-bogstavs streng, du kopierede fra Gmail-webstedet uden mellemrum.

Et skærmbillede, der viser et komplet Gmail-link.

Klik på “Gem” for at anvende dine nye SMTP-indstillinger.

Et skærmbillede, der fremhæver

Til sidst skal du gå til fanen Generelt og derefter erstatte værdien af ​​tekstfeltet “Standard ‘fra’-adresse” med adressen på din Gmail-konto.

Oprettelse af et nyt Listmonk-nyhedsbrev

Gå til din Listmonk Dashboard-side, klik på kategorien “Lister” og klik derefter på “Alle lister”.

Et skærmbillede, der fremhæver

Vælg knappen “Ny” i sidens øverste højre hjørne.

Et skærmbillede, der fremhæver

Udfyld detaljerne for din nye mailingliste, og klik derefter på “Gem”.

Et skærmbillede, der viser en grundlæggende offentlig nyhedsbrevliste.

Det er det. Du har fuldført installationen af ​​Listmonk.

At være vært for dit eget nyhedsbrev er kun en del af at skabe din egen digitale platform. Lær, hvordan du kan udvide dette ved at være vært for en blog i Linux ved hjælp af Ghost og køre dit eget Kanban-netkort med Kanboard.

Billedkredit: Nyhedsbrev – skrevet på en gammel skrivemaskine af 123RF. Alle ændringer og skærmbilleder af Ramces Red.

Støt vores arbejde ❤️

Hvis du kunne lide denne artikel, kan du overveje at give drikkepenge for at hjælpe os med fortsat at udgive kvalitetsindhold.

Sikker betaling med PayPal
Moyens I/O Staff har motiveret dig og givet dig råd om teknologi, personlig udvikling, livsstil og strategier, der vil hjælpe dig.