Como criar seu próprio boletim informativo com Listmonk 1

Como criar seu próprio boletim informativo com Listmonk

Listmonk é uma solução simples e completa de newsletters e listas de discussão auto-hospedadas para Linux. Ao contrário dos programas de lista de discussão tradicionais, ele se destaca por fornecer uma plataforma enxuta, leve e rápida. Aqui mostramos como instalar o Listmonk usando Docker no Ubuntu e como começar a usá-lo para enviar newsletters.

Vantagens de usar o Listmonk

Um dos maiores pontos de venda de Listamonk é que ele pode funcionar com praticamente qualquer servidor externo de entrega de correio na Internet. Isso significa que você pode enviar seus boletins informativos com um provedor de e-mail hospedado, como o Gmail, ou com sua própria configuração de e-mail auto-hospedada.

Uma captura de tela mostrando a visão geral de uma nova instância do Listmonk.

Listmonk também vem com a capacidade de criar modelos de email programáveis. Isso permite criar e-mails personalizados que podem se ajustar dependendo do contexto pelo qual o usuário recebe a mensagem.

Por último, Listmonk vem com um módulo analítico intuitivo para você rastrear cada boletim informativo veiculado dentro do programa. Ele pode rastrear a quantidade de cliques que cada mensagem recebe, bem como as visualizações gerais que uma lista de e-mails inteira obtém em um período de tempo.

Instalação do Listmonk

Obtendo Docker e Docker Compose

Suposição: Este artigo pressupõe que você esteja executando o Listmonk em um VPS sempre ativo. Além disso, também pressupõe que você já tenha um nome de domínio com um registro A e PTR apontando para o seu VPS.

Para começar, recupere a chave do repositório para os pacotes Docker e 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

Crie o novo arquivo de repositório para seus pacotes Docker e Docker Compose:

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

Escreva a seguinte linha de código dentro do seu novo arquivo de repositório:

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

Atualize e atualize todo o seu sistema Ubuntu executando o seguinte comando:

sudo apt update && sudo apt upgrade

Instale o Docker Engine junto com o Docker Compose e suas dependências de componentes:

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

Certifique-se de que seu usuário atual tenha as permissões corretas para acessar os binários do Docker:

sudo usermod -aG docker ramces

Configurando e implantando Listmonk

Crie uma nova pasta para seus arquivos Docker dentro do diretório inicial do seu usuário atual:

mkdir ~/listmonk && cd ~/listmonk

Crie um novo arquivo de configuração para sua instância do Listmonk:

nano ./config.toml

Cole o seguinte código dentro do seu novo arquivo de configuração:

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

Observação: Você pode criar facilmente uma senha aleatória com o comando: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1

Salve seu novo arquivo de configuração e crie o docker-compose.yml da sua instância do Listmonk:

nano ./docker-compose.yml

Cole o seguinte bloco de código em seu novo arquivo .yml. Este é o arquivo docker-compose.yml padrão para Listmonk que modifiquei para funcionar com meu fuso horário:

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

Implantando o contêiner Listmonk Docker

Execute o seguinte comando do Docker para gerar o arquivo de banco de dados da sua instância:

docker compose up db

Abra uma nova conexão SSH e inicie o processo de construção do Listmonk executando o binário “listmonk” dentro de seu contêiner Docker:

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

Digite “Y” e pressione Digitar quando o script de construção solicitar que você limpe todos os dados existentes no banco de dados em execução. Isso garantirá que seu contêiner Listmonk esteja limpo quando for iniciado.

Um terminal mostrando o prompt de limpeza do banco de dados para o Listmonk Docker Container.

Volte para a sessão SSH do banco de dados da sua instância e pressione Ctrl + C para encerrar a sessão normalmente.

Um terminal mostrando o banco de dados temporário fechando normalmente.

Por fim, reinicie todos os contêineres Docker do Listmonk com as configurações adequadas:

docker compose up -d app db

Criando proxy reverso Nginx

Embora o Listmonk tenha começado a ser executado em uma instância do Docker, ele não estará acessível publicamente até que você tenha configurado um proxy reverso para vincular a ele. Siga as instruções abaixo para configurar um proxy reverso Nginx.

Crie um novo arquivo de configuração de site para sua instância do Listmonk:

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

Cole o seguinte bloco de código dentro do novo arquivo de configuração do site:

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

Vincule seu novo arquivo de configuração de /etc/nginx/sites-available para /etc/nginx/sites-enabled:

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

Reinicie o daemon do servidor Nginx executando o seguinte comando:

sudo systemctl reload nginx

Instalando Certificado SSL

