Selvhostet
Komme i gang
Vår selvhostede e-postløsning, som alle våre produkter, er 100 % åpen kildekode – både frontend og backend. Dette betyr:
- Fullstendig åpenhet: Hver kodelinje som behandler e-postene dine er tilgjengelig for offentlig gransking.
- Bidrag fra fellesskapet: Alle kan bidra med forbedringer eller fikse problemer.
- Sikkerhet gjennom åpenhet: Sårbarheter kan identifiseres og fikses av et globalt fellesskap.
- Ingen leverandørbinding: Du er aldri avhengig av selskapets eksistens.
Hele kodebasen er tilgjengelig på GitHub på https://github.com/forwardemail/forwardemail.net, lisensiert under MIT-lisensen.
Arkitekturen inkluderer containere for:
- SMTP-server for utgående e-post
- IMAP/POP3-servere for henting av e-post
- Webgrensesnitt for administrasjon
- Database for konfigurasjonslagring
- Redis for mellomlagring og ytelse
- SQLite for sikker, kryptert postkasselagring
Note
Sørg for å sjekke ut vår selvhostet blogg
Og for de som er interessert i en mer detaljert trinnvis versjon, se våre Ubuntu- eller Debian-baserte veiledninger.
Krav
Før du kjører installasjonsskriptet, må du sørge for at du har følgende:
- Operativsystem: En Linux-basert server (støtter for øyeblikket Ubuntu 22.04+).
- Ressurser: 1 vCPU og 2 GB RAM
- Root-tilgang: Administratorrettigheter for å utføre kommandoer.
- Domenenavn: Et tilpasset domene klart for DNS-konfigurasjon.
- Ren IP: Sørg for at serveren din har en ren IP-adresse uten tidligere spam-rykte ved å sjekke svartelister. Mer informasjon: her.
- Offentlig IP-adresse med støtte for port 25
- Mulighet for å angi omvendt PTR
- Støtte for IPv4 og IPv6
Tip
Se listen vår over fantastiske leverandører av e-postservere
Skyinitiering / Brukerdata
De fleste skyleverandører støtter en skyinitieringskonfigurasjon for når den virtuelle private serveren (VPS) klargjøres. Dette er en fin måte å angi noen filer og miljøvariabler på forhånd for bruk av skriptets første oppsettlogikk, noe som vil omgå behovet for å spørre om tilleggsinformasjon mens skriptet kjører.
Alternativer
EMAIL
- e-post brukt for påminnelser om utløp av CertbotDOMAIN
- tilpasset domene (f.eks.example.com
) brukt for oppsett av selvhostingAUTH_BASIC_USERNAME
- brukernavn brukt ved første gangs oppsett for å beskytte nettstedetAUTH_BASIC_PASSWORD
- passord brukt ved første gangs oppsett for å beskytte nettstedet/root/.cloudflare.ini
- (Kun Cloudflare-brukere) Cloudflare-konfigurasjonsfil brukt av Certbot for DNS-konfigurasjon. Det krever at du angir API-tokenet ditt viadns_cloudflare_api_token
. Les mer om her.
Eksempel:
#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
Installer
Kjør følgende kommando på serveren din for å laste ned og kjøre installasjonsskriptet:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Feilsøking av installasjonsskript
Legg til DEBUG=true
foran installasjonsskriptet for detaljert utdata:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Leder
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Første oppsett: Last ned den nyeste koden for videresending av e-post, konfigurer miljøet, spør etter ditt egendefinerte domene og konfigurer alle nødvendige sertifikater, nøkler og hemmeligheter.
- Konfigurer sikkerhetskopiering: Vil sette opp en cron for å sikkerhetskopiere mongoDB og redis ved hjelp av et S3-kompatibelt lager for sikker, ekstern lagring. Sqlite vil bli sikkerhetskopiert separat ved innlogging hvis det er endringer for sikre, krypterte sikkerhetskopier.
- Konfigurer oppgradering: Konfigurer en cron for å se etter nattlige oppdateringer som trygt vil gjenoppbygge og starte infrastrukturkomponenter på nytt.
- Forny sertifikater: Certbot / lets encrypt brukes for SSL-sertifikater, og nøklene utløper hver tredje måned. Dette vil fornye sertifikatene for domenet ditt og plassere dem i den nødvendige mappen for relaterte komponenter å bruke. Se viktige filstier
- Gjenopprett fra sikkerhetskopi: Vil utløse mongodb og redis for å gjenopprette fra sikkerhetskopidata.
Førstegangsoppsett (alternativ 1)
Velg alternativet 1. Initial setup
for å begynne.
Når det er fullført, skal du se en suksessmelding. Du kan til og med kjøre docker ps
for å se komponentene starte opp. Mer informasjon om komponentene nedenfor.
Tjenester
Tjenestenavn | Standardport | Beskrivelse |
---|---|---|
Nett | 443 |
Nettgrensesnitt for alle administratorinteraksjoner |
API | 4000 |
API-lag til abstrakte databaser |
Bree | Ingen | Bakgrunnsjobb og oppgaveløper |
SMTP | 465/587 |
SMTP-server for utgående e-post |
SMTP Bree | Ingen | SMTP-bakgrunnsjobb |
MX | 2525 |
Postutveksling for innkommende e-post og videresending av e-post |
IMAP | 993/2993 |
IMAP-server for innkommende e-post og postkasseadministrasjon |
POP3 | 995/2995 |
POP3-server for innkommende e-post og postkasseadministrasjon |
SQLite | 3456 |
SQLite-server for interaksjoner med SQLite-database(r) |
SQLite Bree | Ingen | SQLite-bakgrunnsjobb |
CalDAV | 5000 |
CalDAV-server for kalenderadministrasjon |
CardDAV | 6000 |
CardDAV-server for kalenderadministrasjon |
MongoDB | 27017 |
MongoDB-database for mesteparten av datahåndteringen |
Redis | 6379 |
Redis for mellomlagring og tilstandsadministrasjon |
SQLite | Ingen | SQLite-database(r) for krypterte postbokser |
Viktige filstier
Merk: Vertsbanen nedenfor er relativ til /root/forwardemail.net/self-hosting/
.
Komponent | Vertssti | Beholderbane |
---|---|---|
MongoDB | ./mongo-backups |
/backups |
Redis | ./redis-data |
/data |
Sqlite | ./sqlite-data |
/mnt/{SQLITE_STORAGE_PATH} |
Konvoluttfil | ./.env |
/app/.env |
SSL-sertifikater/-nøkler | ./ssl |
/app/ssl/ |
Privat nøkkel | ./ssl/privkey.pem |
/app/ssl/privkey.pem |
Fullt kjedesertifikat | ./ssl/fullchain.pem |
/app/ssl/fullchain.pem |
Sertifiserte CA-er | ./ssl/cert.pem |
/app/ssl/cert.pem |
DKIM privatnøkkel | ./ssl/dkim.key |
/app/ssl/dkim.key |
Important
Lagre .env
-filen på en sikker måte. Den er avgjørende for gjenoppretting ved feil.
Du finner denne i /root/forwardemail.net/self-hosting/.env
.
Konfigurasjon
Første DNS-oppsett
Konfigurer de riktige DNS-oppføringene i din valgte DNS-leverandør. Vær oppmerksom på at alt i parentes (<>
) er dynamisk og må oppdateres med verdien din.
Type | Navn | Innhold | TTL | |
---|---|---|---|---|
A | "@", ".", eller blankt | <ip_adresse> | bil | CNAME | API | bil | CNAME | caldav | bil | CNAME | carddav | bil | CNAME | fe-spretter | bil | CNAME | imap | bil | CNAME | mx | bil | CNAME | pop3 | bil | CNAME | smtp | bil | MX | "@", ".", eller blankt | mx. (prioritet 0)bil |
TXT | "@", ".", eller blankt | "v=spf1 a -all" | bil | |
Type | Vertsnavn | Havn | Tilkoblingssikkerhet | Autentisering | SMTP | smtp.465 | SSL / TLS | Vanlig passord | IMAP | imap.993 | SSL / TLS | Vanlig passord |