Selvvært
Installation
Krav
Før du kører installationsscriptet, skal du sikre dig, at du har følgende:
- Operativsystem: En Linux-baseret server (f.eks. Ubuntu 22.04+).
- Ressourcer: 1 vCPU'er og 2 GB RAM
- Rodadgang: Administrative rettigheder til at udføre kommandoer.
- Domænenavn: Et brugerdefineret domæne klar til DNS-konfiguration.
- Ren IP: Sørg for, at din server har en ren IP-adresse uden tidligere spam-omdømme ved at tjekke sortlister. Mere info her.
[!TIP] Se vores liste over fantastiske mailserverudbydere
Cloud-init / Bruger-data
De fleste cloud-leverandører understøtter en cloud-init-konfiguration, når den virtuelle private server (VPS) er klargjort. Dette er en fantastisk måde at indstille nogle filer og miljøvariabler på forhånd til brug af scriptets indledende opsætningslogik, som vil omgå behovet for at spørge, mens scriptet kører for yderligere information.
Valgmuligheder
EMAIL
-EMAIL
miljøvariabel brugt til påmindelser om certbot-udløbDOMAIN
- brugerdefineret domæne, der bruges til opsætning af selvhostingAUTH_BASIC_USERNAME
- brugernavn brugt i førstegangsopsætning for at beskytte webstedetAUTH_BASIC_PASSWORD
- Passward brugt i førstegangsopsætning for at beskytte webstedet/root/.cloudflare.ini
- (Kun Cloudflare-brugere)cloudflare-konfigurationsfil brugt af certbot til DNS-konfiguration. Det kræver, at du indstiller dit API-token viadns_cloudflare_api_token
. Læs mere 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
Installere
Kør følgende kommando på din server for at downloade og udføre installationsscriptet:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Debug installationsscript
Tilføj DEBUG=true foran installationsscriptet for detaljeret output:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Spørger
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Indledende opsætning: Download den seneste videresendelses-e-mail-kode, konfigurer miljøet, bed om dit brugerdefinerede domæne og opsæt alle nødvendige certifikater, nøgler og hemmeligheder.
- Opsætning af sikkerhedskopiering: Vil opsætte en cron til at sikkerhedskopiere mongoDB og genoprette ved hjælp af en S3-kompatibel butik til sikker fjernlagring. Separat vil sqlite blive sikkerhedskopieret ved login, hvis der er ændringer til sikre, krypterede sikkerhedskopier.
- Opgradering af opsætning: Konfigurer en cron til at lede efter natlige opdateringer, som sikkert vil genopbygge og genstarte infrastrukturkomponenter.
- Forny certifikater: Certbot / lets encrypt bruges til SSL-certifikater og nøgler udløber hver 3. måned. Dette vil forny certifikaterne for dit domæne og placere dem i den nødvendige mappe, så relaterede komponenter kan forbruges. Se vigtige filstier
- Gendan fra backup: Vil udløse mongodb og redis for at gendanne fra backupdata.
Indledende opsætning (mulighed 1)
Vælg mulighed 1. Initial setup
at begynde.
Når du er færdig, bør du se en succesmeddelelse. Du kan endda løbe docker ps
at se de komponenter spundet op. Mere information om komponenter nedenfor.
Tjenester
Tjenestenavn | Standard port | Beskrivelse |
---|---|---|
Web | 443 | Webgrænseflade til alle admin-interaktioner |
API | 4000 | Api-lag til abstrakte databaser |
Bree | Ingen | Baggrundsjob og opgaveløber |
SMTP | 465/587 | SMTP-server til udgående e-mail |
SMTP Bree | Ingen | SMTP baggrundsjob |
MX | 2525 | Mailudveksling til indgående e-mail og videresendelse af e-mail |
IMAP | 993/2993 | IMAP-server til indgående e-mail og postkassehåndtering |
POP3 | 995/2995 | POP3-server til indgående e-mail og postkassehåndtering |
SQLite | 3456 | SQLite-server til interaktioner med sqlite-database(r) |
SQLite Bree | Ingen | SQLite baggrundsjob |
CalDAV | 5000 | CalDAV-server til kalenderstyring |
MongoDB | 27017 | MongoDB-database til de fleste datahåndtering |
Redis | 6379 | Redis til caching og tilstandsstyring |
SQLite | Ingen | SQLite-database(r) til krypterede postkasser |
Vigtige filstier
Note: Værtssti nedenfor er i forhold til /root/forwardemail.net/self-hosting/
.
Komponent | Værtssti | Containersti |
---|---|---|
MongoDB | ./mongo-backups | /backups |
Redis | ./redis-data | /data |
Sqlite | ./sqlite-data | /mnt/{SQLITE_STORAGE_PATH} |
Env fil | ./.env | /app/.env |
SSL-certifikater/nøgler | ./ssl | /app/ssl/ |
Privat nøgle | ./ssl/privkey.pem | /app/ssl/privkey.pem |
Fuld kæde certifikat | ./ssl/fullchain.pem | /app/ssl/fullchain.pem |
CA-certifikater | ./ssl/cert.pem | /app/ssl/cert.pem |
DKIM privat nøgle | ./ssl/dkim.key | /app/ssl/dkim.key |
[!VIGTIG] Gem
.env
fil sikkert. Det er afgørende for genopretning i tilfælde af fejl. Du kan finde dette i/root/forwardemail.net/self-hosting/.env
.
Konfiguration
Indledende DNS-opsætning
Konfigurer de relevante DNS-poster i din valgte DNS-udbyder. Notér noget i parentes (<>
) er dynamisk og skal opdateres med din værdi.
Type | Navn | Tilfreds | TTL |
---|---|---|---|
A | "@", ".", eller blank | <ip_adresse> | auto |
CNAME | api | <domænenavn> | auto |
CNAME | caldav | <domænenavn> | auto |
CNAME | fe-studser | <domænenavn> | auto |
CNAME | imap | <domænenavn> | auto |
CNAME | mx | <domænenavn> | auto |
CNAME | pop3 | <domænenavn> | auto |
CNAME | smtp | <domænenavn> | auto |
MX | "@", ".", eller blank | mx.<domænenavn> (prioritet 0) | auto |
TXT | "@", ".", eller blank | "v=spf1 a -all" | auto |
Omvendt DNS/PTR-record
Reverse DNS (rDNS) eller reverse pointer records (PTR records) er afgørende for e-mail-servere, fordi de hjælper med at bekræfte legitimiteten af den server, der sender e-mailen. Hver cloud-udbyder gør dette forskelligt, så du bliver nødt til at slå op, hvordan du tilføjer "Omvendt DNS" for at kortlægge værten og IP-adressen til dets tilsvarende værtsnavn. Mest sandsynligt i netværksdelen af udbyderen.
Port 25 blokeret
Nogle internetudbydere og cloud-udbydere blokerer 25 for at undgå dårlige aktører. Du skal muligvis indsende en supportbillet for at åbne port 25 til SMTP/udgående e-mail.
Onboarding
-
Åbn landingssiden Naviger til https://<domænenavn>, og erstat <domænenavn> med det domæne, der er konfigureret i dine DNS-indstillinger. Du bør se landingssiden for Videresend e-mail.
-
Log ind og ombord på dit domæne
- Log ind med en gyldig e-mail og adgangskode.
- Indtast det domænenavn, du ønsker at konfigurere (dette skal matche DNS-konfigurationen).
- Følg vejledningen for at tilføje det nødvendige MX og TXT optegnelser til verifikation.
- Fuldfør opsætning
- Når du er verificeret, skal du gå til siden Aliaser for at oprette dit første alias.
- Konfigurer eventuelt SMTP til udgående e-mail i Domæneindstillinger. Dette kræver yderligere DNS-poster.
[!NOTE] Ingen information sendes uden for din server. Den selvhostede mulighed og den første konto er kun til admin-login og webvisning til at administrere domæner, aliaser og relaterede e-mail-konfigurationer.
Afprøvning
Oprettelse af dit første alias
- Naviger til siden Aliaser Åbn aliasadministrationssiden:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- Tilføj et nyt alias
- Klik Tilføj Alias (øverst til højre).
- Indtast aliasnavnet, og juster e-mail-indstillinger efter behov.
- (Valgfrit) Aktiver IMAP/POP3/CalDAV support ved at markere afkrydsningsfeltet.
- Klik Opret Alias.
- Indstil en adgangskode
- Klik Generer adgangskode at oprette en sikker adgangskode.
- Denne adgangskode kræves for at logge ind på din e-mail-klient.
- Konfigurer din e-mail-klient
- Brug en e-mail-klient som Thunderbird.
- Indtast aliasnavnet og den genererede adgangskode.
- Konfigurer IMAP og SMTP indstillinger i overensstemmelse hermed.
Indstillinger for e-mailserver
Brugernavn: <alias name>
Type | Værtsnavn | Havn | Forbindelsessikkerhed | Godkendelse |
---|---|---|---|---|
SMTP | smtp.<domænenavn> | 465 | SSL / TLS | Normal adgangskode |
IMAP | imap.<domænenavn> | 993 | SSL / TLS | Normal adgangskode |
Sender/modtager din første e-mail
Når du er konfigureret, bør du være i stand til at sende og modtage e-mail til din nyoprettede og selvhostede e-mailadresse!
Opretholdelse
How do I backup my data
Følg installere script og vælg option 2
i prompten.
How do I renew my certificates
Følg installere script og vælg option 3
i prompten.
How do I upgrade to the latest forward email code
Følg installere script og vælg option 4
i prompten.
How do I restore from a backup
Følg installere script og vælg option 6
i prompten.
Fejlfinding
Why is the certbot acme challenge failing
Den mest almindelige faldgrube er, at certbot / letsencrypt nogle gange vil anmode 2 udfordringer. Du skal være sikker på at tilføje BOTH txt optegnelser.
Eksempel: Du ser måske to udfordringer som denne: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"
Det er også muligt, at DNS-udbredelsen ikke er fuldført. Du kan bruge værktøjer som: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>
. Dette vil give dig en idé om, hvorvidt dine TXT-postændringer skal afspejles. Det er også muligt, at den lokale DNS-cache på din vært stadig bruger en gammel, forældet værdi eller ikke har opfanget de seneste ændringer.
En anden mulighed er at bruge de automatiske cerbot DNS-ændringer ved at indstille /root/.cloudflare.ini
fil med api-tokenet i din cloud-init / bruger-data ved indledende VPS-opsætning, eller opret denne fil og kør scriptet igen. Dette vil administrere DNS-ændringerne og udfordringsopdateringerne automatisk.
What is the basic auth username and password
Til selvhosting tilføjer vi en første gangs browser native authentication pop op med et simpelt brugernavn (admin
) og adgangskode (genereret tilfældigt ved indledende opsætning). Vi tilføjer bare dette som en beskyttelse, hvis automatisering/skrabere på en eller anden måde slår dig for først at tilmelde dig på weboplevelsen. Du kan finde denne adgangskode efter den første opsætning i din .env
fil under AUTH_BASIC_USERNAME
og AUTH_BASIC_PASSWORD
.
How do I know what is running
Du kan løbe docker ps
for at se alle de kørende containere, som bliver spundet op fra docker-compose-self-hosting.yml
fil. Du kan også løbe docker ps -a
for at se alt (inklusive beholdere, der ikke kører).
How do I know if something isn't running that should be
Du kan løbe docker ps -a
for at se alt (inklusive beholdere, der ikke kører). Du kan muligvis se en udgangslog eller note.
How do I find logs
Du kan få flere logs via docker logs -f <container_name>
. Hvis noget forlod, er det sandsynligvis relateret til .env
fil er konfigureret forkert.
I web-brugergrænsefladen kan du se /admin/emails
og /admin/logs
for udgående e-mail-logfiler og fejllogfiler.
Why are my outgoing emails timing out
Hvis du ser en meddelelse som Timeout for forbindelsen, når du opretter forbindelse til MX-serveren... så skal du muligvis kontrollere, om port 25 er blokeret. Det er almindeligt, at internetudbydere eller cloud-udbydere blokerer dette som standard, hvor du muligvis skal kontakte support/file en billet for at få åbnet dette.
What tool(s) should I use to test email configuration best practices and IP reputation
Tag et kig på vores FAQ her.
Brug din server-IP-adresse til at tjekke mod følgende websteder, hvis de er på en sortliste. Det er desværre ikke ualmindeligt, at almindelige cloud-udbydere har problemer med IP-omdømmet på grund af e-mail-spambrug. Hvis du ser din IP på en sortliste, anbefales det at skrue en ny server op og tjekke den nye IP-adresse.