0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Tự lưu trữ Listmonk với Coolify: Nền tảng newsletter của bạn

Đăng vào 1 tháng trước

• 7 phút đọc

Tự lưu trữ Listmonk với Coolify: Nền tảng newsletter của bạn

Bạn có mệt mỏi vì phải trả phí hàng tháng cho các dịch vụ newsletter như Mailchimp hoặc ConvertKit? Bạn đang tìm kiếm sự kiểm soát hoàn toàn đối với dữ liệu người đăng ký và các chiến dịch email của mình? Listmonk có thể là giải pháp bạn cần.

Listmonk là một công cụ quản lý newsletter và danh sách email mạnh mẽ, cho phép bạn tự lưu trữ mà không cần lo lắng về chi phí định kỳ hay giới hạn người đăng ký. Kết hợp với Coolify để triển khai dễ dàng, bạn có thể có nền tảng marketing email của riêng mình chỉ trong chưa đầy 30 phút.

Tại sao nên chọn Listmonk?

Trước khi đi vào thiết lập, hãy cùng điểm qua những lý do tại sao Listmonk nổi bật:

Tiết kiệm chi phí: Không có phí hàng tháng hay giới hạn người đăng ký
Tập trung vào quyền riêng tư: Hoàn toàn kiểm soát dữ liệu của bạn
Tính năng phong phú: Phân tích chiến dịch, phân khúc, mẫu thiết kế và nhiều hơn nữa
Giao diện hiện đại: Giao diện sạch sẽ, trực quan, rival với các dịch vụ trả phí
API-first: Tích hợp với các ứng dụng hiện có của bạn
Mã nguồn mở: Được duy trì tích cực với cộng đồng ngày càng phát triển

Điều kiện cần có

Trước khi bắt đầu, hãy đảm bảo bạn đã có:

  • Một máy chủ hoặc VPS hỗ trợ Docker
  • Coolify đã được cài đặt và cấu hình
  • Một tên miền trỏ đến máy chủ của bạn
  • Thông tin xác thực SMTP (Gmail, SendGrid, AWS SES, v.v.)

Quy trình thiết lập

Bước 1: Tạo dịch vụ Listmonk trong Coolify

  1. Đăng nhập vào bảng điều khiển Coolify của bạn
  2. Tạo một dự án mới hoặc sử dụng dự án hiện có
  3. Thêm một tài nguyên mới và chọn "Docker Compose"
  4. Đặt tên cho dịch vụ của bạn (ví dụ: "listmonk-newsletter")

Bước 2: Cấu hình Docker Compose

Dưới đây là cấu hình docker-compose.yml hoàn chỉnh hoạt động hoàn hảo với Coolify:

yaml Copy
x-db-credentials:
  POSTGRES_USER: listmonk
  POSTGRES_PASSWORD: listmonk
  POSTGRES_DB: listmonk

services:
  app:
    image: 'listmonk/listmonk:latest'
    container_name: listmonk_app
    restart: unless-stopped
    ports:
      - '9000:9000'
    networks:
      - listmonk
    hostname: '${SERVICE_FQDN_APP:-listmonk.example.com}'
    depends_on:
      db:
        condition: service_healthy
    command:
      - sh
      - '-c'
      - "./listmonk --install --idempotent --yes --config '' && ./listmonk --upgrade --yes --config '' && ./listmonk --config ''"
    environment:
      LISTMONK_app__address: '0.0.0.0:9000'
      LISTMONK_app__root_url: '${LISTMONK_app__root_url}'
      LISTMONK_db__user: listmonk
      LISTMONK_db__password: listmonk
      LISTMONK_db__database: listmonk
      LISTMONK_db__host: db
      LISTMONK_db__port: 5432
      LISTMONK_db__ssl_mode: disable
      LISTMONK_db__max_open: 25
      LISTMONK_db__max_idle: 25
      LISTMONK_db__max_lifetime: 300s
      TZ: Etc/UTC
      LISTMONK_ADMIN_USER: '${LISTMONK_ADMIN_USER}'
      LISTMONK_ADMIN_PASSWORD: '${LISTMONK_ADMIN_PASSWORD}'
    volumes:
      - './uploads:/listmonk/uploads:rw'
    healthcheck:
      test:
        - CMD
        - wget
        - '--no-verbose'
        - '--tries=1'
        - '--spider'
        - 'http://localhost:9000/'
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  db:
    image: 'postgres:17-alpine'
    container_name: listmonk_db
    restart: unless-stopped
    networks:
      - listmonk
    environment:
      POSTGRES_USER: listmonk
      POSTGRES_PASSWORD: listmonk
      POSTGRES_DB: listmonk
    healthcheck:
      test:
        - CMD-SHELL
        - 'pg_isready -U listmonk'
      interval: 10s
      timeout: 5s
      retries: 6
    volumes:
      - type: volume
        source: listmonk-data
        target: /var/lib/postgresql/data

networks:
  listmonk: null

volumes:
  listmonk-data: null

Bước 3: Cài đặt biến môi trường

Trong cài đặt dịch vụ Coolify của bạn, thêm các biến môi trường này:

bash Copy
# Bắt buộc - Đặt thông tin xác thực quản trị viên của bạn
LISTMONK_ADMIN_USER=your-admin-username
LISTMONK_ADMIN_PASSWORD=your-secure-password

# Bắt buộc - Cấu hình tên miền của bạn
SERVICE_FQDN_APP=newsletter.yourdomain.com
LISTMONK_app__root_url=https://newsletter.yourdomain.com

Lưu ý bảo mật: Đảm bảo sử dụng mật khẩu mạnh cho tài khoản quản trị của bạn!

Bước 4: Triển khai và truy cập

  1. Lưu cấu hình của bạn trong Coolify
  2. Triển khai dịch vụ
  3. Chờ cho cả hai container trở nên khỏe mạnh (thường mất 2-3 phút)
  4. Truy cập vào phiên bản Listmonk của bạn tại https://newsletter.yourdomain.com

Cấu hình ban đầu

Khi Listmonk đang chạy, bạn cần cấu hình:

1. Đăng nhập lần đầu

  • Điều hướng đến tên miền của bạn
  • Đăng nhập với thông tin xác thực bạn đã đặt trong biến môi trường
  • Bạn sẽ được chào đón bằng bảng điều khiển Listmonk sạch sẽ

2. Cấu hình cài đặt SMTP

Đi tới Cài đặt > SMTP và thêm nhà cung cấp email của bạn:

json Copy
{
  "host": "smtp.gmail.com",
  "port": 587,
  "auth_protocol": "plain",
  "username": "your-email@gmail.com",
  "password": "your-app-password",
  "hello_hostname": "",
  "tls_enabled": true,
  "tls_skip_verify": false,
  "max_conns": 10,
  "idle_timeout": "15s",
  "wait_timeout": "5s",
  "max_msg_retries": 2,
  "email_headers": []
}

3. Tạo danh sách đầu tiên của bạn

  • Đi tới Danh sách và tạo danh sách email đầu tiên của bạn
  • Thiết lập tùy chọn đăng ký
  • Cấu hình xác thực kép nếu cần

4. Thiết kế các mẫu của bạn

  • Điều hướng đến Chiến dịch > Mẫu
  • Tùy chỉnh mẫu mặc định hoặc tạo mẫu của riêng bạn
  • Sử dụng biến mẫu của Listmonk để cá nhân hóa

Các tính năng chính cần khám phá

Khi bạn đã thiết lập, đây là những tính năng mạnh mẽ bạn có thể tận dụng:

Quản lý chiến dịch

  • Trình soạn thảo văn bản phong phú với hỗ trợ mẫu
  • Khả năng A/B testing
  • Gửi theo lịch
  • Phân tích và theo dõi chiến dịch

Quản lý người đăng ký

  • Nhập/xuất người đăng ký
  • Thuộc tính tùy chỉnh và phân khúc
  • Tùy chọn đăng ký
  • Xử lý bounce và khiếu nại

Tích hợp API

  • API RESTful cho mọi thao tác
  • Hỗ trợ Webhook
  • Tích hợp dễ dàng với các ứng dụng của bạn

Các cân nhắc sản xuất

Đối với một triển khai sản xuất, hãy xem xét những cải tiến này:

Bảo mật cơ sở dữ liệu

yaml Copy
# Thay đổi thông tin xác thực mặc định
POSTGRES_USER: your-custom-user
POSTGRES_PASSWORD: your-secure-db-password

Chiến lược sao lưu

Thiết lập sao lưu tự động cho dữ liệu PostgreSQL của bạn:

bash Copy
# Ví dụ về script sao lưu
docker exec listmonk_db pg_dump -U listmonk listmonk > backup-$(date +%Y%m%d).sql

Giới hạn tài nguyên

Thêm ràng buộc tài nguyên vào các container của bạn:

yaml Copy
deploy:
  resources:
    limits:
      memory: 512M
      cpus: '0.5'

So sánh chi phí

Hãy xem xét các con số:

Mailchimp (10,000 người đăng ký): $99/tháng = $1,188/năm
ConvertKit (10,000 người đăng ký): $119/tháng = $1,428/năm
Listmonk tự lưu trữ: VPS ($20/tháng) = $240/năm

Tiết kiệm hàng năm: $948-$1,188 với quyền sở hữu dữ liệu hoàn toàn!

Khắc phục sự cố các vấn đề thường gặp

Container không khởi động: Kiểm tra biến môi trường và đảm bảo cơ sở dữ liệu đang khỏe mạnh trước.

Không gửi được email: Xác minh cài đặt SMTP của bạn và kiểm tra xem nhà cung cấp của bạn có yêu cầu mật khẩu ứng dụng (Gmail) hoặc khóa API không.

Vấn đề hiệu suất: Giám sát tài nguyên cơ sở dữ liệu của bạn và xem xét nâng cấp máy chủ nếu bạn có một cơ sở người đăng ký lớn.

Kết luận

Tự lưu trữ Listmonk với Coolify mang đến cho bạn khả năng marketing email cấp doanh nghiệp mà không có chi phí định kỳ. Bạn duy trì hoàn toàn quyền kiểm soát dữ liệu của mình trong khi tận hưởng một nền tảng hiện đại, phong phú tính năng và có khả năng mở rộng theo nhu cầu của bạn.

Việc thiết lập ban đầu có thể mất 30 phút, nhưng những lợi ích lâu dài về tiết kiệm chi phí, quyền riêng tư và kiểm soát sẽ rất đáng giá cho bất kỳ nhà sáng tạo nội dung hoặc doanh nghiệp nào.

Sẵn sàng kiểm soát marketing email của bạn? Hãy thử Listmonk – người đăng ký của bạn (và ví tiền của bạn) sẽ cảm ơn bạn!


Bạn đã thiết lập Listmonk với Coolify chưa? Hãy chia sẻ trải nghiệm của bạn trong phần bình luận bên dưới! Nếu bạn thấy hướng dẫn này hữu ích, đừng quên ❤️ và theo dõi để xem thêm nhiều hướng dẫn tự lưu trữ nữa.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào