Egen värd
Installation
Krav
Innan du kör installationsskriptet, se till att du har följande:
- Operativsystem: En Linux-baserad server (t.ex. Ubuntu 22.04+).
- Resurser: 1 vCPU och 2 GB RAM
- Root Access: Administratörsbehörighet för att utföra kommandon.
- Domän namn: En anpassad domän redo för DNS-konfiguration.
- Rengör IP: Se till att din server har en ren IP-adress utan tidigare rykte om skräppost genom att kontrollera svarta listor. Mer info här.
[!DRICKS] Se vår lista över fantastiska e-postserverleverantörer
Cloud-init / Användardata
De flesta molnleverantörer stöder en cloud-init-konfiguration för när den virtuella privata servern (VPS) tillhandahålls. Detta är ett utmärkt sätt att ställa in vissa filer och miljövariabler i förväg för användning av skriptets initiala installationslogik, vilket kommer att kringgå behovet av att fråga medan skriptet körs för ytterligare information.
Alternativ
EMAIL
-EMAIL
miljövariabel som används för certbots utgångspåminnelserDOMAIN
- anpassad domän som används för installation av självvärdAUTH_BASIC_USERNAME
- Användarnamn som används i förstagångsinstallationen för att skydda webbplatsenAUTH_BASIC_PASSWORD
- Passward används i förstagångsinstallationen för att skydda webbplatsen/root/.cloudflare.ini
- (Endast Cloudflare-användare)cloudflare-konfigurationsfil som används av certbot för DNS-konfiguration. Det kräver att du ställer in din API-token viadns_cloudflare_api_token
. Läs mer här.
Exempel:
#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
Installera
Kör följande kommando på din server för att ladda ner och köra installationsskriptet:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Felsök installationsskript
Lägg till DEBUG=true framför installationsskriptet för utförlig utdata:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Uppmaningar
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Initial installation: Ladda ner den senaste e-postkoden för vidarebefordran, konfigurera miljön, fråga efter din anpassade domän och ställ in alla nödvändiga certifikat, nycklar och hemligheter.
- Säkerhetskopiering: Kommer att ställa in en cron för att säkerhetskopiera mongoDB och göra om med en S3-kompatibel butik för säker fjärrlagring. Separat kommer sqlite att säkerhetskopieras vid inloggning om det finns ändringar för säkra, krypterade säkerhetskopior.
- Installationsuppgradering: Ställ in en cron för att leta efter nattliga uppdateringar som säkert kommer att bygga om och starta om infrastrukturkomponenter.
- Förnya certifikat: Certbot / lets encrypt används för SSL-certifikat och nycklar upphör att gälla var tredje månad. Detta kommer att förnya certifikaten för din domän och placera dem i den nödvändiga mappen för relaterade komponenter att konsumera. Se viktiga filsökvägar
- Återställ från säkerhetskopia: Kommer att utlösa mongodb och redis för att återställa från säkerhetskopia.
Initial installation (alternativ 1)
Välj alternativ 1. Initial setup
att börja.
När du är klar bör du se ett framgångsmeddelande. Du kan till och med springa docker ps
att se de komponenter snurrade upp. Mer information om komponenter nedan.
Tjänster
Tjänstens namn | Standardport | Beskrivning |
---|---|---|
Web | 443 | Webbgränssnitt för alla admininteraktioner |
API | 4000 | Api-lager till abstrakta databaser |
Bree | Ingen | Bakgrundsjobb och uppgiftslöpare |
SMTP | 465/587 | SMTP-server för utgående e-post |
SMTP Bree | Ingen | SMTP bakgrundsjobb |
MX | 2525 | Mailutbyte för inkommande mail och vidarebefordran av mail |
IMAP | 993/2993 | IMAP-server för inkommande e-post och postlådehantering |
POP3 | 995/2995 | POP3-server för inkommande e-post och postlådehantering |
SQLite | 3456 | SQLite-server för interaktioner med SQLite-databas(er) |
SQLite Bree | Ingen | SQLite bakgrundsjobb |
CalDAV | 5000 | CalDAV-server för kalenderhantering |
MongoDB | 27017 | MongoDB-databas för de flesta datahantering |
Redis | 6379 | Redis för cachning och tillståndshantering |
SQLite | Ingen | SQLite-databas(er) för krypterade postlådor |
Viktiga filsökvägar
Notera: Värdsväg nedan är i förhållande till /root/forwardemail.net/self-hosting/
.
Komponent | Värdsväg | Containerbana |
---|---|---|
MongoDB | ./mongo-backups | /backups |
Redis | ./redis-data | /data |
Sqlite | ./sqlite-data | /mnt/{SQLITE_STORAGE_PATH} |
Env-fil | ./.env | /app/.env |
SSL-certifikat/nycklar | ./ssl | /app/ssl/ |
Privat nyckel | ./ssl/privkey.pem | /app/ssl/privkey.pem |
Full kedja certifikat | ./ssl/fullchain.pem | /app/ssl/fullchain.pem |
CA-certifikat | ./ssl/cert.pem | /app/ssl/cert.pem |
DKIM privat nyckel | ./ssl/dkim.key | /app/ssl/dkim.key |
[!VIKTIG] Spara
.env
fil säkert. Det är avgörande för återhämtning vid fel. Du hittar detta i/root/forwardemail.net/self-hosting/.env
.
Konfiguration
Initial DNS-inställning
Konfigurera lämpliga DNS-poster i din valda DNS-leverantör. Anteckna något inom parentes (<>
) är dynamisk och måste uppdateras med ditt värde.
Typ | namn | Innehåll | TTL |
---|---|---|---|
A | "@", "." eller tom | <ip_adress> | bil |
CNAME | api | <domännamn> | bil |
CNAME | caldav | <domännamn> | bil |
CNAME | fe-studsar | <domännamn> | bil |
CNAME | imap | <domännamn> | bil |
CNAME | mx | <domännamn> | bil |
CNAME | pop3 | <domännamn> | bil |
CNAME | smtp | <domännamn> | bil |
MX | "@", "." eller tom | mx.<domännamn> (prioritet 0) | bil |
TXT | "@", "." eller tom | "v=spf1 a -all" | bil |
Omvänd DNS/PTR-post
Reverse DNS (rDNS) eller Reverse Pointer Records (PTR-poster) är viktiga för e-postservrar eftersom de hjälper till att verifiera legitimiteten hos servern som skickar e-postmeddelandet. Varje molnleverantör gör detta på olika sätt, så du måste leta upp hur du lägger till "Omvänd DNS" för att mappa värden och IP till dess motsvarande värdnamn. Mest troligt i nätverksdelen hos leverantören.
Port 25 blockerad
Vissa internetleverantörer och molnleverantörer blockerar 25 för att undvika dåliga aktörer. Du kan behöva lämna in ett supportärende för att öppna port 25 för SMTP/utgående e-post.
Onboarding
-
Öppna målsidan Navigera till https://<domännamn> och ersätt <domännamn> med domänen som konfigurerats i dina DNS-inställningar. Du bör se landningssidan för vidarebefordra e-post.
-
Logga in och ta med din domän
- Logga in med en giltig e-postadress och lösenord.
- Ange domännamnet du vill konfigurera (detta måste matcha DNS-konfigurationen).
- Följ anvisningarna för att lägga till det nödvändiga MX och TXT register för verifiering.
- Komplett installation
- När du har verifierat, gå till sidan Alias för att skapa ditt första alias.
- Alternativt, konfigurera SMTP för utgående e-post i Domäninställningar. Detta kräver ytterligare DNS-poster.
[!NOTERA] Ingen information skickas utanför din server. Alternativet för självvärd och det första kontot är bara för administratörsinloggning och webbvy för att hantera domäner, alias och relaterade e-postkonfigurationer.
Testning
Skapa ditt första alias
- Navigera till sidan Alias Öppna sidan för aliashantering:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- Lägg till ett nytt alias
- Klick Lägg till Alias (överst till höger).
- Ange aliasnamnet och justera e-postinställningarna efter behov.
- (Valfritt) Aktivera IMAP/POP3/CalDAV stöd genom att markera kryssrutan.
- Klick Skapa Alias.
- Ange ett lösenord
- Klick Generera lösenord för att skapa ett säkert lösenord.
- Detta lösenord kommer att krävas för att logga in på din e-postklient.
- Konfigurera din e-postklient
- Använd en e-postklient som Thunderbird.
- Ange aliasnamnet och det genererade lösenordet.
- Konfigurera IMAP och SMTP inställningar i enlighet därmed.
E-postserverinställningar
Användarnamn: <alias name>
Typ | Värdnamn | Hamn | Anslutningssäkerhet | autentisering |
---|---|---|---|---|
SMTP | smtp.<domännamn> | 465 | SSL / TLS | Normalt lösenord |
IMAP | imap.<domännamn> | 993 | SSL / TLS | Normalt lösenord |
Skickar / tar emot ditt första e-postmeddelande
När du väl har konfigurerat den bör du kunna skicka och ta emot e-post till din nyskapade e-postadress!
Underhåll
How do I backup my data
Följ installera skript och välj option 2
i prompten.
How do I renew my certificates
Följ installera skript och välj option 3
i prompten.
How do I upgrade to the latest forward email code
Följ installera skript och välj option 4
i prompten.
How do I restore from a backup
Följ installera skript och välj option 6
i prompten.
Felsökning
Why is the certbot acme challenge failing
Den vanligaste fallgropen är att certbot / letsencrypt ibland begär 2 utmaningar. Du måste vara säker på att lägga till BOTH txt-poster.
Exempel: Du kanske ser två utmaningar som denna: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"
Det är också möjligt att DNS-utbredning inte har slutförts. Du kan använda verktyg som: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>
. Detta kommer att ge dig en uppfattning om dina TXT-poständringar bör återspeglas. Det är också möjligt att den lokala DNS-cachen på din värd fortfarande använder ett gammalt, inaktuellt värde eller inte har tagit upp de senaste ändringarna.
Ett annat alternativ är att använda de automatiska cerbot DNS-ändringarna genom att ställa in /root/.cloudflare.ini
fil med api-token i din cloud-init/användardata vid initial VPS-installation eller skapa den här filen och kör skriptet igen. Detta kommer att hantera DNS-ändringarna och utmaningsuppdateringarna automatiskt.
What is the basic auth username and password
För egen värd lägger vi till en förstagångswebbläsarnative autentisering som popup upp med ett enkelt användarnamn (admin
) och lösenord (genereras slumpmässigt vid den första installationen). Vi lägger bara till detta som ett skydd ifall automatisering/skrapor på något sätt slår dig för att först registrera dig på webbupplevelsen. Du kan hitta detta lösenord efter den första installationen i din .env
fil under AUTH_BASIC_USERNAME
och AUTH_BASIC_PASSWORD
.
How do I know what is running
Du kan springa docker ps
för att se alla löpande behållare som snurras upp från docker-compose-self-hosting.yml
fil. Du kan också springa docker ps -a
för att se allt (inklusive behållare som inte är igång).
How do I know if something isn't running that should be
Du kan springa docker ps -a
för att se allt (inklusive behållare som inte är igång). Du kan se en utgångslogg eller anteckning.
How do I find logs
Du kan få fler loggar via docker logs -f <container_name>
. Om något avslutades, är det troligtvis relaterat till .env
filen är felaktigt konfigurerad.
Inom webbgränssnittet kan du visa /admin/emails
och /admin/logs
för utgående e-postloggar respektive felloggar.
Why are my outgoing emails timing out
Om du ser ett meddelande som Connection timeout när du ansluter till MX-servern... kan du behöva kontrollera om port 25 är blockerad. Det är vanligt att internetleverantörer eller molnleverantörer blockerar detta som standard där du kan behöva kontakta support/fila en ärende för att få detta öppnat.
What tool(s) should I use to test email configuration best practices and IP reputation
Ta en titt på vår FAQ här.
Använd din server IP-adress för att kontrollera mot följande webbplatser om de finns på en svartlista. Det är tyvärr inte ovanligt att vanliga molnleverantörer har problem med IP-rykte för att använda skräppost. Om du ser din IP på en svartlista rekommenderas det att snurra upp en ny server och kontrollera den nya IP-adressen.