Listmonk로 나만의 뉴스레터를 만드는 방법
Listmonk는 Linux용 간단한 올인원 자체 호스팅 뉴스레터 및 메일링 목록 솔루션입니다. 기존 메일링 리스트 프로그램과 달리 가볍고 빠른 린 플랫폼을 제공하는 데 탁월합니다. 여기에서는 Ubuntu에서 Docker를 사용하여 Listmonk를 설치하는 방법과 이를 사용하여 뉴스레터를 보내는 방법을 보여줍니다.
리스트몽크 사용의 장점
Listmonk 의 가장 큰 판매 포인트 중 하나 는 인터넷상의 거의 모든 외부 메일 배달 서버와 작동할 수 있다는 것입니다. 즉, Gmail과 같은 호스팅된 메일 제공업체나 자체 호스팅 메일 설정을 통해 뉴스레터를 보낼 수 있습니다 .
Listmonk에는 프로그래밍 가능한 이메일 템플릿을 생성하는 기능도 함께 제공됩니다. 이를 통해 사용자가 메시지를 받는 상황에 따라 자체적으로 조정될 수 있는 사용자 정의 이메일을 생성할 수 있습니다.
마지막으로 Listmonk에는 프로그램 내에서 실행되는 모든 뉴스레터를 추적할 수 있는 직관적인 분석 모듈이 함께 제공됩니다. 각 메시지가 얻는 클릭 수는 물론 전체 메일링 리스트가 일정 기간 동안 달성한 전체 보기 수를 모두 추적할 수 있습니다.
리스트몽크 설치
Docker 및 Docker Compose 얻기
가정: 이 기사에서는 항상 켜져 있는 VPS에서 Listmonk를 실행하고 있다고 가정합니다. 또한 VPS를 가리키는 A 및 PTR 레코드가 있는 도메인 이름이 이미 있다고 가정합니다.
시작하려면 Docker 및 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
Docker 및 Docker Compose 패키지에 대한 새 저장소 파일을 만듭니다.
sudo nano /etc/apt/sources.list.d/docker.list
새 저장소 파일 내에 다음 코드 줄을 작성합니다.
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable
다음 명령을 실행하여 전체 Ubuntu 시스템을 업데이트하고 업그레이드하십시오.
sudo apt update && sudo apt upgrade
Docker Compose 및 해당 구성 요소 종속성과 함께 Docker 엔진을 설치합니다.
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git curl
현재 사용자에게 Docker 바이너리에 액세스할 수 있는 올바른 권한이 있는지 확인하세요.
sudo usermod -aG docker ramces
Listmonk 설정 및 배포
현재 사용자의 홈 디렉터리 내에 Docker 파일을 위한 새 폴더를 만듭니다.
mkdir ~/listmonk && cd ~/listmonk
Listmonk 인스턴스에 대한 새 구성 파일을 만듭니다.
nano. /config.toml
새 구성 파일에 다음 코드를 붙여넣습니다.
[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 = ""
새 구성 파일을 저장한 다음 Listmonk 인스턴스의 docker-compose.yml을 만듭니다.
nano. /docker-compose.yml
새 코드 안에 다음 코드 블록을 붙여넣습니다. yml 파일. 이것은 내 시간대에서 작동하도록 수정한 Listmonk의 기본 docker-compose.yml 파일입니다.
---
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
Listmonk Docker 컨테이너 배포
다음 Docker 명령을 실행하여 인스턴스의 데이터베이스 파일을 생성합니다.
docker compose up db
새 SSH 연결을 연 다음 Docker 컨테이너 내에서 “listmonk”바이너리를 실행하여 Listmonk의 빌드 프로세스를 시작하십시오.
docker compose run --rm app. /listmonk --install
“Y”를 입력한 다음 Enter빌드 스크립트에서 실행 중인 데이터베이스의 기존 데이터를 삭제할지 묻는 메시지가 표시되면 키를 누르세요. 이렇게 하면 Listmonk 컨테이너가 시작될 때 깨끗해집니다.
인스턴스 데이터베이스의 SSH 세션으로 돌아가서 Ctrl+를 눌러 C세션을 정상적으로 종료합니다.
마지막으로 적절한 설정으로 Listmonk의 모든 Docker 컨테이너를 다시 시작합니다.
docker compose up -d app db
Nginx 역방향 프록시 만들기
Listmonk가 Docker 인스턴스에서 실행되기 시작했더라도 이에 연결하도록 역방향 프록시를 구성하기 전까지는 공개적으로 액세스할 수 없습니다 . Nginx 역방향 프록시를 구성하려면 아래 지침을 따르세요.
Listmonk 인스턴스에 대한 새 사이트 구성 파일을 만듭니다.
sudo nano /etc/nginx/sites-available/listmonk
새 사이트 구성 파일에 다음 코드 블록을 붙여넣습니다.
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;
}}
/etc/nginx/sites-available의 새 구성 파일을 /etc/nginx/sites-enabled에 연결합니다.
sudo ln -s /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/
다음 명령을 실행하여 Nginx 서버 데몬을 다시 시작합니다.
sudo systemctl reload nginx
SSL 인증서 설치
역방향 프록시를 구성하면 사이트에 공개적으로 액세스할 수 있습니다. 하지만 SSL 인증서가 없기 때문에 안전하지 않습니다. 따라서 다음 단계는 SSL 인증서를 설치하는 것입니다.
시스템에서 코어 스냅 데몬이 실행 중인지 확인하세요.
sudo snap install core
EFF(Electronic Frontier Foundation)에서 certbot 스냅 패키지를 설치합니다. 이 유틸리티를 사용하면 서버가 호스트 간 연결을 암호화하는 데 사용할 수 있는 SSL 인증서를 요청할 수 있습니다.
sudo snap install certbot --classic
certbot 패키지를 EFF에 등록하여 제대로 실행되고 있는지 테스트합니다.
sudo certbot register --agree-tos -m you@your-email.invalid
다음 명령을 실행하여 Listmonk 설치를 위한 새 SSL 인증서를 받으세요.
sudo certbot --nginx -d listmonk.myvpsserver.top
Listmonk 액세스 및 구성
웹 브라우저를 열고 Listmonk 인스턴스의 주소로 이동합니다. 그러면 로그인 버튼이 있는 간단한 웹페이지가 나타납니다.
“로그인” 버튼을 클릭한 후 사용자 이름과 비밀번호 필드에 “listmonk”를 입력하세요.
그러면 Listmonk 인스턴스의 기본 대시보드가 로드됩니다. 페이지 왼쪽 사이드바에서 “설정” 옵션을 클릭하세요.
“루트 URL” 텍스트 상자의 값을 Listmonk 인스턴스의 전체 주소로 바꿉니다.
새 설정을 저장하려면 페이지 오른쪽 상단에 있는 “저장”을 클릭하세요.
Gmail 계정을 Listmonk에 연결하기
Gmail 계정에 로그인한 후 페이지 오른쪽 상단에 있는 사용자 아이콘을 클릭하세요.
‘Google 계정 관리’를 클릭하세요.
페이지 왼쪽 사이드바에서 “보안” 카테고리를 클릭하세요. 보안 하위 페이지에서 “2단계 인증” 옵션을 선택하세요.
페이지 하단까지 아래로 스크롤한 다음 ‘앱 비밀번호’ 버튼을 클릭하세요.
연결하려는 애플리케이션의 이름을 묻는 메시지가 나타납니다. “listmonk”를 입력한 다음 “만들기”를 클릭하세요.
그러면 페이지에 16개의 무작위 문자가 4개로 그룹화되어 있는 작은 창이 나타납니다. 이것을 텍스트 파일로 복사한 다음 “완료”를 클릭하세요.
Listmonk 대시보드 페이지로 돌아가서 페이지 왼쪽 사이드바에 있는 “설정” 옵션을 클릭하세요.
페이지 상단 표시줄에서 “SMTP” 탭을 선택하세요. “인증 프로토콜” 드롭다운 상자 아래의 “Gmail” 링크를 클릭하세요.
“사용자 이름” 필드에 Gmail 계정의 전체 이메일 주소를 입력하세요.
“비밀번호” 필드를 클릭한 다음 Gmail 웹사이트에서 복사한 16자리 문자열을 공백 없이 입력하세요.
새 SMTP 설정을 적용하려면 “저장”을 클릭하세요.
마지막으로 일반 탭으로 이동하여 ‘기본 ‘보낸 사람’ 주소’ 텍스트 상자의 값을 Gmail 계정 주소로 바꾸세요.
새로운 Listmonk 뉴스레터 만들기
Listmonk 대시보드 페이지로 이동하여 “목록” 카테고리를 클릭한 다음 “모든 목록” 옵션을 클릭하세요.
페이지 오른쪽 상단에 있는 “새로 만들기” 버튼을 선택하세요.
새 메일링 리스트의 세부정보를 입력한 후 ‘저장’을 클릭하세요.
그게 다야. Listmonk 설치가 완료되었습니다.
자신만의 뉴스레터를 호스팅하는 것은 자신만의 디지털 플랫폼을 만드는 과정의 일부일 뿐입니다. Ghost를 사용하여 Linux에서 블로그를 호스팅하고 Kanboard 를 사용하여 자체 웹 Kanban 보드를 실행하여 이를 확장할 수 있는 방법을 알아보세요 .
이미지 크레디트: 뉴스레터 – 123RF가 오래된 타자기로 작성했습니다 . Ramces Red의 모든 변경 사항 및 스크린샷.
답글 남기기