Self Hosted
Telepítés
Követelmények
A telepítő szkript futtatása előtt győződjön meg arról, hogy rendelkezik a következőkkel:
- Operációs rendszer: Linux alapú szerver (pl. Ubuntu 22.04+).
- Erőforrások: 1 vCPU és 2 GB RAM
- Root Access: Adminisztrátori jogosultságok parancsok végrehajtásához.
- Domain név: Egyéni tartomány, amely készen áll a DNS-konfigurációra.
- Tiszta IP: A feketelisták ellenőrzésével győződjön meg arról, hogy szervere tiszta IP-címmel rendelkezik, és nincs előzetes spam hírnév. További információ itt.
[!TIPP] Tekintse meg a listánkat fantasztikus levelezőszerver-szolgáltatók
Cloud-init / Felhasználói adatok
A legtöbb felhőszolgáltató támogatja a felhő-init konfigurációt a virtuális magánkiszolgáló (VPS) kiépítéséhez. Ez nagyszerű módja annak, hogy bizonyos fájlokat és környezeti változókat idő előtt beállítson a szkriptek kezdeti beállítási logikájának használatára, amely megkerüli a további információk kérését, miközben a szkript fut.
Opciók
EMAIL
-EMAIL
certbot lejárati emlékeztetőkhöz használt környezeti változóDOMAIN
- egyéni tartomány az önálló hosting beállításhozAUTH_BASIC_USERNAME
- az első alkalommal használt felhasználónév a webhely védelme érdekébenAUTH_BASIC_PASSWORD
- az első beállításnál használt passward a webhely védelme érdekében/root/.cloudflare.ini
- (Csak Cloudflare felhasználók)cloudflare konfigurációs fájl, amelyet a certbot használ a DNS-konfigurációhoz. Ehhez be kell állítania az API tokent a következőn keresztüldns_cloudflare_api_token
. Olvass tovább itt.
Példa:
#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
Telepítés
Futtassa a következő parancsot a kiszolgálón a telepítőszkript letöltéséhez és végrehajtásához:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Telepítési szkript hibakeresése
Adja hozzá a DEBUG=true értéket a telepítési szkript elé a részletes kimenethez:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Kéri
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Kezdeti beállítás: Töltse le a legfrissebb továbbítási e-mail kódot, konfigurálja a környezetet, kérje le egyéni tartományát, és állítsa be az összes szükséges tanúsítványt, kulcsot és titkot.
- Biztonsági mentés beállítása: Beállít egy cron-t a mongoDB biztonsági mentéséhez, és egy S3-kompatibilis tároló használatával újraindítja a biztonságos, távoli tárolást. Külön-külön, az sqlite biztonsági mentése bejelentkezéskor történik, ha a biztonságos, titkosított biztonsági mentések módosítása történik.
- Frissítés beállítása: Állítson be egy cront az éjszakai frissítések kereséséhez, amelyek biztonságosan újraépítik és újraindítják az infrastruktúra-összetevőket.
- Tanúsítványok megújítása: A Certbot / lets encrypt SSL-tanúsítványokhoz használatos, és a kulcsok 3 havonta lejárnak. Ez megújítja a domain tanúsítványait, és elhelyezi azokat a szükséges mappába, ahol a kapcsolódó összetevők felhasználhatók. Lásd fontos fájl útvonalak
- Visszaállítás biztonsági másolatból: Elindítja a mongodb-t és a redis-t a biztonsági másolatból való visszaállításhoz.
Kezdeti beállítás (1. lehetőség)
Válasszon opciót 1. Initial setup
kezdeni.
Ha elkészült, egy sikerüzenetet kell látnia. Még futni is tudsz docker ps
látni a felpörögtek az alkatrészek. További információ a komponensekről alább.
Szolgáltatások
Szolgáltatás neve | Alapértelmezett port | Leírás |
---|---|---|
Web | 443 | Webes felület minden adminisztrátori interakcióhoz |
API | 4000 | Api réteg absztrakt adatbázisokhoz |
Bree | Egyik sem | Háttér munka és feladat futó |
SMTP | 465/587 | SMTP szerver a kimenő e-mailekhez |
SMTP Bree | Egyik sem | SMTP háttérmunka |
MX | 2525 | Levélváltás bejövő e-mailekhez és e-mail-továbbításhoz |
IMAP | 993/2993 | IMAP szerver a bejövő e-mailek és postafiókok kezeléséhez |
POP3 | 995/2995 | POP3 szerver a bejövő e-mailek és postafiókok kezelésére |
SQLite | 3456 | SQLite szerver az sqlite adatbázis(ok)kal való interakcióhoz |
SQLite Bree | Egyik sem | SQLite háttérmunka |
CalDAV | 5000 | CalDAV szerver naptárkezeléshez |
MongoDB | 27017 | MongoDB adatbázis a legtöbb adatkezeléshez |
Redis | 6379 | Redis gyorsítótárazáshoz és állapotkezeléshez |
SQLite | Egyik sem | SQLite adatbázis(ok) titkosított postafiókokhoz |
Fontos fájl elérési utak
Jegyzet: Gazda útvonala alább relatív /root/forwardemail.net/self-hosting/
.
Összetevő | Gazda útvonala | Konténer útvonala |
---|---|---|
MongoDB | ./mongo-backups | /backups |
Redis | ./redis-data | /data |
Sqlite | ./sqlite-data | /mnt/{SQLITE_STORAGE_PATH} |
Env fájl | ./.env | /app/.env |
SSL-tanúsítványok/kulcsok | ./ssl | /app/ssl/ |
Privát kulcs | ./ssl/privkey.pem | /app/ssl/privkey.pem |
Teljes lánc tanúsítvány | ./ssl/fullchain.pem | /app/ssl/fullchain.pem |
CA tanúsítványok | ./ssl/cert.pem | /app/ssl/cert.pem |
DKIM privát kulcs | ./ssl/dkim.key | /app/ssl/dkim.key |
[!FONTOS] Mentse el a
.env
fájl biztonságosan. Kritikus a helyreállításhoz hiba esetén. Ezt megtalálod itt/root/forwardemail.net/self-hosting/.env
.
Konfiguráció
Kezdeti DNS-beállítás
A választott DNS-szolgáltatóban konfigurálja a megfelelő DNS-rekordokat. Ne jegyezzen semmit zárójelben (<>
) dinamikus, és frissíteni kell az Ön értékével.
típus | Név | Tartalom | TTL |
---|---|---|---|
A | "@", "." vagy üres | <ip_cím> | auto |
CNAME | api | <domain_name> | auto |
CNAME | caldav | <domain_name> | auto |
CNAME | fe-pattan | <domain_name> | auto |
CNAME | imap | <domain_name> | auto |
CNAME | mx | <domain_name> | auto |
CNAME | pop3 | <domain_name> | auto |
CNAME | smtp | <domain_name> | auto |
MX | "@", "." vagy üres | mx.<domain_name> (0. prioritás) | auto |
TXT | "@", "." vagy üres | "v=spf1 a -all" | auto |
Fordított DNS / PTR rekord
A fordított DNS (rDNS) vagy a fordított mutató rekordok (PTR rekordok) elengedhetetlenek az e-mail szerverek számára, mert segítenek ellenőrizni az e-mailt küldő szerver legitimitását. Minden felhőszolgáltató ezt másképp csinálja, ezért meg kell keresnie, hogyan adhatja hozzá a "Reverse DNS"-t, hogy a gazdagépet és az IP-t a megfelelő gazdagépnévhez rendelje. Valószínűleg a szolgáltató hálózati szakaszában.
A 25-ös port blokkolva
Egyes internetszolgáltatók és felhőszolgáltatók blokkolják a 25-öt, hogy elkerüljék a rossz szereplőket. Előfordulhat, hogy támogatási jegyet kell benyújtania a 25-ös port megnyitásához az SMTP / kimenő e-mailek számára.
Felvétel
-
Nyissa meg a céloldalt Lépjen a https://<tartománynév> oldalra, és cserélje ki a <domain_name> helyére a DNS-beállításokban konfigurált tartományt. Látnia kell az E-mail továbbítása céloldalt.
-
Jelentkezzen be, és lépjen be a domainbe
- Jelentkezzen be érvényes e-mail címmel és jelszóval.
- Adja meg a beállítani kívánt tartománynevet (ennek meg kell egyeznie a DNS-konfigurációval).
- Kövesse az utasításokat a szükséges hozzáadásához MX és TXT feljegyzések ellenőrzésére.
- Teljes telepítés
- Az ellenőrzés után nyissa meg az Aliasok oldalt az első alias létrehozásához.
- Opcionálisan konfigurálja SMTP a kimenő e-mailekhez ban,-ben Domain beállítások. Ehhez további DNS-rekordokra van szükség.
[!JEGYZET] A szerveren kívülre nem küldenek információt. A saját hosztolt opció és a kezdeti fiók csak az adminisztrátori bejelentkezéshez és webes nézethez használható a tartományok, álnevek és kapcsolódó e-mail-konfigurációk kezeléséhez.
Tesztelés
Az első alias létrehozása
- Lépjen az Aliasok oldalra Nyissa meg az alias kezelési oldalt:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- Új alias hozzáadása
- Kattintson Adjon hozzá álnevet (jobbra fent).
- Adja meg az álnév nevét, és szükség szerint módosítsa az e-mail beállításokat.
- (Opcionális) Engedélyezés IMAP/POP3/CalDAV támogatást a jelölőnégyzet bejelölésével.
- Kattintson Alias létrehozása.
- Állítson be egy jelszót
- Kattintson Jelszó generálása biztonságos jelszó létrehozásához.
- Ez a jelszó szükséges az e-mail kliensbe való bejelentkezéshez.
- E-mail kliens konfigurálása
- Használjon olyan levelezőprogramot, mint a Thunderbird.
- Adja meg az álnév nevét és a generált jelszót.
- Konfigurálja a IMAP és SMTP ennek megfelelő beállításokat.
E-mail szerver beállításai
Felhasználónév: <alias name>
típus | Gazdanév | Kikötő | Kapcsolatbiztonság | Hitelesítés |
---|---|---|---|---|
SMTP | smtp.<domain_name> | 465 | SSL / TLS | Normál jelszó |
IMAP | imap.<domain_name> | 993 | SSL / TLS | Normál jelszó |
Az első e-mail küldése / fogadása
A konfigurálás után képesnek kell lennie arra, hogy e-maileket küldjön és fogadjon az újonnan létrehozott és saját e-mail címére!
Karbantartás
How do I backup my data
Kövesse a script telepítése és válassz option 2
a promptban.
How do I renew my certificates
Kövesse a script telepítése és válassz option 3
a promptban.
How do I upgrade to the latest forward email code
Kövesse a script telepítése és válassz option 4
a promptban.
How do I restore from a backup
Kövesse a script telepítése és válassz option 6
a promptban.
Hibaelhárítás
Why is the certbot acme challenge failing
A leggyakoribb buktató az, hogy a certbot / letsencrypt néha kér 2 kihívásokat. Mindenképpen hozzá kell adnia BOTH txt rekordok.
Példa: Két ehhez hasonló kihívást láthat: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"
Az is lehetséges, hogy a DNS terjesztése nem fejeződött be. Ilyen eszközöket használhat: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>
. Ez képet ad arról, hogy a TXT rekord változásainak tükröződniük kell-e. Az is lehetséges, hogy a gazdagép helyi DNS-gyorsítótára még mindig régi, elavult értéket használ, vagy nem vette fel a legutóbbi módosításokat.
Egy másik lehetőség az automatikus cerbot DNS-módosítások használata a /root/.cloudflare.ini
fájl az api tokennel a felhő-init/felhasználói adatok között a VPS kezdeti beállításakor, vagy hozza létre ezt a fájlt, és futtassa újra a szkriptet. Ez automatikusan kezeli a DNS-módosításokat és megkérdőjelezi a frissítéseket.
What is the basic auth username and password
Saját hosting esetén adunk hozzá egy böngésző natív hitelesítési előugró ablakot egy egyszerű felhasználónévvel (admin
) és jelszó (a kezdeti beállításkor véletlenszerűen generálva). Ezt csak védelemként adjuk hozzá, arra az esetre, ha az automatizálás/lehúzó valahogy legyőzné Önt, és először regisztrálhat az internetes élményre. Ezt a jelszót a kezdeti beállítás után találhatja meg az Ön .env
alatti fájl AUTH_BASIC_USERNAME
és AUTH_BASIC_PASSWORD
.
How do I know what is running
Futhatsz docker ps
hogy megtekinthesse az összes futó tárolót, amely felpörgetett a docker-compose-self-hosting.yml
fájlt. Futni is lehet docker ps -a
mindent látni (beleértve a nem futó tárolókat is).
How do I know if something isn't running that should be
Futhatsz docker ps -a
mindent látni (beleértve a nem futó tárolókat is). Láthat egy kilépési naplót vagy megjegyzést.
How do I find logs
Több naplót kaphat a következőn keresztül docker logs -f <container_name>
. Ha valami kilépett, az valószínűleg a .env
a fájl nem megfelelően van konfigurálva.
A webes felhasználói felületen belül megtekintheti /admin/emails
és /admin/logs
a kimenő e-mail naplókhoz, illetve a hibanaplókhoz.
Why are my outgoing emails timing out
Ha az MX szerverhez való csatlakozáskor olyan üzenetet lát, mint a Connection time out..., akkor előfordulhat, hogy ellenőriznie kell, hogy a 25-ös port blokkolva van-e. Gyakori, hogy az internetszolgáltatók vagy a felhőszolgáltatók ezt alapértelmezés szerint blokkolják, ahol előfordulhat, hogy fel kell vennie a kapcsolatot a támogatással / jegyet kell benyújtania a megnyitáshoz.
What tool(s) should I use to test email configuration best practices and IP reputation
Vessen egy pillantást nálunk GYIK itt.
A szerver IP-címével ellenőrizze, hogy a következő webhelyek szerepelnek-e a tiltólistán. Sajnos nem ritka, hogy az általános felhőszolgáltatóknál IP-problémák lépnek fel az e-mailek spamhasználatával kapcsolatban. Ha az IP-címét feketelistán látja, javasoljuk, hogy állítson fel egy új szervert, és ellenőrizze az új IP-címet.