Tự lưu trữ

Yêu cầu

Trước khi chạy tập lệnh cài đặt, hãy đảm bảo bạn có những điều sau:

  • Hệ điều hành: Máy chủ chạy hệ điều hành Linux (ví dụ: Ubuntu 22.04 trở lên).
  • Tài nguyên: 1 vCPU và 2GB RAM
  • Truy cập gốc: Quyền quản trị để thực hiện lệnh.
  • Tên miền: Một tên miền tùy chỉnh sẵn sàng cho việc cấu hình DNS.
  • IP sạch: Đảm bảo máy chủ của bạn có địa chỉ IP sạch, không có danh tiếng spam trước đó bằng cách kiểm tra danh sách đen. Thông tin thêm đây.

[!TIP] Xem danh sách của chúng tôi nhà cung cấp máy chủ thư tuyệt vời

Cloud-init / Dữ liệu người dùng

Hầu hết các nhà cung cấp đám mây đều hỗ trợ cấu hình cloud-init khi máy chủ riêng ảo (VPS) được cung cấp. Đây là cách tuyệt vời để thiết lập một số tệp và biến môi trường trước thời hạn để logic thiết lập ban đầu của tập lệnh sử dụng, bỏ qua nhu cầu nhắc nhở trong khi tập lệnh đang chạy để biết thêm thông tin.

Tùy chọn

  • EMAIL - EMAIL biến môi trường được sử dụng để nhắc nhở certbot hết hạn
  • DOMAIN - tên miền tùy chỉnh được sử dụng để tự lưu trữ
  • AUTH_BASIC_USERNAME - tên người dùng được sử dụng trong lần thiết lập đầu tiên để bảo vệ trang web
  • AUTH_BASIC_PASSWORD - passward được sử dụng trong lần thiết lập đầu tiên để bảo vệ trang web
  • /root/.cloudflare.ini - (Chỉ dành cho người dùng Cloudflare)tệp cấu hình cloudflare được certbot sử dụng để cấu hình DNS. Nó yêu cầu bạn đặt mã thông báo API của mình qua dns_cloudflare_api_token. Đọc thêm đây.

Ví dụ:

#cloud-config
write_files:
  - path: /root/.cloudflare.ini
    content: |
      dns_cloudflare_api_token = "xxx"
    owner: root:root
    permissions: '0600'
  - path: /etc/profile.d/env.sh
    content: |
      export EMAIL="test@myemail.com"
      export DOMAIN="mydomain.com"

runcmd:

  • chmod +x /etc/profile.d/env.sh

Cài đặt

Chạy lệnh sau trên máy chủ của bạn để tải xuống và thực thi tập lệnh cài đặt:

bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)

Gỡ lỗi tập lệnh cài đặt

Thêm DEBUG=true vào trước tập lệnh cài đặt để có đầu ra chi tiết:

DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)

Lời nhắc

1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
  • Thiết lập ban đầu: Tải xuống mã email chuyển tiếp mới nhất, cấu hình môi trường, nhắc nhở tên miền tùy chỉnh của bạn và thiết lập tất cả các chứng chỉ, khóa và bí mật cần thiết.
  • Thiết lập sao lưu: Sẽ thiết lập cron để sao lưu mongoDB và redis bằng kho lưu trữ tương thích S3 để lưu trữ từ xa an toàn. Riêng sqlite sẽ được sao lưu khi đăng nhập nếu có thay đổi đối với bản sao lưu được mã hóa an toàn.
  • Thiết lập nâng cấp: Thiết lập cron để tìm kiếm các bản cập nhật hàng đêm giúp xây dựng lại và khởi động lại các thành phần cơ sở hạ tầng một cách an toàn.
  • Gia hạn chứng chỉ: Certbot / lets encrypt được sử dụng cho chứng chỉ SSL và khóa sẽ hết hạn sau mỗi 3 tháng. Điều này sẽ gia hạn chứng chỉ cho tên miền của bạn và đặt chúng vào thư mục cần thiết để các thành phần liên quan sử dụng. Xem đường dẫn tập tin quan trọng
  • Khôi phục từ bản sao lưu: Sẽ kích hoạt mongodb và redis để khôi phục từ dữ liệu sao lưu.

Thiết lập ban đầu (Tùy chọn 1)

Chọn tùy chọn 1. Initial setup để bắt đầu.

Khi hoàn tất, bạn sẽ thấy thông báo thành công. Bạn thậm chí có thể chạy docker ps để xem cái các thành phần quay tròn. Thông tin thêm về các thành phần bên dưới.

Dịch vụ

Tên dịch vụCổng mặc địnhSự miêu tả
Trang web443Giao diện web cho tất cả các tương tác của quản trị viên
API4000Lớp API để trừu tượng hóa cơ sở dữ liệu
BreeKhông cóCông việc nền và trình chạy tác vụ
SMTP465/587Máy chủ SMTP cho email gửi đi
SMTP BreeKhông cóCông việc nền SMTP
MX2525Trao đổi thư cho email đến và chuyển tiếp email
IMAP993/2993Máy chủ IMAP để quản lý email đến và hộp thư
POP3995/2995Máy chủ POP3 để quản lý email đến và hộp thư
SQLite3456Máy chủ SQLite để tương tác với cơ sở dữ liệu SQLite
SQLite BreeKhông cóCông việc nền SQLite
CalDAV5000Máy chủ CalDAV để quản lý lịch
MongoDB27017Cơ sở dữ liệu MongoDB cho hầu hết việc quản lý dữ liệu
làm lại6379Redis để lưu trữ đệm và quản lý trạng thái
SQLiteKhông cóCơ sở dữ liệu SQLite cho hộp thư được mã hóa

Đường dẫn tập tin quan trọng

Ghi chú: Đường dẫn máy chủ dưới đây là tương đối với /root/forwardemail.net/self-hosting/.

Thành phầnĐường dẫn máy chủĐường dẫn chứa
MongoDB./mongo-backups/backups
làm lại./redis-data/data
Sqlite./sqlite-data/mnt/{SQLITE_STORAGE_PATH}
Tệp env./.env/app/.env
Chứng chỉ/khóa SSL./ssl/app/ssl/
Khóa riêng tư./ssl/privkey.pem/app/ssl/privkey.pem
Chứng chỉ chuỗi đầy đủ./ssl/fullchain.pem/app/ssl/fullchain.pem
CA được chứng nhận./ssl/cert.pem/app/ssl/cert.pem
Khóa riêng DKIM./ssl/dkim.key/app/ssl/dkim.key

[!QUAN TRỌNG] Lưu .env tập tin một cách an toàn. Điều này rất quan trọng để phục hồi trong trường hợp lỗi. Bạn có thể tìm thấy điều này trong /root/forwardemail.net/self-hosting/.env.

Cấu hình

Thiết lập DNS ban đầu

Trong nhà cung cấp DNS bạn chọn, hãy cấu hình các bản ghi DNS phù hợp. Lưu ý bất kỳ điều gì trong dấu ngoặc vuông (<>) là động và cần được cập nhật theo giá trị của bạn.

KiểuTênNội dungTTL
A"@", "." hoặc để trống<địa chỉ ip>tự động
CNAMEAPI<tên_miền>tự động
CNAMEcaldav<tên_miền>tự động
CNAMEfe-nảy<tên_miền>tự động
CNAMEbản đồ<tên_miền>tự động
CNAMEmx<tên_miền>tự động
CNAMEnhạc pop3<tên_miền>tự động
CNAMEsmtp<tên_miền>tự động
MX"@", "." hoặc để trốngmx.<tên_miền> (mức độ ưu tiên 0)tự động
TXT"@", "." hoặc để trống"v=spf1 a -tất cả"tự động
Bản ghi DNS / PTR đảo ngược

Reverse DNS (rDNS) hoặc reverse pointer records (PTR records) là cần thiết cho máy chủ email vì chúng giúp xác minh tính hợp pháp của máy chủ gửi email. Mỗi nhà cung cấp dịch vụ đám mây thực hiện việc này theo cách khác nhau, vì vậy bạn sẽ cần tìm hiểu cách thêm "Reverse DNS" để ánh xạ máy chủ và IP với tên máy chủ tương ứng. Nhiều khả năng là trong phần mạng của nhà cung cấp.

Cổng 25 bị chặn

Một số ISP và nhà cung cấp dịch vụ đám mây chặn 25 để tránh những kẻ xấu. Bạn có thể cần phải gửi phiếu hỗ trợ để mở cổng 25 cho SMTP/email gửi đi.

Lên tàu

  1. Mở Trang đích Điều hướng đến https://<tên_miền>, thay thế <tên_miền> bằng tên miền được định cấu hình trong cài đặt DNS của bạn. Bạn sẽ thấy trang đích Chuyển tiếp Email.

  2. Đăng nhập và đưa tên miền của bạn lên tàu

  • Đăng nhập bằng email và mật khẩu hợp lệ.
  • Nhập tên miền bạn muốn thiết lập (tên miền này phải khớp với cấu hình DNS).
  • Làm theo lời nhắc để thêm các thông tin cần thiết MXTXT hồ sơ để xác minh.
  1. Hoàn tất thiết lập
  • Sau khi xác minh, hãy truy cập trang Biệt danh để tạo biệt danh đầu tiên của bạn.
  • Tùy chọn, cấu hình SMTP cho email gửi đi bên trong Thiết lập tên miền. Điều này yêu cầu thêm bản ghi DNS.

[!LƯU Ý] Không có thông tin nào được gửi ra ngoài máy chủ của bạn. Tùy chọn tự lưu trữ và tài khoản ban đầu chỉ dành cho đăng nhập quản trị viên và chế độ xem web để quản lý tên miền, bí danh và cấu hình email liên quan.

Kiểm tra

Tạo bí danh đầu tiên của bạn

  1. Điều hướng đến Trang bí danh Mở trang quản lý bí danh:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
  1. Thêm một bí danh mới
  • Nhấp chuột Thêm bí danh (phía trên bên phải).
  • Nhập tên bí danh và điều chỉnh cài đặt email nếu cần.
  • (Tùy chọn) Kích hoạt IMAP/POP3/CalDAV hỗ trợ bằng cách chọn hộp kiểm.
  • Nhấp chuột Tạo bí danh.
  1. Đặt mật khẩu
  • Nhấp chuột Tạo mật khẩu để tạo mật khẩu an toàn.
  • Mật khẩu này sẽ được yêu cầu để đăng nhập vào ứng dụng email của bạn.
  1. Cấu hình máy khách email của bạn
  • Sử dụng ứng dụng email như Thunderbird.
  • Nhập tên bí danh và mật khẩu đã tạo.
  • Cấu hình IMAPSMTP cài đặt cho phù hợp.
Cài đặt máy chủ email

Tên người dùng: <alias name>

KiểuTên máy chủCảngBảo mật kết nốiXác thực
SMTPsmtp.<tên_miền>465SSL / TLSMật khẩu bình thường
IMAPimap.<tên_miền>993SSL / TLSMật khẩu bình thường

Gửi / Nhận email đầu tiên của bạn

Sau khi cấu hình xong, bạn sẽ có thể gửi và nhận email đến địa chỉ email mới tạo và tự lưu trữ của mình!

BẢO TRÌ

How do I backup my data

Theo dõi cài đặt tập lệnh và chọn option 2 trong lời nhắc.

How do I renew my certificates

Theo dõi cài đặt tập lệnh và chọn option 3 trong lời nhắc.

How do I upgrade to the latest forward email code

Theo dõi cài đặt tập lệnh và chọn option 4 trong lời nhắc.

How do I restore from a backup

Theo dõi cài đặt tập lệnh và chọn option 6 trong lời nhắc.

Xử lý sự cố

Why is the certbot acme challenge failing

Lỗi phổ biến nhất là certbot / letsencrypt đôi khi sẽ yêu cầu 2 thách thức. Bạn cần chắc chắn để thêm BOTH bản ghi txt.

Ví dụ: Bạn có thể thấy hai thử thách như thế này: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"

Cũng có thể quá trình truyền DNS chưa hoàn tất. Bạn có thể sử dụng các công cụ như: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>. Điều này sẽ cho bạn biết liệu những thay đổi trong bản ghi TXT của bạn có nên được phản ánh hay không. Cũng có thể bộ đệm DNS cục bộ trên máy chủ của bạn vẫn đang sử dụng giá trị cũ, không còn hiệu lực hoặc chưa nhận được những thay đổi gần đây.

Một lựa chọn khác là sử dụng các thay đổi DNS tự động của cerbot bằng cách thiết lập /root/.cloudflare.ini tệp có mã thông báo api trong cloud-init/user-data của bạn khi thiết lập VPS ban đầu hoặc tạo tệp này và chạy lại tập lệnh. Thao tác này sẽ tự động quản lý các thay đổi DNS và cập nhật thử thách.

What is the basic auth username and password

Đối với việc tự lưu trữ, chúng tôi thêm cửa sổ bật lên xác thực gốc của trình duyệt lần đầu tiên với tên người dùng đơn giản (admin) và mật khẩu (được tạo ngẫu nhiên khi thiết lập ban đầu). Chúng tôi chỉ thêm điều này như một biện pháp bảo vệ trong trường hợp tự động hóa/trình thu thập dữ liệu bằng cách nào đó đánh bại bạn để đăng ký lần đầu tiên trên trải nghiệm web. Bạn có thể tìm thấy mật khẩu này sau khi thiết lập ban đầu trong .env lưu trữ dưới AUTH_BASIC_USERNAMEAUTH_BASIC_PASSWORD.

How do I know what is running

Bạn có thể chạy docker ps để xem tất cả các container đang chạy đang được quay từ docker-compose-self-hosting.yml tập tin. Bạn cũng có thể chạy docker ps -a để xem mọi thứ (bao gồm cả các container không chạy).

How do I know if something isn't running that should be

Bạn có thể chạy docker ps -a để xem mọi thứ (bao gồm cả các container không chạy). Bạn có thể thấy nhật ký thoát hoặc ghi chú.

How do I find logs

Bạn có thể nhận được nhiều bản ghi hơn thông qua docker logs -f <container_name>. Nếu có bất cứ điều gì thoát ra, nó có thể liên quan đến .env tập tin được cấu hình không đúng.

Trong giao diện người dùng web, bạn có thể xem /admin/emails/admin/logs tương ứng với nhật ký email gửi đi và nhật ký lỗi.

Why are my outgoing emails timing out

Nếu bạn thấy thông báo như Connection timed out khi kết nối đến máy chủ MX... thì bạn có thể cần kiểm tra xem cổng 25 có bị chặn không. Các ISP hoặc nhà cung cấp dịch vụ đám mây thường chặn cổng này theo mặc định, trong trường hợp này bạn có thể cần liên hệ với bộ phận hỗ trợ/gửi phiếu yêu cầu mở cổng này.

What tool(s) should I use to test email configuration best practices and IP reputation

Hãy xem chúng tôi Câu hỏi thường gặp ở đây.

hộp công cụ mx

công cụ quản lý bưu chính của google

Sử dụng địa chỉ IP máy chủ của bạn để kiểm tra các trang web sau đây xem chúng có nằm trong danh sách đen không. Thật không may, các nhà cung cấp dịch vụ đám mây thông thường thường gặp phải các vấn đề về danh tiếng IP do sử dụng thư rác email. Nếu bạn thấy IP của mình nằm trong danh sách đen, bạn nên khởi động một máy chủ mới và kiểm tra địa chỉ IP mới.

thư rác

spam