Zelf gehost

Vereisten

Voordat u het installatiescript uitvoert, moet u ervoor zorgen dat u over het volgende beschikt:

  • Besturingssysteem: Een Linux-gebaseerde server (bijv. Ubuntu 22.04+).
  • Middelen: 1 vCPU en 2 GB RAM
  • Root-toegang: Beheerdersrechten om opdrachten uit te voeren.
  • Domeinnaam: Een aangepast domein dat klaar is voor DNS-configuratie.
  • Schone IP: Zorg ervoor dat uw server een schoon IP-adres heeft zonder eerdere spamreputatie door zwarte lijsten te controleren. Meer info hier.

[!TIP] Bekijk onze lijst met geweldige mailserverproviders

Cloud-init / Gebruikersgegevens

De meeste cloudleveranciers ondersteunen een cloud-init-configuratie voor wanneer de virtual private server (VPS) wordt ingericht. Dit is een geweldige manier om vooraf een aantal bestanden en omgevingsvariabelen in te stellen voor gebruik door de initiële installatielogica van de scripts, waardoor de noodzaak om te vragen om aanvullende informatie terwijl het script wordt uitgevoerd, wordt omzeild.

Opties

  • EMAIL - EMAIL omgevingsvariabele die wordt gebruikt voor herinneringen aan het verlopen van certbot
  • DOMAIN - aangepast domein gebruikt voor self-hosting-installatie
  • AUTH_BASIC_USERNAME - gebruikersnaam die bij de eerste installatie is gebruikt om de site te beschermen
  • AUTH_BASIC_PASSWORD - wachtwoord dat bij de eerste installatie wordt gebruikt om de site te beschermen
  • /root/.cloudflare.ini - (Alleen voor Cloudflare-gebruikers)cloudflare configuratiebestand gebruikt door certbot voor DNS-configuratie. Hiervoor moet u uw API-token instellen via dns_cloudflare_api_token. Lees meer hier.

Voorbeeld:

#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

Installeren

Voer de volgende opdracht uit op uw server om het installatiescript te downloaden en uit te voeren:

bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)

Debug-installatiescript

Voeg DEBUG=true toe voor het installatiescript voor uitgebreide uitvoer:

DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)

Aanwijzingen

1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
  • Eerste installatie: Download de nieuwste doorstuurcode voor e-mails, configureer de omgeving, vraag om uw aangepaste domein en stel alle benodigde certificaten, sleutels en geheimen in.
  • Back-up instellen: Zal een cron instellen om mongoDB en redis te back-uppen met behulp van een S3-compatibele opslag voor veilige, externe opslag. Afzonderlijk zal sqlite worden geback-upt bij het inloggen als er wijzigingen zijn voor veilige, gecodeerde back-ups.
  • Installatie-upgrade: Stel een cron in die zoekt naar nachtelijke updates waarmee infrastructuurcomponenten veilig opnieuw worden opgebouwd en opnieuw worden opgestart.
  • Certificaten vernieuwen: Certbot / lets encrypt wordt gebruikt voor SSL-certificaten en sleutels verlopen elke 3 maanden. Dit zal de certificaten voor uw domein vernieuwen en ze in de benodigde map plaatsen zodat gerelateerde componenten deze kunnen gebruiken. Zie belangrijke bestandspaden
  • Herstellen van back-up: Zorgt ervoor dat mongodb en redis gegevens herstellen vanaf een back-up.

Eerste installatie (optie 1)

Optie kiezen 1. Initial setup om te beginnen.

Zodra het voltooid is, zou je een succesbericht moeten zien. Je kunt zelfs docker ps zien de componenten gesponnen. Meer informatie over componenten hieronder.

Diensten

ServicenaamStandaardpoortOmschrijving
Web443Webinterface voor alle beheerdersinteracties
API4000API-laag voor het abstraheren van databases
BreeGeenAchtergrondtaak en taakrunner
SMTP465/587SMTP-server voor uitgaande e-mail
SMTP-BreeGeenSMTP-achtergrondtaak
MX2525Mailuitwisseling voor inkomende e-mail en e-maildoorsturing
IMAP993/2993IMAP-server voor inkomende e-mail en mailboxbeheer
POP3995/2995POP3-server voor inkomende e-mail en mailboxbeheer
SQLiet3456SQLite-server voor interacties met SQLite-database(s)
SQLite BreeGeenSQLite achtergrondtaak
CalDAV5000CalDAV-server voor agendabeheer
MongoDB27017MongoDB-database voor de meeste gegevensbeheer
Opnieuw6379Redis voor caching en statusbeheer
SQLietGeenSQLite-database(s) voor gecodeerde mailboxen