Depois de configurar o proxy reverso, seu site estará acessível publicamente. No entanto, não é seguro porque não existe certificado SSL. Assim, o próximo passo é instalar o certificado SSL.

Certifique-se de que o daemon snap principal esteja em execução em seu sistema:

sudo snap install core

Instale o pacote snap certbot da Electronic Frontier Foundation (EFF). Este utilitário permitirá que você solicite um certificado SSL que seu servidor pode usar para criptografar conexões entre hosts.

sudo snap install certbot --classic

Teste se o seu pacote certbot está funcionando corretamente registrando-o na EFF:

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

Obtenha um novo certificado SSL para sua instalação do Listmonk executando o seguinte comando:

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

Acessando e configurando o Listmonk

Abra um navegador da web e navegue até o endereço da sua instância do Listmonk. Isso abrirá uma página da web simples com um botão de login.

Uma captura de tela mostrando a tela de login do Listmonk.

Clique no botão “Login” e digite “listmonk” nos campos Nome de usuário e Senha.

Uma captura de tela mostrando o prompt de credenciais.

Fazer isso carregará o painel principal da sua instância Listmonk. Clique na opção “Configurações” na barra lateral esquerda da página.

Uma captura de tela destacando o

Substitua o valor da caixa de texto “URL raiz” pelo endereço completo da sua instância Listmonk.

Uma captura de tela destacando o "URL raiz" valor usando o nome de domínio do VPS.

Clique em “Salvar” no canto superior direito da página para salvar a nova configuração.

Observação: Não se esqueça de alterar o nome de usuário e a senha padrão.

Vinculando uma conta do Gmail ao Listmonk

Faça login na sua conta do Gmail e clique no ícone do seu usuário no canto superior direito da página.

Uma captura de tela destacando o ícone do usuário no Gmail.

Clique em “Gerenciar sua conta do Google”.

Uma captura de tela destacando o

Clique na categoria “Segurança” na barra lateral esquerda da página. Selecione a opção “Verificação em duas etapas” na subpágina Segurança.

Uma captura de tela destacando o

Role para baixo até a parte inferior da página e clique no botão “Senhas de aplicativos”.

Uma captura de tela mostrando o

Isso exibirá um prompt solicitando o nome do aplicativo que você deseja vincular. Digite “listmonk” e clique em “Criar”.

A página irá então abrir uma pequena janela com 16 caracteres aleatórios agrupados em quatro. Copie isso para um arquivo de texto e clique em “Concluído”.

Uma captura de tela mostrando um exemplo de senha de aplicativo.

Volte para a página do painel do Listmonk e clique na opção “Configurações” na barra lateral esquerda da página.

Selecione a guia “SMTP” na barra superior da página. Clique no link “Gmail” abaixo da caixa suspensa “Protocolo de autenticação”.

Uma captura de tela destacando o link do modelo do Gmail.

Digite o endereço de e-mail completo da sua conta do Gmail no campo “Nome de usuário”.

Clique no campo “Senha” e digite a sequência de 16 letras que você copiou do site do Gmail sem espaços.

Uma captura de tela mostrando um link completo do Gmail.

Clique em “Salvar” para aplicar suas novas configurações de SMTP.

Uma captura de tela destacando o

Por último, vá para a guia Geral e substitua o valor da caixa de texto “Endereço ‘de’ padrão” pelo endereço da sua conta do Gmail.

Criando um novo boletim informativo Listmonk

Vá para a página do painel do Listmonk, clique na categoria “Listas” e clique na opção “Todas as listas”.

Uma captura de tela destacando o

Selecione o botão “Novo” no canto superior direito da página.

Uma captura de tela destacando o

Preencha os detalhes da sua nova lista de e-mails e clique em “Salvar”.

Uma captura de tela mostrando uma lista básica de boletins informativos públicos.

É isso. Você concluiu a instalação do Listmonk.

Hospedar seu próprio boletim informativo é apenas uma parte da criação de sua própria plataforma digital. Aprenda como você pode estender isso hospedando um blog no Linux usando o Ghost e executando seu próprio quadro Kanban da web com o Kanboard.

Crédito da imagem: Boletim informativo – escrito em uma máquina de escrever antiga por 123RF. Todas as alterações e capturas de tela de Ramces Red.

Apoie o nosso trabalho ❤️

Se você gostou deste artigo, considere deixar uma gorjeta para nos ajudar a continuar publicando conteúdo de qualidade.

Pagamento seguro no PayPal
Moyens I/O Staff motivou você, dando conselhos sobre tecnologia, desenvolvimento pessoal, estilo de vida e estratégias que irão ajudá-lo.