Selvvært

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øb
  • DOMAIN - brugerdefineret domæne, der bruges til opsætning af selvhosting
  • AUTH_BASIC_USERNAME - brugernavn brugt i førstegangsopsætning for at beskytte webstedet
  • AUTH_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 via dns_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

TjenestenavnStandard portBeskrivelse
Web443Webgrænseflade til alle admin-interaktioner
API4000Api-lag til abstrakte databaser
BreeIngenBaggrundsjob og opgaveløber
SMTP465/587SMTP-server til udgående e-mail
SMTP BreeIngenSMTP baggrundsjob
MX2525Mailudveksling til indgående e-mail og videresendelse af e-mail
IMAP993/2993IMAP-server til indgående e-mail og postkassehåndtering
POP3995/2995POP3-server til indgående e-mail og postkassehåndtering
SQLite3456SQLite-server til interaktioner med sqlite-database(r)
SQLite BreeIngenSQLite baggrundsjob
CalDAV5000CalDAV-server til kalenderstyring
MongoDB27017MongoDB-database til de fleste datahåndtering
Redis6379Redis til caching og tilstandsstyring
SQLiteIngenSQLite-database(r) til krypterede postkasser

Vigtige filstier

Note: Værtssti nedenfor er i forhold til /root/forwardemail.net/self-hosting/.

KomponentVærtsstiContainersti
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.

TypeNavnTilfredsTTL
A"@", ".", eller blank<ip_adresse>auto
CNAMEapi<domænenavn>auto
CNAMEcaldav<domænenavn>auto
CNAMEfe-studser<domænenavn>auto
CNAMEimap<domænenavn>auto
CNAMEmx<domænenavn>auto
CNAMEpop3<domænenavn>auto
CNAMEsmtp<domænenavn>auto
MX"@", ".", eller blankmx.<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

  1. Å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.

  2. 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.
  1. 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

  1. Naviger til siden Aliaser Åbn aliasadministrationssiden:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
  1. 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.
  1. Indstil en adgangskode
  • Klik Generer adgangskode at oprette en sikker adgangskode.
  • Denne adgangskode kræves for at logge ind på din e-mail-klient.
  1. 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>

TypeVærtsnavnHavnForbindelsessikkerhedGodkendelse
SMTPsmtp.<domænenavn>465SSL / TLSNormal adgangskode
IMAPimap.<domænenavn>993SSL / TLSNormal 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.

mxtoolbox

google postmaster tools

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.

spamhus

spammet