Belangrijke bestandspaden

Opmerking: Hostpad hieronder is relatief aan /root/forwardemail.net/self-hosting/.

OnderdeelHostpadContainerpad
MongoDB./mongo-backups/backups
Opnieuw./redis-data/data
Sqlite./sqlite-data/mnt/{SQLITE_STORAGE_PATH}
Env-bestand./.env/app/.env
SSL-certificaten/sleutels./ssl/app/ssl/
Privésleutel./ssl/privkey.pem/app/ssl/privkey.pem
Certificaat voor volledige keten./ssl/fullchain.pem/app/ssl/fullchain.pem
Gecertificeerde CA's./ssl/cert.pem/app/ssl/cert.pem
DKIM-privésleutel./ssl/dkim.key/app/ssl/dkim.key

[!BELANGRIJK] Bewaar de .env bestand veilig. Het is cruciaal voor herstel in geval van een storing. U kunt dit vinden in /root/forwardemail.net/self-hosting/.env.

Configuratie

Initiële DNS-instelling

Configureer de juiste DNS-records in uw DNS-provider naar keuze. Let op alles tussen haakjes (<>) is dynamisch en moet worden bijgewerkt met uw waarde.

TypeNaamInhoudTTL
A"@", ".", of blanco<ip_adres>auto
CNAMEapi<domeinnaam>auto
CNAMEcaldav<domeinnaam>auto
CNAMEfe-stuitert<domeinnaam>auto
CNAMEafbeelding<domeinnaam>auto
CNAMEmx<domeinnaam>auto
CNAMEpop3<domeinnaam>auto
CNAMEsmtp<domeinnaam>auto
MX"@", ".", of blancomx.<domeinnaam> (prioriteit 0)auto
TXT"@", ".", of blanco"v=spf1 a -all"auto
Omgekeerde DNS/PTR-record

Reverse DNS (rDNS) of reverse pointer records (PTR records) zijn essentieel voor e-mailservers omdat ze helpen de legitimiteit van de server die de e-mail verzendt te verifiëren. Elke cloudprovider doet dit anders, dus u zult moeten opzoeken hoe u "Reverse DNS" kunt toevoegen om de host en IP toe te wijzen aan de bijbehorende hostnaam. Waarschijnlijk in het netwerkgedeelte van de provider.

Poort 25 geblokkeerd

Sommige ISP's en cloudproviders blokkeren 25 om kwaadwillenden te vermijden. Mogelijk moet u een supportticket indienen om poort 25 te openen voor SMTP/uitgaande e-mail.

Aan boord nemen

  1. Open de landingspagina Ga naar https://<domeinnaam> en vervang <domeinnaam> door het domein dat is geconfigureerd in uw DNS-instellingen. U zou de landingspagina Forward Email moeten zien.

  2. Meld u aan en registreer uw domein

  • Meld u aan met een geldig e-mailadres en wachtwoord.
  • Voer de domeinnaam in die u wilt instellen (deze moet overeenkomen met de DNS-configuratie).
  • Volg de aanwijzingen om de vereiste gegevens toe te voegen MX en TXT gegevens ter verificatie.
  1. Voltooi de installatie
  • Nadat u uw identiteit hebt geverifieerd, gaat u naar de pagina Aliassen om uw eerste alias aan te maken.
  • Optioneel, configureren SMTP voor uitgaande e-mail in de DomeininstellingenHiervoor zijn aanvullende DNS-records nodig.

[!NOTE] Er wordt geen informatie buiten uw server verzonden. De self-hosted optie en het initiële account zijn alleen voor de admin-login en webweergave om domeinen, aliassen en gerelateerde e-mailconfiguraties te beheren.

Testen

Uw eerste alias aanmaken

  1. Navigeer naar de Aliassenpagina Open de aliasbeheerpagina:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
  1. Een nieuwe alias toevoegen
  • Klik Alias toevoegen (rechtsboven).
  • Voer de aliasnaam in en pas indien nodig de e-mailinstellingen aan.
  • (Optioneel) Inschakelen IMAP/POP3/CalDAV ondersteuning door het selectievakje aan te vinken.
  • Klik Alias aanmaken.
  1. Stel een wachtwoord in
  • Klik Genereer wachtwoord om een veilig wachtwoord te creëren.
  • Dit wachtwoord is nodig om in te loggen op uw e-mailclient.
  1. Configureer uw e-mailclient
  • Gebruik een e-mailclient zoals Thunderbird.
  • Voer de aliasnaam en het gegenereerde wachtwoord in.
  • Configureer de IMAP en SMTP instellingen dienovereenkomstig.
