Kendi kendine barındırılan

Gereksinimler

Kurulum betiğini çalıştırmadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • İşletim Sistemi: Linux tabanlı bir sunucu (örneğin Ubuntu 22.04+).
  • kaynaklar: 1 vCPU ve 2GB RAM
  • Kök Erişimi: Komutları yürütmek için yönetici ayrıcalıkları.
  • Alan adı: DNS yapılandırmasına hazır özel bir alan adı.
  • Temiz IP: Kara listeleri kontrol ederek sunucunuzun daha önce spam geçmişi olmayan temiz bir IP adresine sahip olduğundan emin olun. Daha fazla bilgi Burada.

[!TIP] Listemize bakın harika posta sunucusu sağlayıcıları

Bulut-init / Kullanıcı-verileri

Çoğu bulut satıcısı, sanal özel sunucu (VPS) sağlandığında bir bulut başlatma yapılandırmasını destekler. Bu, komut dosyalarının ilk kurulum mantığı tarafından kullanılmak üzere bazı dosyaları ve ortam değişkenlerini önceden ayarlamanın harika bir yoludur ve komut dosyası çalışırken ek bilgi için istemde bulunma ihtiyacını ortadan kaldırır.

Seçenekler

  • EMAIL - EMAIL certbot son kullanma tarihi hatırlatıcıları için kullanılan ortam değişkeni
  • DOMAIN - kendi barındırma kurulumu için kullanılan özel alan adı
  • AUTH_BASIC_USERNAME - Siteyi korumak için ilk kurulumda kullanılan kullanıcı adı
  • AUTH_BASIC_PASSWORD - Siteyi korumak için ilk kurulumda kullanılan şifre
  • /root/.cloudflare.ini - (Yalnızca Cloudflare kullanıcıları) DNS yapılandırması için certbot tarafından kullanılan cloudflare yapılandırma dosyası. API belirtecinizi şu şekilde ayarlamanızı gerektirir: dns_cloudflare_api_token. Devamını oku Burada.

Örnek:

#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

Düzenlemek

Kurulum betiğini indirmek ve çalıştırmak için sunucunuzda aşağıdaki komutu çalıştırın:

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

Hata ayıklama kurulum betiği

Ayrıntılı çıktı için kurulum betiğinin önüne DEBUG=true ekleyin:

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

İstemler

1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
  • İlk kurulum: En son e-posta yönlendirme kodunu indirin, ortamı yapılandırın, özel alan adınızı isteyin ve gerekli tüm sertifikaları, anahtarları ve sırları ayarlayın.
  • Yedekleme Kurulumu: Güvenli, uzak depolama için S3 uyumlu bir depo kullanarak mongoDB ve redis'i yedeklemek için bir cron kuracağım. Ayrı olarak, güvenli, şifreli yedeklemeler için değişiklikler varsa sqlite oturum açıldığında yedeklenecek.
  • Kurulum Yükseltme: Altyapı bileşenlerini güvenli bir şekilde yeniden oluşturacak ve yeniden başlatacak gecelik güncellemeleri arayacak bir cron kurun.
  • Sertifikaları yenile: Certbot / lets encrypt, SSL sertifikaları için kullanılır ve anahtarlar her 3 ayda bir sona erer. Bu, alan adınız için sertifikaları yeniler ve bunları ilgili bileşenlerin tüketmesi için gerekli klasöre yerleştirir. Bkz. önemli dosya yolları
  • Yedeklemeden geri yükle: Yedek verilerden geri yükleme yapmak için mongodb ve redis'i tetikler.

İlk Kurulum (Seçenek 1)

Seçeneği seçin 1. Initial setup başlamak için.

Tamamlandığında, bir başarı mesajı görmelisiniz. Hatta çalıştırabilirsiniz docker ps görmek için , bileşenler döndürüldü. Bileşenler hakkında daha fazla bilgi aşağıda.

Hizmetler

Hizmet AdıVarsayılan Bağlantı NoktasıAçıklama
Web443Tüm yönetici etkileşimleri için web arayüzü
API4000Veritabanlarını soyutlamak için API katmanı
BreeHiçbiriArka plan işi ve görev yürütücüsü
SMTP465/587Giden e-posta için SMTP sunucusu
SMTP BreeHiçbiriSMTP arka plan işi
MX2525Gelen e-posta ve e-posta yönlendirme için posta değişimi
IMAP993/2993Gelen e-posta ve posta kutusu yönetimi için IMAP sunucusu
POP3995/2995Gelen e-posta ve posta kutusu yönetimi için POP3 sunucusu
SQLite3456SQLite veritabanı(ları) ile etkileşimler için SQLite sunucusu
SQLite BreeHiçbiriSQLite arka plan işi
CalDAV5000Takvim yönetimi için CalDAV sunucusu
MongoDB27017Çoğu veri yönetimi için MongoDB veritabanı
Redis6379Önbelleğe alma ve durum yönetimi için Redis
SQLiteHiçbiriŞifrelenmiş posta kutuları için SQLite veritabanı(ları)

