Vlastní hostitel
Instalace
Požadavky
Před spuštěním instalačního skriptu se ujistěte, že máte následující:
- Operační systém: Server založený na Linuxu (např. Ubuntu 22.04+).
- Zdroje: 1 vCPU a 2 GB RAM
- Kořenový přístup: Administrativní oprávnění pro provádění příkazů.
- Název domény: Vlastní doména připravená pro konfiguraci DNS.
- Vyčistěte IP: Zkontrolujte, zda má váš server čistou IP adresu bez předchozí reputace nevyžádané pošty. Více informací zde.
[!TIP] Podívejte se na náš seznam úžasní poskytovatelé poštovních serverů
Cloud-init / User-data
Většina cloudových dodavatelů podporuje konfiguraci cloud-init, když je zřízen virtuální privátní server (VPS). Je to skvělý způsob, jak nastavit některé soubory a proměnné prostředí předem pro použití logikou počátečního nastavení skriptů, což obejde nutnost žádat během běhu skriptu o další informace.
Možnosti
EMAIL
-EMAIL
proměnná prostředí používaná pro připomenutí vypršení platnosti certbotuDOMAIN
- vlastní doména používaná pro vlastní nastavení hostinguAUTH_BASIC_USERNAME
- uživatelské jméno použité při prvním nastavení k ochraně webuAUTH_BASIC_PASSWORD
- passward použitý při prvním nastavení k ochraně webu/root/.cloudflare.ini
- (Pouze uživatelé Cloudflare)konfigurační soubor cloudflare používaný certbotem pro konfiguraci DNS. Vyžaduje, abyste nastavili svůj API token přesdns_cloudflare_api_token
. Přečtěte si více zde.
Příklad:
#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
Instalovat
Spuštěním následujícího příkazu na serveru stáhněte a spusťte instalační skript:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Debug instalační skript
Přidejte DEBUG=true před instalační skript pro podrobný výstup:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Výzvy
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Počáteční nastavení: Stáhněte si nejnovější předávací e-mailový kód, nakonfigurujte prostředí, vyžádejte si vlastní doménu a nastavte všechny potřebné certifikáty, klíče a tajemství.
- Nastavení zálohování: Nastaví cron pro zálohování mongoDB a redis pomocí úložiště kompatibilního s S3 pro bezpečné vzdálené úložiště. Samostatně bude sqlite zálohován při přihlášení, pokud dojde ke změnám pro zabezpečené, šifrované zálohy.
- Upgrade nastavení: Nastavte cron pro vyhledávání nočních aktualizací, které bezpečně obnoví a restartují součásti infrastruktury.
- Obnovit certifikáty: Certbot / lets encrypt se používá pro certifikáty SSL a klíče vyprší každé 3 měsíce. Tím obnovíte certifikáty pro vaši doménu a umístíte je do potřebné složky, aby mohly být spotřebovány související komponenty. Vidět důležité cesty k souborům
- Obnovit ze zálohy: Spustí mongodb a redis k obnovení ze zálohovaných dat.
Počáteční nastavení (Možnost 1)
Vyberte možnost 1. Initial setup
začít.
Po dokončení byste měli vidět zprávu o úspěchu. Můžete dokonce běhat docker ps
vidět a komponenty se roztočily. Více informací o komponentách níže.
Služby
Název služby | Výchozí port | Popis |
---|---|---|
Web | 443 | Webové rozhraní pro všechny administrátorské interakce |
API | 4000 | Vrstva API na abstraktní databáze |
Bree | Žádný | Úkol na pozadí a úkol běžec |
SMTP | 465/587 | Server SMTP pro odchozí poštu |
SMTP Bree | Žádný | Úloha na pozadí SMTP |
MX | 2525 | Výměna pošty pro příchozí e-maily a přeposílání e-mailů |
IMAP | 993/2993 | Server IMAP pro správu příchozí pošty a poštovní schránky |
POP3 | 995/2995 | POP3 server pro správu příchozích e-mailů a poštovních schránek |
SQLite | 3456 | SQLite server pro interakce s databází sqlite |
SQLite Bree | Žádný | Práce na pozadí SQLite |
CalDAV | 5000 | CalDAV server pro správu kalendářů |
MongoDB | 27017 | Databáze MongoDB pro správu většiny dat |
Redis | 6379 | Redis pro ukládání do mezipaměti a správu stavu |
SQLite | Žádný | Databáze SQLite pro šifrované poštovní schránky |
Důležité cesty k souborům
Poznámka: Hostitelská cesta níže je relativní k /root/forwardemail.net/self-hosting/
.
Komponent | Hostitelská cesta | Cesta kontejneru |
---|---|---|
MongoDB | ./mongo-backups | /backups |
Redis | ./redis-data | /data |
Sqlite | ./sqlite-data | /mnt/{SQLITE_STORAGE_PATH} |
Env soubor | ./.env | /app/.env |
SSL certifikáty/klíče | ./ssl | /app/ssl/ |
Soukromý klíč | ./ssl/privkey.pem | /app/ssl/privkey.pem |
Certifikát celého řetězu | ./ssl/fullchain.pem | /app/ssl/fullchain.pem |
Certifikáty CA | ./ssl/cert.pem | /app/ssl/cert.pem |
Soukromý klíč DKIM | ./ssl/dkim.key | /app/ssl/dkim.key |
[!DŮLEŽITÉ] Uložit
.env
soubor bezpečně. Je to důležité pro obnovu v případě selhání. Toto najdete v/root/forwardemail.net/self-hosting/.env
.
Konfigurace
Počáteční nastavení DNS
Ve zvoleném poskytovateli DNS nakonfigurujte příslušné záznamy DNS. Poznamenejte si něco v závorkách (<>
) je dynamický a je třeba jej aktualizovat podle vaší hodnoty.
Typ | Jméno | Obsah | TTL |
---|---|---|---|
A | "@", "." nebo prázdné | <ip_address> | auto |
CNAME | api | <název_domény> | auto |
CNAME | caldav | <název_domény> | auto |
CNAME | fe-odskočí | <název_domény> | auto |
CNAME | imap | <název_domény> | auto |
CNAME | mx | <název_domény> | auto |
CNAME | pop3 | <název_domény> | auto |
CNAME | smtp | <název_domény> | auto |
MX | "@", "." nebo prázdné | mx.<název_domény> (priorita 0) | auto |
TXT | "@", "." nebo prázdné | "v=spf1 a -all" | auto |
Reverzní DNS / PTR záznam
Reverzní DNS (rDNS) nebo záznamy reverzního ukazatele (PTR záznamy) jsou pro e-mailové servery nezbytné, protože pomáhají ověřit legitimitu serveru odesílajícího e-mail. Každý poskytovatel cloudu to dělá jinak, takže budete muset vyhledat, jak přidat „Reverse DNS“ k mapování hostitele a IP na odpovídající název hostitele. Nejspíše v síťové části poskytovatele.
Port 25 blokován
Někteří poskytovatelé internetových služeb a poskytovatelé cloudu blokují číslo 25, aby se vyhnuli špatným aktérům. K otevření portu 25 pro SMTP / odchozí e-maily možná budete muset zadat lístek podpory.
Přihlášení
-
Otevřete vstupní stránku Přejděte na https://<název_domény> a nahraďte <název_domény> doménou nakonfigurovanou v nastavení DNS. Měli byste vidět vstupní stránku Forward Email.
-
Přihlaste se a připojte svou doménu
- Přihlaste se pomocí platného e-mailu a hesla.
- Zadejte název domény, kterou chcete nastavit (musí odpovídat konfiguraci DNS).
- Postupujte podle pokynů a přidejte požadované MX a TXT záznamy pro ověření.
- Dokončete nastavení
- Po ověření přejděte na stránku Aliasy a vytvořte svůj první alias.
- Volitelně nakonfigurujte SMTP pro odchozí e-maily v Nastavení domény. To vyžaduje další záznamy DNS.
[!POZNÁMKA] Žádné informace nejsou odesílány mimo váš server. Možnost vlastního hostování a počáteční účet jsou určeny pouze pro přihlášení správce a webové zobrazení pro správu domén, aliasů a souvisejících e-mailových konfigurací.
Testování
Vytvoření prvního aliasu
- Přejděte na stránku Aliasy Otevřete stránku správy aliasu:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- Přidejte nový alias
- Klikněte Přidat alias (vpravo nahoře).
- Zadejte název aliasu a podle potřeby upravte nastavení e-mailu.
- (Volitelné) Povolit IMAP/POP3/CalDAV podporu zaškrtnutím políčka.
- Klikněte Vytvořit alias.
- Nastavte heslo
- Klikněte Vygenerovat heslo k vytvoření bezpečného hesla.
- Toto heslo bude vyžadováno pro přihlášení do vašeho e-mailového klienta.
- Nakonfigurujte si e-mailového klienta
- Použijte e-mailového klienta, jako je Thunderbird.
- Zadejte název aliasu a vygenerované heslo.
- Nakonfigurujte IMAP a SMTP odpovídajícím způsobem.
Nastavení e-mailového serveru
uživatelské jméno: <alias name>
Typ | Název hostitele | Přístav | Zabezpečení připojení | Autentizace |
---|---|---|---|---|
SMTP | smtp.<název_domény> | 465 | SSL / TLS | Normální heslo |
IMAP | imap.<název_domény> | 993 | SSL / TLS | Normální heslo |
Odeslání / Příjem vašeho prvního e-mailu
Po konfiguraci byste měli být schopni odesílat a přijímat e-maily na svou nově vytvořenou a hostovanou e-mailovou adresu!
Údržba
How do I backup my data
Postupujte podle instalační skript a vybrat si option 2
ve výzvě.
How do I renew my certificates
Postupujte podle instalační skript a vybrat si option 3
ve výzvě.
How do I upgrade to the latest forward email code
Postupujte podle instalační skript a vybrat si option 4
ve výzvě.
How do I restore from a backup
Postupujte podle instalační skript a vybrat si option 6
ve výzvě.
Odstraňování problémů
Why is the certbot acme challenge failing
Nejčastějším úskalím je, že certbot / letsencrypt někdy požádá 2 výzvy. Musíte si být jisti, že přidáte BOTH txt záznamy.
Příklad: Můžete vidět dvě výzvy, jako je tato: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"
Je také možné, že šíření DNS nebylo dokončeno. Můžete použít nástroje jako: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>
. To vám dá představu, zda by se změny vašeho TXT záznamu měly projevit. Je také možné, že místní mezipaměť DNS na vašem hostiteli stále používá starou, zastaralou hodnotu nebo nezachytila poslední změny.
Další možností je použít automatické změny DNS cerbot nastavením /root/.cloudflare.ini
soubor s tokenem api ve vašem cloud-init / user-data při úvodním nastavení VPS nebo vytvořte tento soubor a spusťte skript znovu. Tím se budou automaticky spravovat změny DNS a aktualizace výzev.
What is the basic auth username and password
Pro vlastní hostování přidáváme první vyskakovací okno pro nativní ověření prohlížeče s jednoduchým uživatelským jménem (admin
) a heslo (náhodně vygenerované při úvodním nastavení). Přidáváme to jen jako ochranu pro případ, že by vás automatizace / scrapery nějak porazily, abyste se poprvé zaregistrovali na webu. Toto heslo najdete po úvodním nastavení ve svém .env
soubor pod AUTH_BASIC_USERNAME
a AUTH_BASIC_PASSWORD
.
How do I know what is running
Můžete běžet docker ps
vidět všechny běžící kontejnery, které se otáčejí z docker-compose-self-hosting.yml
soubor. Můžete také běhat docker ps -a
zobrazit vše (včetně kontejnerů, které neběží).
How do I know if something isn't running that should be
Můžete běžet docker ps -a
zobrazit vše (včetně kontejnerů, které neběží). Můžete vidět výstupní protokol nebo poznámku.
How do I find logs
Více logů můžete získat přes docker logs -f <container_name>
. Pokud něco odešlo, pravděpodobně to souvisí s .env
soubor je nesprávně nakonfigurován.
Ve webovém uživatelském rozhraní můžete zobrazit /admin/emails
a /admin/logs
pro protokoly odchozích e-mailů a protokoly chyb.
Why are my outgoing emails timing out
Pokud se při připojování k serveru MX zobrazí zpráva jako Vypršel časový limit připojení..., možná budete muset zkontrolovat, zda není blokován port 25. Je běžné, že poskytovatelé internetových služeb nebo poskytovatelé cloudu to ve výchozím nastavení blokují, kde možná budete muset požádat o podporu / podat tiket, aby se to otevřelo.
What tool(s) should I use to test email configuration best practices and IP reputation
Podívejte se na naše FAQ zde.
Použijte svou IP adresu serveru ke kontrole proti následujícím webům, zda nejsou na černé listině. Bohužel není neobvyklé, že běžní poskytovatelé cloudu mají problémy s reputací IP při používání e-mailového spamu. Pokud vidíte svou IP na černé listině, doporučujeme spustit nový server a zkontrolovat novou IP adresu.