E-mailserverinstellingen

Gebruikersnaam: <alias name>

TypeHostnaamHavenVerbindingsbeveiligingAuthenticatie
SMTPsmtp.<domeinnaam>465SSL / TLSNormaal wachtwoord
IMAPimap.<domeinnaam>993SSL / TLSNormaal wachtwoord

Uw eerste e-mail verzenden/ontvangen

Nadat u het hebt geconfigureerd, kunt u e-mails versturen en ontvangen naar uw nieuwe en zelf gehoste e-mailadres!

Onderhoud

How do I backup my data

Volg de installatie script en kies option 2 in de opdrachtprompt.

How do I renew my certificates

Volg de installatie script en kies option 3 in de opdrachtprompt.

How do I upgrade to the latest forward email code

Volg de installatie script en kies option 4 in de opdrachtprompt.

How do I restore from a backup

Volg de installatie script en kies option 6 in de opdrachtprompt.

Probleemoplossing

Why is the certbot acme challenge failing

De meest voorkomende valkuil is dat certbot/letsencrypt soms om een wachtwoord vraagt 2 uitdagingen. Je moet er zeker van zijn dat je BOTH txt-bestanden.

Voorbeeld: U ziet mogelijk twee uitdagingen zoals deze: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"

Het is ook mogelijk dat DNS-propagatie niet is voltooid. U kunt hulpmiddelen gebruiken zoals: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>. Dit geeft u een idee of uw TXT-recordwijzigingen moeten worden weerspiegeld. Het is ook mogelijk dat de lokale DNS-cache op uw host nog steeds een oude, verouderde waarde gebruikt of de recente wijzigingen niet heeft opgepikt.

Een andere optie is om de geautomatiseerde DNS-wijzigingen van Cerbot te gebruiken door de /root/.cloudflare.ini bestand met de api-token in uw cloud-init / user-data bij de eerste VPS-installatie of maak dit bestand en voer het script opnieuw uit. Dit beheert de DNS-wijzigingen en challenge-updates automatisch.

What is the basic auth username and password

Voor self-hosting voegen we een eerste browser-native authenticatie pop-up toe met een eenvoudige gebruikersnaam (admin) en wachtwoord (willekeurig gegenereerd bij de eerste installatie). We voegen dit alleen toe als bescherming voor het geval dat automatisering/scrapers u op de een of andere manier te snel af zijn bij uw eerste aanmelding op de webervaring. U kunt dit wachtwoord na de eerste installatie vinden in uw .env bestand onder AUTH_BASIC_USERNAME en AUTH_BASIC_PASSWORD.

How do I know what is running

Je kan lopen docker ps om alle draaiende containers te zien die worden opgestart vanaf de docker-compose-self-hosting.yml bestand. U kunt ook uitvoeren docker ps -a om alles te zien (inclusief containers die niet actief zijn).

How do I know if something isn't running that should be

Je kan lopen docker ps -a om alles te zien (inclusief containers die niet actief zijn). Mogelijk ziet u een exit-logboek of notitie.

How do I find logs

U kunt meer logs krijgen via docker logs -f <container_name>. Als er iets is uitgekomen, is het waarschijnlijk gerelateerd aan de .env bestand is onjuist geconfigureerd.

Binnen de web-UI kunt u bekijken /admin/emails en /admin/logs voor respectievelijk uitgaande e-maillogboeken en foutlogboeken.

Why are my outgoing emails timing out

Als u een bericht ziet zoals Connection timed out when connecting to MX server... dan moet u mogelijk controleren of poort 25 is geblokkeerd. Het is gebruikelijk dat ISP's of cloudproviders dit standaard blokkeren, waarbij u mogelijk contact moet opnemen met support / een ticket moet indienen om dit te openen.

What tool(s) should I use to test email configuration best practices and IP reputation

Bekijk onze FAQ hier.

mxtoolbox

Google Postmaster-hulpprogramma's

Gebruik het IP-adres van uw server om te controleren of de volgende sites op een zwarte lijst staan. Helaas is het niet ongewoon dat veelvoorkomende cloudproviders problemen hebben met de reputatie van hun IP vanwege het gebruik van e-mailspam. Als u uw IP op een zwarte lijst ziet staan, is het raadzaam om een nieuwe server op te starten en het nieuwe IP-adres te controleren.

spamhuis

gespamd