Önemli dosya yolları

Not: Ana bilgisayar yolu Aşağıda buna göre /root/forwardemail.net/self-hosting/.

BileşenAna bilgisayar yoluKonteyner yolu
MongoDB./mongo-backups/backups
Redis./redis-data/data
Sqlite./sqlite-data/mnt/{SQLITE_STORAGE_PATH}
Çevre dosyası./.env/app/.env
SSL sertifikaları/anahtarları./ssl/app/ssl/
Özel anahtar./ssl/privkey.pem/app/ssl/privkey.pem
Tam zincir sertifikası./ssl/fullchain.pem/app/ssl/fullchain.pem
Sertifikalı CA'lar./ssl/cert.pem/app/ssl/cert.pem
DKIM özel anahtarı./ssl/dkim.key/app/ssl/dkim.key

[!ÖNEMLİ] Kaydet .env güvenli bir şekilde dosyalayın. Başarısızlık durumunda kurtarma için kritik öneme sahiptir. Bunu şurada bulabilirsiniz /root/forwardemail.net/self-hosting/.env.

Yapılandırma

İlk DNS kurulumu

Tercih ettiğiniz DNS sağlayıcınızda, uygun DNS kayıtlarını yapılandırın. Parantez içindeki herhangi bir şeye dikkat edin (<>) dinamiktir ve sizin değerlerinizle güncellenmesi gerekir.

tipadİçerikTTL
A"@", "." veya boş<ip_adresi>otomatik
CNAMEAPI'si<alan_adı>otomatik
CNAMEkaldav<alan_adı>otomatik
CNAMEfe-sıçramalar<alan_adı>otomatik
CNAMEimap<alan_adı>otomatik
CNAMEmx<alan_adı>otomatik
CNAMEpop3<alan_adı>otomatik
CNAMEsmtp<alan_adı>otomatik
MX"@", "." veya boşmx.<alan_adı> (öncelik 0)otomatik
TXT"@", "." veya boş"v=spf1 a -tümü"otomatik
Ters DNS / PTR kaydı

Ters DNS (rDNS) veya ters işaretçi kayıtları (PTR kayıtları) e-posta sunucuları için önemlidir çünkü e-postayı gönderen sunucunun meşruluğunu doğrulamaya yardımcı olurlar. Her bulut sağlayıcısı bunu farklı şekilde yapar, bu nedenle ana bilgisayarı ve IP'yi karşılık gelen ana bilgisayar adına eşlemek için "Ters DNS"in nasıl ekleneceğini araştırmanız gerekir. Büyük olasılıkla sağlayıcının ağ bölümünde.

25 Nolu Bağlantı Noktası Engellendi

Bazı İSS'ler ve bulut sağlayıcıları kötü aktörleri önlemek için 25'i engeller. SMTP / giden e-posta için 25 numaralı portu açmak üzere bir destek bileti göndermeniz gerekebilir.

Gemiye binme

  1. Açılış Sayfasını Açın https://<domain_name> adresine gidin, <domain_name> adresini DNS ayarlarınızda yapılandırdığınız alan adıyla değiştirin. Forward Email açılış sayfasını görmelisiniz.

  2. Giriş Yapın ve Alan Adınızı Ekleyin

  • Geçerli bir e-posta ve şifre ile giriş yapın.
  • Kurmak istediğiniz alan adını girin (DNS yapılandırmasıyla eşleşmelidir).
  • Gerekli olanı eklemek için istemleri izleyin MX ve TXT Doğrulama için kayıtlar.
  1. Kurulumu Tamamla
  • Doğrulama yapıldıktan sonra ilk takma adınızı oluşturmak için Takma Adlar sayfasına erişin.
  • İsteğe bağlı olarak yapılandırın Giden e-posta için SMTP içinde Alan Adı AyarlarıBu, ek DNS kayıtları gerektirir.

[!NOTE] Sunucunuzun dışına hiçbir bilgi gönderilmez. Kendi kendine barındırılan seçenek ve ilk hesap yalnızca yönetici girişi ve etki alanlarını, takma adları ve ilgili e-posta yapılandırmalarını yönetmek için web görünümü içindir.

Test

İlk takma adınızı oluşturma

  1. Takma Adlar Sayfasına gidin Takma ad yönetimi sayfasını açın:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
  1. Yeni Bir Takma Ad Ekle
  • Tıklamak Takma Ad Ekle (sağ üstte).
  • Takma adınızı girin ve e-posta ayarlarınızı gerektiği gibi düzenleyin.
  • (İsteğe bağlı) Etkinleştir IMAP/POP3/CalDAV onay kutusunu seçerek destekleyebilirsiniz.
  • Tıklamak Takma ad oluştur.
  1. Bir Şifre Belirleyin
  • Tıklamak Şifre oluştur güvenli bir şifre oluşturmak için.
  • Bu şifre e-posta istemcinize giriş yapmanız için gerekli olacaktır.
  1. E-posta İstemcinizi Yapılandırın
  • Thunderbird gibi bir e-posta istemcisi kullanın.
  • Takma adınızı ve oluşturduğunuz şifreyi girin.
  • Yapılandırın IMAP ve SMTP ayarlarını buna göre yapın.
E-posta sunucusu ayarları

Kullanıcı adı: <alias name>

tipAna bilgisayar adıLimanBağlantı GüvenliğiKimlik Doğrulama
SMTPsmtp.<alan_adı>465SSL / TLSNormal Şifre
IMAPimap.<alan_adı>993SSL / TLSNormal Şifre

İlk e-postanızı gönderme / alma

Yapılandırıldıktan sonra, yeni oluşturduğunuz ve kendi barındırdığınız e-posta adresinize e-posta gönderebilmeli ve alabilmelisiniz!

Bakım

How do I backup my data

Takip et komut dosyasını yükle ve seç option 2 İstemde.

How do I renew my certificates

Takip et komut dosyasını yükle ve seç option 3 İstemde.

How do I upgrade to the latest forward email code

Takip et komut dosyasını yükle ve seç option 4 İstemde.

How do I restore from a backup

Takip et komut dosyasını yükle ve seç option 6 İstemde.

Sorun giderme

Why is the certbot acme challenge failing

En sık karşılaşılan tuzak, certbot / letsencrypt'in bazen istekte bulunmasıdır 2 zorluklar. Eklediğinizden emin olmanız gerekir BOTH txt kayıtları.

Örnek: Bunun gibi iki meydan okuma görebilirsiniz: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"

DNS yayılımının tamamlanmamış olması da mümkündür. Şu araçları kullanabilirsiniz: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>. Bu, TXT kayıt değişiklikleriniz yansıtılıp yansıtılmaması gerektiği konusunda size bir fikir verecektir. Ayrıca, ana bilgisayarınızdaki yerel DNS önbelleğinin hala eski, bayat bir değer kullanıyor olması veya son değişiklikleri almamış olması da mümkündür.

Başka bir seçenek de, otomatik cerbot DNS değişikliklerini kullanarak /root/.cloudflare.ini ilk VPS kurulumunda cloud-init / user-data'nızdaki api token'lı dosyayı oluşturun veya bu dosyayı oluşturun ve betiği tekrar çalıştırın. Bu, DNS değişikliklerini ve meydan okuma güncellemelerini otomatik olarak yönetecektir.

What is the basic auth username and password

Kendi kendine barındırma için, basit bir kullanıcı adı ile ilk kez tarayıcıda yerel kimlik doğrulama açılır penceresi ekliyoruz (admin) ve şifre (ilk kurulumda rastgele oluşturulur). Bunu sadece otomasyon/kazıyıcıların web deneyiminde ilk kaydolmanızı bir şekilde geçmesi durumunda bir koruma olarak ekliyoruz. Bu şifreyi ilk kurulumdan sonra şurada bulabilirsiniz: .env dosya altına koy AUTH_BASIC_USERNAME ve AUTH_BASIC_PASSWORD.

How do I know what is running

Koşabilirsin docker ps dönen tüm çalışan konteynerleri görmek için docker-compose-self-hosting.yml Dosya. Ayrıca çalıştırabilirsiniz docker ps -a her şeyi (çalışmayan konteynerlar dahil) görmek için.

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

Koşabilirsin docker ps -a her şeyi görmek için (çalışmayan konteynerlar dahil). Bir çıkış günlüğü veya notu görebilirsiniz.

How do I find logs

Daha fazla günlük almak için şu yolu kullanabilirsiniz: docker logs -f <container_name>. Eğer bir şey çıktıysa, bunun büyük ihtimalle bununla ilgili olması muhtemeldir. .env dosya yanlış yapılandırılıyor.

Web kullanıcı arayüzünde şunları görüntüleyebilirsiniz: /admin/emails ve /admin/logs Sırasıyla giden e-posta kayıtları ve hata kayıtları için.

Why are my outgoing emails timing out

MX sunucusuna bağlanırken Connection timed out gibi bir mesaj görürseniz, 25 numaralı portun engellenip engellenmediğini kontrol etmeniz gerekebilir. İSS'lerin veya bulut sağlayıcılarının bunu varsayılan olarak engellemesi yaygındır; bunun açılması için desteğe ulaşmanız/bir bilet göndermeniz gerekebilir.

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

Bizimkine bir göz atın SSS burada.

mxaraç kutusu

google postmaster araçları

Aşağıdaki sitelerin kara listede olup olmadığını kontrol etmek için sunucu IP adresinizi kullanın. Ne yazık ki, yaygın bulut sağlayıcılarının e-posta spam kullanımı nedeniyle IP itibar sorunları yaşaması nadir değildir. IP'nizi kara listede görürseniz, yeni bir sunucu kurmanız ve yeni IP adresini kontrol etmeniz önerilir.

spam evi

spamlandı