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şkeniDOMAIN
- 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
Eklemek DEBUG=true
Ayrıntılı çıktı için kurulum betiğinin önünde:
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 |
---|---|---|
Web | 443 | Tüm yönetici etkileşimleri için web arayüzü |
API | 4000 | Veritabanlarını soyutlamak için API katmanı |
Bree | Hiçbiri | Arka plan işi ve görev yürütücüsü |
SMTP | 465/587 | Giden e-posta için SMTP sunucusu |
SMTP Bree | Hiçbiri | SMTP arka plan işi |
MX | 2525 | Gelen e-posta ve e-posta yönlendirme için posta değişimi |
IMAP | 993/2993 | Gelen e-posta ve posta kutusu yönetimi için IMAP sunucusu |
POP3 | 995/2995 | Gelen e-posta ve posta kutusu yönetimi için POP3 sunucusu |
SQLite | 3456 | SQLite veritabanı(ları) ile etkileşimler için SQLite sunucusu |
SQLite Bree | Hiçbiri | SQLite arka plan işi |
CalDAV | 5000 | Takvim yönetimi için CalDAV sunucusu |
MongoDB | 27017 | Çoğu veri yönetimi için MongoDB veritabanı |
Redis | 6379 | Önbelleğe alma ve durum yönetimi için Redis |
SQLite | Hiç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şen | Ana bilgisayar yolu | Konteyner 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.
tip | ad | İçerik | TTL |
---|---|---|---|
A | "@", "." veya boş | <ip_adresi> | otomatik |
CNAME | API'si | <alan_adı> | otomatik |
CNAME | kaldav | <alan_adı> | otomatik |
CNAME | fe-sıçramalar | <alan_adı> | otomatik |
CNAME | imap | <alan_adı> | otomatik |
CNAME | mx | <alan_adı> | otomatik |
CNAME | pop3 | <alan_adı> | otomatik |
CNAME | smtp | <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
-
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.
-
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.
- 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
- Takma Adlar Sayfasına gidin Takma ad yönetimi sayfasını açın:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- 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.
- 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.
- 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>
tip | Ana bilgisayar adı | Liman | Bağlantı Güvenliği | Kimlik Doğrulama |
---|---|---|---|---|
SMTP | smtp.<alan_adı> | 465 | SSL / TLS | Normal Şifre |
IMAP | imap.<alan_adı> | 993 | SSL / TLS | Normal Ş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
Verilerimi nasıl yedeklerim?
Takip et komut dosyasını yükle ve seç option 2
İstemde.
Sertifikalarımı nasıl yenilerim?
Takip et komut dosyasını yükle ve seç option 3
İstemde.
En son yönlendirme e-posta koduna nasıl yükseltebilirim?
Takip et komut dosyasını yükle ve seç option 4
İstemde.
Bir yedeklemeden nasıl geri yüklerim?
Takip et komut dosyasını yükle ve seç option 6
İstemde.
Sorun giderme
Certbot acme challenge neden başarısız oluyor?
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.
Temel kimlik doğrulama kullanıcı adı ve şifresi nedir?
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
.
Neyin çalıştığını nasıl bilebilirim?
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.
Çalışması gereken bir şeyin çalışmadığını nasıl anlarım?
Koşabilirsin docker ps -a
her şeyi görmek için (çalışmayan konteynerlar dahil). Bir çıkış günlüğü veya notu görebilirsiniz.
Günlükleri nasıl bulabilirim?
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.
Giden e-postalarım neden zaman aşımına uğruyor?
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.
E-posta yapılandırma en iyi uygulamalarını ve IP itibarını test etmek için hangi aracı(ları) kullanmalıyım?
Bizimkine bir göz atın SSS burada.