Hướng Dẫn Cài Đặt Forward Email Tự Lưu Trữ cho Debian

Hướng dẫn này cung cấp các bước chi tiết để cài đặt giải pháp tự lưu trữ Forward Email trên hệ thống Debian. Hướng dẫn này được thiết kế riêng cho Debian 11 (Bullseye) và Debian 12 (Bookworm).

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

  • Máy chủ Debian: Phiên bản 11 (Bullseye) hoặc 12 (Bookworm)
  • Quyền Root: Bạn phải có khả năng chạy lệnh với quyền root (quyền sudo)
  • Tên Miền: Một tên miền bạn kiểm soát với quyền quản lý DNS
  • Máy Chủ Sạch: Khuyến nghị sử dụng cài đặt Debian mới
  • Kết Nối Internet: Cần thiết để tải các gói và hình ảnh Docker

  • RAM: Tối thiểu 2GB (Khuyến nghị 4GB cho môi trường sản xuất)
  • Bộ Nhớ Lưu Trữ: Tối thiểu 20GB dung lượng trống (Khuyến nghị 50GB+ cho môi trường sản xuất)
  • CPU: Tối thiểu 1 vCPU (Khuyến nghị 2+ vCPU cho môi trường sản xuất)
  • Mạng: Địa chỉ IP công khai với các cổng sau được mở:
    • 22 (SSH)
    • 25 (SMTP)
    • 80 (HTTP)
    • 443 (HTTPS)
    • 465 (SMTPS)
    • 993 (IMAPS)
    • 995 (POP3S)

Bước 1: Thiết Lập Hệ Thống Ban Đầu

Trước tiên, hãy đảm bảo hệ thống của bạn được cập nhật và chuyển sang người dùng root:

# Cập nhật các gói hệ thống
sudo apt update && sudo apt upgrade -y

# Chuyển sang người dùng root (bắt buộc cho việc cài đặt)
sudo su -

Bước 2: Cấu hình Bộ phân giải DNS

Cấu hình hệ thống của bạn để sử dụng các máy chủ DNS của Cloudflare nhằm tạo chứng chỉ đáng tin cậy:

# Dừng và vô hiệu hóa systemd-resolved nếu đang chạy
if systemctl is-active --quiet systemd-resolved; then
    rm /etc/resolv.conf
    systemctl stop systemd-resolved
    systemctl disable systemd-resolved
    systemctl mask systemd-resolved
fi

# Cấu hình bộ phân giải DNS của Cloudflare
tee /etc/resolv.conf > /dev/null <<EOF
nameserver 1.1.1.1
nameserver 2606:4700:4700::1111
nameserver 1.0.0.1
nameserver 2606:4700:4700::1001
nameserver 8.8.8.8
nameserver 2001:4860:4860::8888
nameserver 8.8.4.4
nameserver 2001:4860:4860::8844
EOF

Bước 3: Cài đặt các phụ thuộc hệ thống

Cài đặt các gói cần thiết cho Forward Email trên Debian:

# Cập nhật danh sách gói
apt-get update -y

# Cài đặt các phụ thuộc cơ bản (danh sách gói dành riêng cho Debian)
apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    git \
    openssl \
    lsb-release \
    apt-transport-https \
    software-properties-common

Bước 4: Cài đặt và cấu hình Snapd

Debian không bao gồm snapd mặc định, vì vậy chúng ta cần cài đặt và cấu hình nó:

# Cài đặt snapd
apt-get install -y snapd

# Kích hoạt và khởi động dịch vụ snapd
systemctl enable snapd
systemctl start snapd

# Tạo liên kết tượng trưng để snap hoạt động đúng
ln -sf /var/lib/snapd/snap /snap

# Chờ snapd sẵn sàng
sleep 10

# Kiểm tra snapd hoạt động
snap version

Bước 5: Cài đặt các gói Snap

Cài đặt AWS CLI và Certbot qua snap:

# Cài đặt AWS CLI
snap install aws-cli --classic

# Cài đặt Certbot và plugin DNS
snap install certbot --classic
snap set certbot trust-plugin-with-root=ok
snap install certbot-dns-cloudflare

# Kiểm tra các cài đặt
aws --version
certbot --version

Bước 6: Cài đặt Docker

Cài đặt Docker CE và Docker Compose trên Debian:

# Thêm khóa GPG chính thức của Docker (dành riêng cho Debian)
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | tee /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

# Thêm kho Docker (dành riêng cho Debian)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list

# Cập nhật chỉ mục gói và cài đặt Docker
apt-get update -y
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Cài đặt docker-compose độc lập làm phương án dự phòng (nếu plugin không hoạt động)
if ! command -v docker-compose &> /dev/null; then
    apt-get install -y docker-compose
fi

# Kiểm tra cài đặt Docker
docker --version
docker compose version || docker-compose --version

Bước 7: Cấu hình dịch vụ Docker

Đảm bảo Docker tự động khởi động và đang chạy:

# Kích hoạt và khởi động dịch vụ Docker
systemctl unmask docker
systemctl enable docker
systemctl start docker

# Kiểm tra Docker đang chạy
docker info

Nếu Docker không khởi động được, thử khởi động thủ công:

# Phương pháp khởi động thay thế nếu systemctl thất bại
nohup dockerd >/dev/null 2>/dev/null &
sleep 5
docker info

Bước 8: Cài đặt và cấu hình tường lửa UFW

Các bản cài đặt Debian tối giản có thể không bao gồm UFW, vì vậy hãy cài đặt trước:

# Cài đặt UFW nếu chưa có
if ! command -v ufw &> /dev/null; then
    apt-get update -y
    apt-get install -y ufw
fi

# Thiết lập chính sách mặc định
ufw default deny incoming
ufw default allow outgoing

# Cho phép SSH (quan trọng - đừng khóa truy cập của bạn!)
ufw allow 22/tcp

# Cho phép các cổng liên quan đến email
ufw allow 25/tcp    # SMTP
ufw allow 80/tcp    # HTTP (cho Let's Encrypt)
ufw allow 443/tcp   # HTTPS
ufw allow 465/tcp   # SMTPS
ufw allow 993/tcp   # IMAPS
ufw allow 995/tcp   # POP3S
ufw allow 2993/tcp  # IMAP (cổng thay thế)
ufw allow 2995/tcp  # POP3 (cổng thay thế)
ufw allow 3456/tcp  # Cổng dịch vụ tùy chỉnh
ufw allow 4000/tcp  # Cổng dịch vụ tùy chỉnh
ufw allow 5000/tcp  # Cổng dịch vụ tùy chỉnh

# Cho phép kết nối cơ sở dữ liệu cục bộ
ufw allow from 127.0.0.1 to any port 27017  # MongoDB
ufw allow from 127.0.0.1 to any port 6379   # Redis

# Kích hoạt tường lửa
echo "y" | ufw enable

# Kiểm tra trạng thái tường lửa
ufw status numbered

Bước 9: Sao chép Kho Lưu trữ Forward Email

Tải mã nguồn Forward Email:

# Thiết lập biến
REPO_FOLDER_NAME="forwardemail.net"
REPO_URL="https://github.com/forwardemail/forwardemail.net.git"
ROOT_DIR="/root/$REPO_FOLDER_NAME"

# Sao chép kho lưu trữ
git clone "$REPO_URL" "$ROOT_DIR"
cd "$ROOT_DIR"

# Xác minh việc sao chép thành công
ls -la

Bước 10: Thiết lập Cấu hình Môi trường

Chuẩn bị cấu hình môi trường:

# Thiết lập biến thư mục
SELF_HOST_DIR="$ROOT_DIR/self-hosting"
ENV_FILE_DEFAULTS=".env.defaults"
ENV_FILE=".env"

# Sao chép file môi trường mặc định
cp "$ROOT_DIR/$ENV_FILE_DEFAULTS" "$SELF_HOST_DIR/$ENV_FILE"

# Tạo thư mục SSL
mkdir -p "$SELF_HOST_DIR/ssl"

# Tạo các thư mục cơ sở dữ liệu
mkdir -p "$SELF_HOST_DIR/sqlite-data"
mkdir -p "$SELF_HOST_DIR/mongo-backups"
mkdir -p "$SELF_HOST_DIR/redis-backups"

Bước 11: Cấu hình Tên Miền của Bạn

Đặt tên miền của bạn và cập nhật các biến môi trường:

# Thay 'yourdomain.com' bằng tên miền thực tế của bạn
DOMAIN="yourdomain.com"

# Hàm cập nhật file môi trường
update_env_file() {
  local key="$1"
  local value="$2"

  if grep -qE "^${key}=" "$SELF_HOST_DIR/$ENV_FILE"; then
    sed -i -E "s|^${key}=.*|${key}=${value}|" "$SELF_HOST_DIR/$ENV_FILE"
  else
    echo "${key}=${value}" >> "$SELF_HOST_DIR/$ENV_FILE"
  fi
}

# Cập nhật các biến môi trường liên quan đến tên miền
update_env_file "DOMAIN" "$DOMAIN"
update_env_file "NODE_ENV" "production"
update_env_file "HTTP_PROTOCOL" "https"
update_env_file "WEB_HOST" "$DOMAIN"
update_env_file "WEB_PORT" "443"
update_env_file "CALDAV_HOST" "caldav.$DOMAIN"
update_env_file "CARDDAV_HOST" "carddav.$DOMAIN"
update_env_file "API_HOST" "api.$DOMAIN"
update_env_file "APP_NAME" "$DOMAIN"
update_env_file "SMTP_HOST" "smtp.$DOMAIN"
update_env_file "SMTP_PORT" "465"
update_env_file "IMAP_HOST" "imap.$DOMAIN"
update_env_file "IMAP_PORT" "993"
update_env_file "POP3_HOST" "pop3.$DOMAIN"
update_env_file "POP3_PORT" "995"
update_env_file "MX_HOST" "mx.$DOMAIN"
update_env_file "SMTP_EXCHANGE_DOMAINS" "mx.$DOMAIN"
update_env_file "SELF_HOSTED" "true"
update_env_file "WEBSITE_URL" "$DOMAIN"
update_env_file "AUTH_BASIC_ENABLED" "true"

Bước 12: Tạo Chứng chỉ SSL

# Tạo chứng chỉ sử dụng thử thách DNS thủ công
certbot certonly \
  --manual \
  --agree-tos \
  --preferred-challenges dns \
  -d "*.$DOMAIN" \
  -d "$DOMAIN"

Quan trọng: Khi được yêu cầu, bạn cần tạo các bản ghi TXT trong DNS của bạn. Bạn có thể thấy nhiều thử thách cho cùng một tên miền - hãy tạo TẤT CẢ chúng. Không xóa bản ghi TXT đầu tiên khi thêm bản ghi thứ hai.

Lựa chọn B: DNS Cloudflare (Nếu bạn sử dụng Cloudflare)

Nếu tên miền của bạn sử dụng Cloudflare cho DNS, bạn có thể tự động hóa việc tạo chứng chỉ:

# Tạo file thông tin đăng nhập Cloudflare
cat > /root/.cloudflare.ini <<EOF
dns_cloudflare_email = "your-email@example.com"
dns_cloudflare_api_key = "your-cloudflare-global-api-key"
EOF

# Đặt quyền truy cập phù hợp
chmod 600 /root/.cloudflare.ini

# Tạo chứng chỉ tự động
certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials /root/.cloudflare.ini \
  -d "$DOMAIN" \
  -d "*.$DOMAIN" \
  --non-interactive \
  --agree-tos \
  --email "your-email@example.com"

Sao chép Chứng chỉ

Sau khi tạo chứng chỉ, sao chép chúng vào thư mục ứng dụng:

# Sao chép chứng chỉ vào thư mục SSL của ứng dụng
cp /etc/letsencrypt/live/$DOMAIN*/* "$SELF_HOST_DIR/ssl/"

# Xác minh chứng chỉ đã được sao chép
ls -la "$SELF_HOST_DIR/ssl/"

Bước 13: Tạo Khóa Mã hóa

Tạo các khóa mã hóa cần thiết cho hoạt động an toàn:

# Tạo khóa mã hóa trợ giúp
helper_encryption_key=$(openssl rand -base64 32 | tr -d /=+ | cut -c -32)
update_env_file "HELPER_ENCRYPTION_KEY" "$helper_encryption_key"

# Tạo bí mật SRS cho chuyển tiếp email
srs_secret=$(openssl rand -base64 32 | tr -d /=+ | cut -c -32)
update_env_file "SRS_SECRET" "$srs_secret"

# Tạo khóa mã hóa TXT
txt_encryption_key=$(openssl rand -hex 16)
update_env_file "TXT_ENCRYPTION_KEY" "$txt_encryption_key"

# Tạo khóa riêng DKIM để ký email
openssl genrsa -f4 -out "$SELF_HOST_DIR/ssl/dkim.key" 2048
update_env_file "DKIM_PRIVATE_KEY_PATH" "/app/ssl/dkim.key"

# Tạo khóa ký webhook
webhook_signature_key=$(openssl rand -hex 16)
update_env_file "WEBHOOK_SIGNATURE_KEY" "$webhook_signature_key"

# Đặt mật khẩu truyền tải SMTP
update_env_file "SMTP_TRANSPORT_PASS" "$(openssl rand -base64 32)"

echo "✅ Tất cả các khóa mã hóa đã được tạo thành công"

Bước 14: Cập nhật Đường dẫn SSL trong Cấu hình

Cấu hình các đường dẫn chứng chỉ SSL trong file môi trường:

# Cập nhật đường dẫn SSL để trỏ đến các file chứng chỉ chính xác
sed -i -E \
  -e 's|^(.*_)?SSL_KEY_PATH=.*|\1SSL_KEY_PATH=/app/ssl/privkey.pem|' \
  -e 's|^(.*_)?SSL_CERT_PATH=.*|\1SSL_CERT_PATH=/app/ssl/fullchain.pem|' \
  -e 's|^(.*_)?SSL_CA_PATH=.*|\1SSL_CA_PATH=/app/ssl/chain.pem|' \
  "$SELF_HOST_DIR/$ENV_FILE"

Bước 15: Thiết lập Xác thực Cơ bản

Tạo thông tin xác thực cơ bản tạm thời:

# Tạo mật khẩu ngẫu nhiên an toàn
PASSWORD=$(openssl rand -base64 16)

# Cập nhật file môi trường với thông tin xác thực cơ bản
update_env_file "AUTH_BASIC_USERNAME" "admin"
update_env_file "AUTH_BASIC_PASSWORD" "$PASSWORD"

# Hiển thị thông tin đăng nhập (hãy lưu lại!)
echo ""
echo "🔐 QUAN TRỌNG: Lưu lại thông tin đăng nhập này!"
echo "=================================="
echo "Tên đăng nhập: admin"
echo "Mật khẩu: $PASSWORD"
echo "=================================="
echo ""
echo "Bạn sẽ cần những thông tin này để truy cập giao diện web sau khi cài đặt."
echo ""

Bước 16: Triển khai với Docker Compose

Khởi động tất cả các dịch vụ Forward Email:

# Đặt đường dẫn file Docker Compose
DOCKER_COMPOSE_FILE="$SELF_HOST_DIR/docker-compose-self-hosted.yml"

# Dừng các container đang chạy nếu có
if command -v docker-compose &> /dev/null; then
    docker-compose -f "$DOCKER_COMPOSE_FILE" down
else
    docker compose -f "$DOCKER_COMPOSE_FILE" down
fi

# Kéo các image mới nhất
if command -v docker-compose &> /dev/null; then
    docker-compose -f "$DOCKER_COMPOSE_FILE" pull
else
    docker compose -f "$DOCKER_COMPOSE_FILE" pull
fi

# Khởi động tất cả dịch vụ ở chế độ nền
if command -v docker-compose &> /dev/null; then
    docker-compose -f "$DOCKER_COMPOSE_FILE" up -d
else
    docker compose -f "$DOCKER_COMPOSE_FILE" up -d
fi

# Chờ một lúc để dịch vụ khởi động
sleep 10

# Kiểm tra trạng thái dịch vụ
if command -v docker-compose &> /dev/null; then
    docker-compose -f "$DOCKER_COMPOSE_FILE" ps
else
    docker compose -f "$DOCKER_COMPOSE_FILE" ps
fi

Bước 17: Xác minh Cài đặt

Kiểm tra tất cả dịch vụ đang chạy đúng:

# Kiểm tra các container Docker
docker ps

# Kiểm tra nhật ký dịch vụ để phát hiện lỗi
if command -v docker-compose &> /dev/null; then
    docker-compose -f "$DOCKER_COMPOSE_FILE" logs --tail=50
else
    docker compose -f "$DOCKER_COMPOSE_FILE" logs --tail=50
fi

# Kiểm tra kết nối giao diện web
curl -I https://$DOMAIN

# Kiểm tra các cổng đang lắng nghe
ss -tlnp | grep -E ':(25|80|443|465|587|993|995)'

Thiết lập Bản ghi DNS

Bạn cần cấu hình các bản ghi DNS sau cho tên miền của bạn:

Bản ghi MX

@ MX 10 mx.yourdomain.com

Các bản ghi A

@ A YOUR_SERVER_IP
mx A YOUR_SERVER_IP
smtp A YOUR_SERVER_IP
imap A YOUR_SERVER_IP
pop3 A YOUR_SERVER_IP
api A YOUR_SERVER_IP
caldav A YOUR_SERVER_IP
carddav A YOUR_SERVER_IP

Bản ghi SPF

@ TXT "v=spf1 mx ~all"

Bản ghi DKIM

Lấy khóa công khai DKIM của bạn:

# Trích xuất khóa công khai DKIM
openssl rsa -in "$SELF_HOST_DIR/ssl/dkim.key" -pubout -outform DER | openssl base64 -A

Tạo bản ghi DNS DKIM:

default._domainkey TXT "v=DKIM1; k=rsa; p=YOUR_DKIM_PUBLIC_KEY"

Bản ghi DMARC

_dmarc TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com"

Đăng nhập Lần đầu

  1. Mở trình duyệt web và truy cập https://yourdomain.com
  2. Nhập thông tin xác thực cơ bản bạn đã lưu trước đó
  3. Hoàn thành trình hướng dẫn thiết lập ban đầu
  4. Tạo tài khoản email đầu tiên của bạn

Thiết lập Sao lưu Tương thích S3

Cấu hình sao lưu tự động đến bộ nhớ tương thích S3:

# Tạo thư mục chứa thông tin đăng nhập AWS
mkdir -p ~/.aws

# Cấu hình thông tin đăng nhập AWS
cat > ~/.aws/credentials <<EOF
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
EOF

# Cấu hình thiết lập AWS
cat > ~/.aws/config <<EOF
[default]
region = auto
output = json
EOF

# Đối với S3 không phải AWS (như Cloudflare R2), thêm URL endpoint
echo "endpoint_url = YOUR_S3_ENDPOINT_URL" >> ~/.aws/config

Thiết Lập Công Việc Cron Sao Lưu

# Đặt quyền thực thi cho các script sao lưu
chmod +x "$ROOT_DIR/self-hosting/scripts/backup-mongo.sh"
chmod +x "$ROOT_DIR/self-hosting/scripts/backup-redis.sh"

# Thêm công việc cron sao lưu MongoDB (chạy hàng ngày vào nửa đêm)
(crontab -l 2>/dev/null; echo "0 0 * * * $ROOT_DIR/self-hosting/scripts/backup-mongo.sh >> /var/log/mongo-backup.log 2>&1") | crontab -

# Thêm công việc cron sao lưu Redis (chạy hàng ngày vào nửa đêm)
(crontab -l 2>/dev/null; echo "0 0 * * * $ROOT_DIR/self-hosting/scripts/backup-redis.sh >> /var/log/redis-backup.log 2>&1") | crontab -

# Xác nhận các công việc cron đã được thêm
crontab -l

Thiết lập cập nhật tự động cho cài đặt Forward Email của bạn:

# Tạo lệnh tự động cập nhật (sử dụng lệnh docker compose phù hợp)
if command -v docker-compose &> /dev/null; then
    DOCKER_UPDATE_CMD="docker-compose -f $DOCKER_COMPOSE_FILE pull && docker-compose -f $DOCKER_COMPOSE_FILE up -d"
else
    DOCKER_UPDATE_CMD="docker compose -f $DOCKER_COMPOSE_FILE pull && docker compose -f $DOCKER_COMPOSE_FILE up -d"
fi

# Thêm công việc cron tự động cập nhật (chạy hàng ngày lúc 1 giờ sáng)
(crontab -l 2>/dev/null; echo "0 1 * * * $DOCKER_UPDATE_CMD >> /var/log/autoupdate.log 2>&1") | crontab -

# Xác nhận công việc cron đã được thêm
crontab -l

Sự Khác Biệt Trong Quản Lý Gói

  • Snapd: Không được cài đặt mặc định trên Debian, cần cài đặt thủ công
  • Docker: Sử dụng kho lưu trữ và khóa GPG riêng cho Debian
  • UFW: Có thể không được bao gồm trong các bản cài đặt Debian tối giản
  • systemd: Hành vi có thể hơi khác so với Ubuntu

Quản Lý Dịch Vụ

# Kiểm tra trạng thái dịch vụ (lệnh riêng cho Debian)
systemctl status snapd
systemctl status docker
systemctl status ufw

# Khởi động lại dịch vụ nếu cần
systemctl restart snapd
systemctl restart docker

Cấu Hình Mạng

Debian có thể có tên giao diện mạng hoặc cấu hình khác:

# Kiểm tra các giao diện mạng
ip addr show

# Kiểm tra định tuyến
ip route show

# Kiểm tra phân giải DNS
nslookup google.com

Vị Trí Các File Log

  • Log Docker Compose: Sử dụng lệnh docker compose phù hợp với cài đặt
  • Log hệ thống: /var/log/syslog
  • Log sao lưu: /var/log/mongo-backup.log, /var/log/redis-backup.log
  • Log tự động cập nhật: /var/log/autoupdate.log
  • Log Snapd: journalctl -u snapd

Các Công Việc Bảo Trì Thường Xuyên

  1. Giám sát dung lượng đĩa: df -h
  2. Kiểm tra trạng thái dịch vụ: Sử dụng lệnh docker compose phù hợp
  3. Xem lại các log: Kiểm tra cả log ứng dụng và hệ thống
  4. Cập nhật gói hệ thống: apt update && apt upgrade
  5. Giám sát snapd: snap listsnap refresh

Gia Hạn Chứng Chỉ

Chứng chỉ nên được tự động gia hạn, nhưng bạn có thể gia hạn thủ công nếu cần:

# Gia hạn chứng chỉ thủ công
certbot renew

# Sao chép chứng chỉ đã gia hạn
cp /etc/letsencrypt/live/$DOMAIN*/* "$SELF_HOST_DIR/ssl/"

# Khởi động lại dịch vụ để sử dụng chứng chỉ mới
if command -v docker-compose &> /dev/null; then
    docker-compose -f "$DOCKER_COMPOSE_FILE" restart
else
    docker compose -f "$DOCKER_COMPOSE_FILE" restart
fi

Các Vấn Đề Riêng Cho Debian

1. Snapd Không Hoạt Động

# Kiểm tra trạng thái snapd
systemctl status snapd

# Khởi động lại snapd
systemctl restart snapd

# Kiểm tra biến PATH có chứa snap không
echo $PATH | grep snap

# Thêm snap vào PATH nếu thiếu
echo 'export PATH=$PATH:/snap/bin' >> ~/.bashrc
source ~/.bashrc

2. Không Tìm Thấy Lệnh Docker Compose

# Kiểm tra lệnh docker compose nào có sẵn
command -v docker-compose
command -v docker

# Sử dụng lệnh phù hợp trong script
if command -v docker-compose &> /dev/null; then
    echo "Đang sử dụng docker-compose"
else
    echo "Đang sử dụng docker compose"
fi

3. Vấn Đề Cài Đặt Gói

# Cập nhật bộ nhớ đệm gói
apt update

# Sửa các gói bị hỏng
apt --fix-broken install

# Kiểm tra các gói bị giữ
apt-mark showhold

Các Vấn Đề Thường Gặp

1. Dịch Vụ Docker Không Khởi Động

# Kiểm tra trạng thái Docker
systemctl status docker

# Kiểm tra nhật ký Docker
journalctl -u docker

# Thử khởi động thay thế
nohup dockerd >/dev/null 2>/dev/null &

2. Lỗi Tạo Chứng Chỉ

  • Đảm bảo các cổng 80 và 443 có thể truy cập được
  • Xác minh các bản ghi DNS trỏ đến máy chủ của bạn
  • Kiểm tra cài đặt tường lửa với ufw status

3. Vấn Đề Gửi Email

  • Xác minh các bản ghi MX chính xác
  • Kiểm tra các bản ghi SPF, DKIM và DMARC
  • Đảm bảo cổng 25 không bị nhà cung cấp hosting chặn

Nhận Trợ Giúp

  1. Giữ Hệ Thống Cập Nhật: Thường xuyên cập nhật Debian và các gói
  2. Giám Sát Nhật Ký: Thiết lập giám sát và cảnh báo nhật ký
  3. Sao Lưu Định Kỳ: Kiểm tra quy trình sao lưu và phục hồi
  4. Sử Dụng Mật Khẩu Mạnh: Tạo mật khẩu mạnh cho tất cả tài khoản
  5. Kích Hoạt Fail2Ban: Cân nhắc cài đặt fail2ban để tăng cường bảo mật
  6. Kiểm Tra Bảo Mật Định Kỳ: Định kỳ xem xét cấu hình của bạn
  7. Giám Sát Snapd: Giữ các gói snap được cập nhật với snap refresh

Cài đặt Forward Email tự lưu trữ của bạn hiện đã hoàn tất và đang chạy trên Debian. Hãy nhớ:

  1. Cấu hình các bản ghi DNS đúng cách
  2. Kiểm tra gửi và nhận email
  3. Thiết lập sao lưu định kỳ
  4. Giám sát hệ thống thường xuyên
  5. Giữ cho cài đặt luôn được cập nhật
  6. Giám sát snapd và các gói snap

Sự khác biệt chính so với Ubuntu là việc cài đặt snapd và cấu hình kho Docker. Khi những phần này được thiết lập đúng, ứng dụng Forward Email hoạt động giống hệt trên cả hai hệ thống.

Để biết thêm các tùy chọn cấu hình và tính năng nâng cao, tham khảo tài liệu chính thức của Forward Email tại https://forwardemail.net/self-hosted#configuration.