Cách cài đặt phần mềm Mailtrain Newsletter trên Ubuntu 18.04

theanh

Administrator
Nhân viên
Mailtrain là ứng dụng bản tin miễn phí, mã nguồn mở và tự lưu trữ được xây dựng từ Node.js hỗ trợ cơ sở dữ liệu MySQL/MariaDB. Mailtrain cho phép bạn thêm người đăng ký theo cách thủ công, thông qua API hoặc nhập từ tệp CSV. Mailtrain đi kèm với một bộ tính năng phong phú bao gồm, Trình chỉnh sửa mẫu, Tự động hóa, Trường tùy chỉnh, Chiến dịch RSS, Trình chỉnh sửa mã HTML và nhiều hơn nữa. Nếu bạn có danh sách dài người đăng ký và muốn quản lý dễ dàng thì Mailtrain là lựa chọn tốt nhất dành cho bạn.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt ứng dụng bản tin Mailtrain với Docker trên máy chủ Ubuntu 18.04.

Yêu cầu​

  • Một máy chủ chạy Ubuntu 18.04.
  • Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình trên máy chủ của bạn.

Bắt đầu​

Trước khi bắt đầu, bạn sẽ cần cập nhật hệ thống của mình lên phiên bản mới nhất. Bạn có thể thực hiện việc này bằng cách chạy lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Tiếp theo, khởi động lại hệ thống của bạn để áp dụng các thay đổi.

Cài đặt Docker và Docker Compose​

Theo mặc định, phiên bản Docker mới nhất không có trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ Docker vào hệ thống của mình.

Đầu tiên, hãy cài đặt các gói cần thiết bằng lệnh sau:
Mã:
apt-get install curl git apt-transport-https ca-certificates -y
Tiếp theo, hãy tải xuống và thêm khóa PGP của Docker bằng lệnh sau:
Mã:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
Tiếp theo, hãy thêm kho lưu trữ CE của Docker bằng cách chỉnh sửa tệp /etc/apt/sources.list:
Mã:
nano /etc/apt/sources.list
Thêm dòng sau vào cuối tệp:
Mã:
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, hãy cập nhật kho lưu trữ và cài đặt Docker CE bằng các lệnh sau:
Mã:
apt-get update -y
apt-get install docker-ce -y
Sau khi quá trình cài đặt hoàn tất thành công, bạn có thể kiểm tra trạng thái của dịch vụ Docker bằng lệnh sau:
Mã:
systemctl status docker
Bạn sẽ thấy đầu ra sau:
Mã:
Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-10-24 16:15:25 UTC; 21 phút trước Tài liệu: https://docs.docker.com PID chính: 1402 (dockerd) Nhiệm vụ: 45 CGroup: /system.slice/docker.service ?? 1402 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ??10312 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-ip 172.18.0.4 -container-port 300024 tháng 10 16:23:04 ubuntu1804 dockerd[1402]: time="2019-10-24T16:23:04.817021656Z" level=info msg="Layer sha256:b875b006eb8ffb0434ce3a26cb04c9017c24 tháng 10 16:24:09 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:09.879265134Z" level=info msg="ignoring event" module=libcontainerd namespace=24 tháng 10 16:24:10 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:10.065610315Z" level=warning msg="20676b10252b4a484e32a7d7534b3b386cc2a1e5efd124 tháng 10 16:25:52 ubuntu1804 dockerd[1402]: time="2019-10-24T16:25:52.649551513Z" level=info msg="Lớp sha256:903ab9000f0a93e49537d5d00c5c8a8cab24 tháng 10 16:26:47 ubuntu1804 dockerd[1402]: time="2019-10-24T16:26:47.428865652Z" level=info msg="Lớp sha256:903ab9000f0a93e49537d5d00c5c8a8cab24 tháng 10 16:27:41.603287585Z" level=info msg="Lớp sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Tiếp theo, cài đặt phiên bản mới nhất của docker compose bằng lệnh pip như được hiển thị bên dưới:
Mã:
apt-get install python-pip
apt-get install docker-compose
Sau khi cài đặt hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt Mailtrain bằng Docker​

