Panduan Instalasi Self-Hosting Forward Email untuk Debian
Ikhtisar
Panduan ini memberikan instruksi langkah demi langkah untuk menginstal solusi self-hosted Forward Email pada sistem Debian. Panduan ini secara khusus disesuaikan untuk Debian 11 (Bullseye) dan Debian 12 (Bookworm).
Prasyarat
Sebelum memulai instalasi, pastikan Anda memiliki:
- Server Debian: Versi 11 (Bullseye) atau 12 (Bookworm)
- Akses Root: Anda harus dapat menjalankan perintah sebagai root (akses sudo)
- Nama Domain: Domain yang Anda kendalikan dengan akses manajemen DNS
- Server Bersih: Disarankan menggunakan instalasi Debian yang baru
- Koneksi Internet: Diperlukan untuk mengunduh paket dan image Docker
Persyaratan Sistem
- RAM: Minimum 2GB (4GB disarankan untuk produksi)
- Penyimpanan: Minimum 20GB ruang tersedia (50GB+ disarankan untuk produksi)
- CPU: Minimum 1 vCPU (2+ vCPU disarankan untuk produksi)
- Jaringan: Alamat IP publik dengan port berikut dapat diakses:
- 22 (SSH)
- 25 (SMTP)
- 80 (HTTP)
- 443 (HTTPS)
- 465 (SMTPS)
- 993 (IMAPS)
- 995 (POP3S)
Instalasi Langkah demi Langkah
Langkah 1: Pengaturan Sistem Awal
Pertama, pastikan sistem Anda diperbarui dan beralih ke pengguna root:
# Update paket sistem
sudo apt update && sudo apt upgrade -y
# Beralih ke pengguna root (diperlukan untuk instalasi)
sudo su -
Step 2: Konfigurasikan DNS Resolver
Konfigurasikan sistem Anda untuk menggunakan server DNS Cloudflare agar pembuatan sertifikat lebih andal:
# Hentikan dan nonaktifkan systemd-resolved jika sedang berjalan
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
# Konfigurasikan resolver DNS 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
Step 3: Instalasi Dependensi Sistem
Instal paket yang dibutuhkan untuk Forward Email di Debian:
# Perbarui daftar paket
apt-get update -y
# Instal dependensi dasar (daftar paket khusus Debian)
apt-get install -y \
ca-certificates \
curl \
gnupg \
git \
openssl \
lsb-release \
apt-transport-https \
software-properties-common
Step 4: Instal dan Konfigurasikan Snapd
Debian tidak menyertakan snapd secara default, jadi kita perlu menginstal dan mengkonfigurasinya:
# Instal snapd
apt-get install -y snapd
# Aktifkan dan mulai layanan snapd
systemctl enable snapd
systemctl start snapd
# Buat symlink agar snap dapat berjalan dengan benar
ln -sf /var/lib/snapd/snap /snap
# Tunggu hingga snapd siap
sleep 10
# Verifikasi snapd berfungsi
snap version
Step 5: Instal Paket Snap
Instal AWS CLI dan Certbot melalui snap:
# Instal AWS CLI
snap install aws-cli --classic
# Instal Certbot dan plugin DNS
snap install certbot --classic
snap set certbot trust-plugin-with-root=ok
snap install certbot-dns-cloudflare
# Verifikasi instalasi
aws --version
certbot --version
Step 6: Instal Docker
Instal Docker CE dan Docker Compose di Debian:
# Tambahkan kunci GPG resmi Docker (khusus 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
# Tambahkan repositori Docker (khusus 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
# Perbarui indeks paket dan instal Docker
apt-get update -y
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Instal docker-compose standalone sebagai cadangan (jika plugin tidak berfungsi)
if ! command -v docker-compose &> /dev/null; then
apt-get install -y docker-compose
fi
# Verifikasi instalasi Docker
docker --version
docker compose version || docker-compose --version
Step 7: Konfigurasikan Layanan Docker
Pastikan Docker mulai secara otomatis dan sedang berjalan:
# Aktifkan dan mulai layanan Docker
systemctl unmask docker
systemctl enable docker
systemctl start docker
# Verifikasi Docker sedang berjalan
docker info
Jika Docker gagal mulai, coba mulai secara manual:
# Metode alternatif memulai jika systemctl gagal
nohup dockerd >/dev/null 2>/dev/null &
sleep 5
docker info
Step 8: Instal dan Konfigurasikan Firewall UFW
Instalasi minimal Debian mungkin tidak menyertakan UFW, jadi instal terlebih dahulu:
# Instal UFW jika belum ada
if ! command -v ufw &> /dev/null; then
apt-get update -y
apt-get install -y ufw
fi
# Atur kebijakan default
ufw default deny incoming
ufw default allow outgoing
# Izinkan SSH (penting - jangan terkunci keluar!)
ufw allow 22/tcp
# Izinkan port terkait email
ufw allow 25/tcp # SMTP
ufw allow 80/tcp # HTTP (untuk 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 (port alternatif)
ufw allow 2995/tcp # POP3 (port alternatif)
ufw allow 3456/tcp # Port layanan khusus
ufw allow 4000/tcp # Port layanan khusus
ufw allow 5000/tcp # Port layanan khusus
# Izinkan koneksi database lokal
ufw allow from 127.0.0.1 to any port 27017 # MongoDB
ufw allow from 127.0.0.1 to any port 6379 # Redis
# Aktifkan firewall
echo "y" | ufw enable
# Periksa status firewall
ufw status numbered
Langkah 9: Kloning Repository Forward Email
Unduh kode sumber Forward Email:
# Set up variables
REPO_FOLDER_NAME="forwardemail.net"
REPO_URL="https://github.com/forwardemail/forwardemail.net.git"
ROOT_DIR="/root/$REPO_FOLDER_NAME"
# Clone the repository
git clone "$REPO_URL" "$ROOT_DIR"
cd "$ROOT_DIR"
# Verify the clone was successful
ls -la
Langkah 10: Siapkan Konfigurasi Lingkungan
Siapkan konfigurasi lingkungan:
# Set up directory variables
SELF_HOST_DIR="$ROOT_DIR/self-hosting"
ENV_FILE_DEFAULTS=".env.defaults"
ENV_FILE=".env"
# Copy default environment file
cp "$ROOT_DIR/$ENV_FILE_DEFAULTS" "$SELF_HOST_DIR/$ENV_FILE"
# Create SSL directory
mkdir -p "$SELF_HOST_DIR/ssl"
# Create database directories
mkdir -p "$SELF_HOST_DIR/sqlite-data"
mkdir -p "$SELF_HOST_DIR/mongo-backups"
mkdir -p "$SELF_HOST_DIR/redis-backups"
Langkah 11: Konfigurasikan Domain Anda
Tetapkan nama domain Anda dan perbarui variabel lingkungan:
# Replace 'yourdomain.com' with your actual domain
DOMAIN="yourdomain.com"
# Function to update environment file
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
}
# Update domain-related environment variables
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"
Langkah 12: Hasilkan Sertifikat SSL
Opsi A: Tantangan DNS Manual (Direkomendasikan untuk sebagian besar pengguna)
# Generate certificates using manual DNS challenge
certbot certonly \
--manual \
--agree-tos \
--preferred-challenges dns \
-d "*.$DOMAIN" \
-d "$DOMAIN"
Penting: Saat diminta, Anda harus membuat catatan TXT di DNS Anda. Anda mungkin melihat beberapa tantangan untuk domain yang sama - buat SEMUANYA. Jangan hapus catatan TXT pertama saat menambahkan yang kedua.
Opsi B: Cloudflare DNS (Jika Anda menggunakan Cloudflare)
Jika domain Anda menggunakan Cloudflare untuk DNS, Anda dapat mengotomatiskan pembuatan sertifikat:
# Create Cloudflare credentials file
cat > /root/.cloudflare.ini <<EOF
dns_cloudflare_email = "your-email@example.com"
dns_cloudflare_api_key = "your-cloudflare-global-api-key"
EOF
# Set proper permissions
chmod 600 /root/.cloudflare.ini
# Generate certificates automatically
certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /root/.cloudflare.ini \
-d "$DOMAIN" \
-d "*.$DOMAIN" \
--non-interactive \
--agree-tos \
--email "your-email@example.com"
Salin Sertifikat
Setelah pembuatan sertifikat, salin ke direktori aplikasi:
# Copy certificates to application SSL directory
cp /etc/letsencrypt/live/$DOMAIN*/* "$SELF_HOST_DIR/ssl/"
# Verify certificates were copied
ls -la "$SELF_HOST_DIR/ssl/"
Langkah 13: Hasilkan Kunci Enkripsi
Buat berbagai kunci enkripsi yang diperlukan untuk operasi yang aman:
# Generate helper encryption key
helper_encryption_key=$(openssl rand -base64 32 | tr -d /=+ | cut -c -32)
update_env_file "HELPER_ENCRYPTION_KEY" "$helper_encryption_key"
# Generate SRS secret for email forwarding
srs_secret=$(openssl rand -base64 32 | tr -d /=+ | cut -c -32)
update_env_file "SRS_SECRET" "$srs_secret"
# Generate TXT encryption key
txt_encryption_key=$(openssl rand -hex 16)
update_env_file "TXT_ENCRYPTION_KEY" "$txt_encryption_key"
# Generate DKIM private key for email signing
openssl genrsa -f4 -out "$SELF_HOST_DIR/ssl/dkim.key" 2048
update_env_file "DKIM_PRIVATE_KEY_PATH" "/app/ssl/dkim.key"
# Generate webhook signature key
webhook_signature_key=$(openssl rand -hex 16)
update_env_file "WEBHOOK_SIGNATURE_KEY" "$webhook_signature_key"
# Set SMTP transport password
update_env_file "SMTP_TRANSPORT_PASS" "$(openssl rand -base64 32)"
echo "✅ All encryption keys generated successfully"
Step 14: Perbarui Jalur SSL dalam Konfigurasi
Konfigurasikan jalur sertifikat SSL dalam file lingkungan:
# Perbarui jalur SSL untuk menunjuk ke file sertifikat yang benar
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"
Step 15: Atur Otentikasi Dasar
Buat kredensial otentikasi dasar sementara:
# Buat password acak yang aman
PASSWORD=$(openssl rand -base64 16)
# Perbarui file lingkungan dengan kredensial otentikasi dasar
update_env_file "AUTH_BASIC_USERNAME" "admin"
update_env_file "AUTH_BASIC_PASSWORD" "$PASSWORD"
# Tampilkan kredensial (simpan ini!)
echo ""
echo "🔐 PENTING: Simpan kredensial login ini!"
echo "=================================="
echo "Username: admin"
echo "Password: $PASSWORD"
echo "=================================="
echo ""
echo "Anda akan membutuhkan ini untuk mengakses antarmuka web setelah instalasi."
echo ""
Step 16: Deploy dengan Docker Compose
Mulai semua layanan Forward Email:
# Tetapkan jalur file Docker Compose
DOCKER_COMPOSE_FILE="$SELF_HOST_DIR/docker-compose-self-hosted.yml"
# Hentikan kontainer yang sedang berjalan
if command -v docker-compose &> /dev/null; then
docker-compose -f "$DOCKER_COMPOSE_FILE" down
else
docker compose -f "$DOCKER_COMPOSE_FILE" down
fi
# Tarik image terbaru
if command -v docker-compose &> /dev/null; then
docker-compose -f "$DOCKER_COMPOSE_FILE" pull
else
docker compose -f "$DOCKER_COMPOSE_FILE" pull
fi
# Mulai semua layanan dalam mode terpisah
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
# Tunggu sebentar agar layanan mulai
sleep 10
# Periksa status layanan
if command -v docker-compose &> /dev/null; then
docker-compose -f "$DOCKER_COMPOSE_FILE" ps
else
docker compose -f "$DOCKER_COMPOSE_FILE" ps
fi
Step 17: Verifikasi Instalasi
Periksa bahwa semua layanan berjalan dengan benar:
# Periksa kontainer Docker
docker ps
# Periksa log layanan untuk kesalahan
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
# Uji konektivitas antarmuka web
curl -I https://$DOMAIN
# Periksa apakah port sedang mendengarkan
ss -tlnp | grep -E ':(25|80|443|465|587|993|995)'
Konfigurasi Pasca-Instalasi
Pengaturan Rekaman DNS
Anda perlu mengonfigurasi rekaman DNS berikut untuk domain Anda:
Rekaman MX
@ MX 10 mx.yourdomain.com
Rekaman 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
Rekaman SPF
@ TXT "v=spf1 mx ~all"
Rekaman DKIM
Dapatkan kunci publik DKIM Anda:
# Ekstrak kunci publik DKIM
openssl rsa -in "$SELF_HOST_DIR/ssl/dkim.key" -pubout -outform DER | openssl base64 -A
Buat rekaman DNS DKIM:
default._domainkey TXT "v=DKIM1; k=rsa; p=YOUR_DKIM_PUBLIC_KEY"
Rekaman DMARC
_dmarc TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com"
Login Pertama
- Buka browser web Anda dan navigasikan ke
https://yourdomain.com - Masukkan kredensial otentikasi dasar yang Anda simpan sebelumnya
- Selesaikan wizard pengaturan awal
- Buat akun email pertama Anda
Konfigurasi Cadangan
Atur Cadangan Kompatibel S3
Konfigurasikan cadangan otomatis ke penyimpanan kompatibel S3:
# Buat direktori kredensial AWS
mkdir -p ~/.aws
# Konfigurasikan kredensial AWS
cat > ~/.aws/credentials <<EOF
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
EOF
# Konfigurasikan pengaturan AWS
cat > ~/.aws/config <<EOF
[default]
region = auto
output = json
EOF
# Untuk S3 non-AWS (seperti Cloudflare R2), tambahkan URL endpoint
echo "endpoint_url = YOUR_S3_ENDPOINT_URL" >> ~/.aws/config
Atur Cron Job Backup
# Jadikan skrip backup dapat dieksekusi
chmod +x "$ROOT_DIR/self-hosting/scripts/backup-mongo.sh"
chmod +x "$ROOT_DIR/self-hosting/scripts/backup-redis.sh"
# Tambahkan cron job backup MongoDB (berjalan setiap hari pada tengah malam)
(crontab -l 2>/dev/null; echo "0 0 * * * $ROOT_DIR/self-hosting/scripts/backup-mongo.sh >> /var/log/mongo-backup.log 2>&1") | crontab -
# Tambahkan cron job backup Redis (berjalan setiap hari pada tengah malam)
(crontab -l 2>/dev/null; echo "0 0 * * * $ROOT_DIR/self-hosting/scripts/backup-redis.sh >> /var/log/redis-backup.log 2>&1") | crontab -
# Verifikasi cron job telah ditambahkan
crontab -l
Konfigurasi Pembaruan Otomatis
Atur pembaruan otomatis untuk instalasi Forward Email Anda:
# Buat perintah pembaruan otomatis (gunakan perintah docker compose yang sesuai)
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
# Tambahkan cron job pembaruan otomatis (berjalan setiap hari pukul 1 pagi)
(crontab -l 2>/dev/null; echo "0 1 * * * $DOCKER_UPDATE_CMD >> /var/log/autoupdate.log 2>&1") | crontab -
# Verifikasi cron job telah ditambahkan
crontab -l
Pertimbangan Khusus Debian
Perbedaan Manajemen Paket
- Snapd: Tidak terpasang secara default di Debian, memerlukan instalasi manual
- Docker: Menggunakan repositori dan kunci GPG khusus Debian
- UFW: Mungkin tidak termasuk dalam instalasi minimal Debian
- systemd: Perilaku mungkin sedikit berbeda dari Ubuntu
Manajemen Layanan
# Periksa status layanan (perintah khusus Debian)
systemctl status snapd
systemctl status docker
systemctl status ufw
# Restart layanan jika diperlukan
systemctl restart snapd
systemctl restart docker
Konfigurasi Jaringan
Debian mungkin memiliki nama antarmuka jaringan atau konfigurasi yang berbeda:
# Periksa antarmuka jaringan
ip addr show
# Periksa routing
ip route show
# Periksa resolusi DNS
nslookup google.com
Pemeliharaan dan Pemantauan
Lokasi Log
- Log Docker Compose: Gunakan perintah docker compose yang sesuai berdasarkan instalasi
- Log sistem:
/var/log/syslog - Log backup:
/var/log/mongo-backup.log,/var/log/redis-backup.log - Log pembaruan otomatis:
/var/log/autoupdate.log - Log snapd:
journalctl -u snapd
Tugas Pemeliharaan Rutin
- Pantau ruang disk:
df -h - Periksa status layanan: Gunakan perintah docker compose yang sesuai
- Tinjau log: Periksa log aplikasi dan sistem
- Perbarui paket sistem:
apt update && apt upgrade - Pantau snapd:
snap listdansnap refresh
Pembaruan Sertifikat
Sertifikat seharusnya diperbarui otomatis, tetapi Anda dapat memperbaruinya secara manual jika diperlukan:
# Pembaruan sertifikat manual
certbot renew
# Salin sertifikat yang diperbarui
cp /etc/letsencrypt/live/$DOMAIN*/* "$SELF_HOST_DIR/ssl/"
# Restart layanan untuk menggunakan sertifikat baru
if command -v docker-compose &> /dev/null; then
docker-compose -f "$DOCKER_COMPOSE_FILE" restart
else
docker compose -f "$DOCKER_COMPOSE_FILE" restart
fi
Pemecahan Masalah
Masalah Khusus Debian
1. Snapd Tidak Berfungsi
# Periksa status snapd
systemctl status snapd
# Restart snapd
systemctl restart snapd
# Periksa path snap
echo $PATH | grep snap
# Tambahkan snap ke PATH jika hilang
echo 'export PATH=$PATH:/snap/bin' >> ~/.bashrc
source ~/.bashrc
2. Perintah Docker Compose Tidak Ditemukan
# Periksa perintah docker compose mana yang tersedia
command -v docker-compose
command -v docker
# Gunakan perintah yang sesuai dalam skrip
if command -v docker-compose &> /dev/null; then
echo "Menggunakan docker-compose"
else
echo "Menggunakan docker compose"
fi
3. Masalah Instalasi Paket
# Perbarui cache paket
apt update
# Perbaiki paket yang rusak
apt --fix-broken install
# Periksa paket yang ditahan
apt-mark showhold
Masalah Umum
1. Layanan Docker Tidak Mulai
# Periksa status Docker
systemctl status docker
# Periksa log Docker
journalctl -u docker
# Coba startup alternatif
nohup dockerd >/dev/null 2>/dev/null &
2. Gagal Membuat Sertifikat
- Pastikan port 80 dan 443 dapat diakses
- Verifikasi catatan DNS mengarah ke server Anda
- Periksa pengaturan firewall dengan
ufw status
3. Masalah Pengiriman Email
- Verifikasi catatan MX sudah benar
- Periksa catatan SPF, DKIM, dan DMARC
- Pastikan port 25 tidak diblokir oleh penyedia hosting Anda
Mendapatkan Bantuan
- Dokumentasi: https://forwardemail.net/self-hosted
- GitHub Issues: https://github.com/forwardemail/forwardemail.net/issues
- Dokumentasi Debian: https://www.debian.org/doc/
Praktik Terbaik Keamanan
- Jaga Sistem Tetap Terbaru: Perbarui Debian dan paket secara rutin
- Pantau Log: Atur pemantauan log dan pemberitahuan
- Backup Secara Rutin: Uji prosedur backup dan pemulihan
- Gunakan Kata Sandi Kuat: Buat kata sandi kuat untuk semua akun
- Aktifkan Fail2Ban: Pertimbangkan memasang fail2ban untuk keamanan tambahan
- Audit Keamanan Berkala: Tinjau konfigurasi Anda secara berkala
- Pantau Snapd: Jaga paket snap tetap terbaru dengan
snap refresh
Kesimpulan
Instalasi Forward Email self-hosted Anda sekarang seharusnya sudah selesai dan berjalan di Debian. Ingat untuk:
- Konfigurasikan catatan DNS Anda dengan benar
- Uji pengiriman dan penerimaan email
- Atur backup secara rutin
- Pantau sistem Anda secara berkala
- Jaga instalasi Anda tetap terbaru
- Pantau snapd dan paket snap
Perbedaan utama dari Ubuntu adalah instalasi snapd dan konfigurasi repositori Docker. Setelah ini diatur dengan benar, aplikasi Forward Email berperilaku identik di kedua sistem.
Untuk opsi konfigurasi tambahan dan fitur lanjutan, lihat dokumentasi resmi Forward Email di https://forwardemail.net/self-hosted#configuration.