Trước tiên, tải xuống phiên bản mới nhất của Mailtrain từ kho lưu trữ Git bằng lệnh sau:
Mã:
git clone git://github.com/Mailtrain-org/mailtrain.git
Tiếp theo, thay đổi thư mục thành mailtrain và đổi tên tệp docker-compose mặc định:
Mã:
cd mailtrain
mv docker-compose.override.yml.tmpl docker-compose.override.yml
Tiếp theo, khởi động các container Mailtrain docker bằng lệnh sau:
Mã:
docker-compose up -d
Lệnh này sẽ tải xuống và khởi động các container mailtrain, mysql và redis như được hiển thị bên dưới:
Mã:
Tạo mạng "mailtrain_default" với trình điều khiển mặc địnhTạo ổ đĩa "mailtrain_mailtrain-node-config" với trình điều khiển mặc địnhTạo ổ đĩa "mailtrain_mailtrain-node-data" với trình điều khiển mặc địnhTạo ổ đĩa "mailtrain_mailtrain-redis-data" với trình điều khiển mặc địnhTạo ổ đĩa "mailtrain_mailtrain-node-reports" với trình điều khiển mặc địnhTạo ổ đĩa "mailtrain_mailtrain-mysq-data" với trình điều khiển mặc địnhĐang kéo redis (redis:3.0)...3.0: Đang kéo từ thư viện/redisf5cc0ee7a6f6: Hoàn tất kéo5fc25ed18e87: Hoàn tất kéoe025bc8872f6: Hoàn tất kéo77c68b51b836: Hoàn tất kéo7c403ece3755: Hoàn tất kéo0a653bd338f4: Kéo hoàn tất31531fd948c6: Hoàn tất kéoTóm tắt: sha256:730b765df9fe96af414da64a2b67f3a5f70b8fd13a31e5096fee4807ed802e20Trạng thái: Đã tải xuống hình ảnh mới hơn cho redis:3.0Đang kéo mysql (mysql:5.7)...5.7: Đang kéo từ thư viện/mysql80369df48736: Hoàn tất kéoe8f52315cb10: Hoàn tất kéocf2189b391fc: Hoàn tất kéocc98f645c682: Hoàn tất kéo27a27ac83f74: Hoàn tất kéofa1f04453414: Hoàn tất kéod45bf7d22d33: Hoàn tất kéoc7d49ffebc56: Hoàn tất kéo hoàn tất511a8052b204: Hoàn tất kéo5d5df4c12444: Hoàn tất kéod482603a2922: Hoàn tất kéoTóm tắt: sha256:44b33224e3c406bf50b5a2ee4286ed0d7f2c5aec1f7fdb70291f7f7c570284ddTrạng thái: Đã tải xuống hình ảnh mới hơn cho mysql:5.7Đang xây dựng mailtrain::Đang xóa vùng chứa trung gian 20676b10252b ---> 0abdb4121f54Bước 6/9: SAO CHÉP. /app ---> c8af7560e844Bước 7/9: EXPOSE 3000 ---> Đang chạy trong 3ff55179a229Đang xóa vùng chứa trung gian 3ff55179a229 ---> d83b49d4b24bBước 8/9: ENTRYPOINT ["bash", "/app/docker-entrypoint.sh"] ---> Đang chạy trong e5baf6a1ea2eĐang xóa vùng chứa trung gian e5baf6a1ea2e ---> c4f899a0f8f9Bước 9/9: CMD ["node", "index.js"] ---> Đang chạy trong fe94519d2bd3Đang xóa vùng chứa trung gian fe94519d2bd3 ---> 2808c2972f20Đã xây dựng thành công 2808c2972f20Đã gắn thẻ mailtrain:latest thành côngCẢNH BÁO: Hình ảnh cho dịch vụ mailtrain đã được xây dựng vì nó chưa tồn tại. Để xây dựng lại hình ảnh này, bạn phải sử dụng `docker-compose build` hoặc `docker-compose up --build`.Đang tạo mailtrain_redis_1 ... xongĐang tạo mailtrain_mysql_1 ... xongĐang tạo mailtrain_mailtrain_1 ... xong
Bây giờ bạn có thể kiểm tra tất cả các container đang chạy bằng lệnh sau:
Mã:
docker ps
Bạn sẽ thấy đầu ra sau:
Mã:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES0e837c586c39 mailtrain:latest "bash /app/docker-en…" Khoảng một phút trước Đã lên 55 giây 0.0.0.0:3000->3000/tcp mailtrain_mailtrain_149a4e69a09c6 mysql:5.7 "docker-entrypoint.s…" Khoảng một phút trước Đã lên Khoảng một phút 3306/tcp, 33060/tcp mailtrain_mysql_1a1449b64a196 redis:3.0 "docker-entrypoint.s…" Khoảng một phút trước Lên Khoảng một phút 6379/tcp mailtrain_redis_1

Truy cập Giao diện Web Mailtrain​

Hiện tại, container Mailtrain đã được khởi động và đang lắng nghe trên cổng 3000. Tiếp theo, hãy mở trình duyệt web của bạn và nhập URL . Bạn sẽ thấy bảng điều khiển mặc định của Mailtrain trong trang sau:



Bây giờ, hãy nhấp vào nút Đăng nhập. Bạn sẽ thấy trang sau:



Cung cấp tên người dùng và mật khẩu mặc định là admin/admin và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển mặc định của Mailtrain ở trang sau:


Cấu hình Nginx làm Proxy ngược cho Mailtrain​

Tiếp theo, bạn sẽ cần tạo Nginx làm proxy ngược cho Mailtrain trên cổng 3000. Để thực hiện, trước tiên hãy cài đặt máy chủ web Nginx bằng cách chạy lệnh sau:
Mã:
apt-get install nginx -y
Tiếp theo, tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
nano /etc/nginx/sites-available/mailtrain.conf
Thêm các dòng sau:
Mã:
upstream mailtrain { server 127.0.0.1:3000 weight=100 max_fails=5 fail_timeout=5;}server { listen 80; server_name example.com; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://mailtrain/; }}
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, hãy kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ thấy kết quả sau:
Mã:
nginx: tệp cấu hình /etc/nginx/nginx.conf cú pháp là oknginx: tệp cấu hình /etc/nginx/nginx.conf thử nghiệm thành công
Tiếp theo, hãy bật tệp máy chủ ảo Nginx bằng lệnh sau:
Mã:
ln -s /etc/nginx/sites-available/mailtrain.conf /etc/nginx/sites-enabled/
Cuối cùng, hãy khởi động lại máy chủ web Nginx để áp dụng cấu hình:
Mã:
systemctl restart nginx

Bảo mật Mailtrain bằng Let's Encrypt​

Tiếp theo, bạn sẽ cần cài đặt ứng dụng khách Certbot để bảo mật Mailtrain bằng SSL miễn phí Let's Encrypt. Theo mặc định, phiên bản mới nhất của Certbot không có trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, hãy thêm kho lưu trữ Certbot bằng cách chạy lệnh sau:
Mã:
add-apt-repository ppa:certbot/certbot
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt Certbot bằng lệnh sau:
Mã:
apt-get update -y
apt-get install certbot python-certbot-nginx -y
Sau khi cài đặt, hãy chạy lệnh sau để tải xuống SSL miễn phí Let's Encrypt cho tên miền example.com của bạn và cấu hình Nginx để sử dụng chứng chỉ này.
Mã:
certbot --nginx -d example.com
Cung cấp địa chỉ email của bạn và đồng ý với Điều khoản dịch vụ. Sau khi chứng chỉ được cài đặt thành công, bạn sẽ thấy kết quả sau:
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 2020-01-22. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu được, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le
Bây giờ bạn có thể truy cập ứng dụng Mailtrain của mình một cách an toàn bằng URL .

Kết luận​

Trong hướng dẫn trên, chúng ta đã tìm hiểu cách cài đặt Mailtrain bằng docker trên máy chủ Ubuntu 18.04. Chúng tôi cũng đã học cách cấu hình Nginx làm proxy ngược cho Mailtrain và bảo mật Mailtrain bằng Let's Encrypt SSL miễn phí. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên