Zelf gehost
Installatie
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 certbotDOMAIN
- aangepast domein gebruikt voor self-hosting-installatieAUTH_BASIC_USERNAME
- gebruikersnaam die bij de eerste installatie is gebruikt om de site te beschermenAUTH_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 viadns_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
Servicenaam | Standaardpoort | Omschrijving |
---|---|---|
Web | 443 | Webinterface voor alle beheerdersinteracties |
API | 4000 | API-laag voor het abstraheren van databases |
Bree | Geen | Achtergrondtaak en taakrunner |
SMTP | 465/587 | SMTP-server voor uitgaande e-mail |
SMTP-Bree | Geen | SMTP-achtergrondtaak |
MX | 2525 | Mailuitwisseling voor inkomende e-mail en e-maildoorsturing |
IMAP | 993/2993 | IMAP-server voor inkomende e-mail en mailboxbeheer |
POP3 | 995/2995 | POP3-server voor inkomende e-mail en mailboxbeheer |
SQLiet | 3456 | SQLite-server voor interacties met SQLite-database(s) |
SQLite Bree | Geen | SQLite achtergrondtaak |
CalDAV | 5000 | CalDAV-server voor agendabeheer |
MongoDB | 27017 | MongoDB-database voor de meeste gegevensbeheer |
Opnieuw | 6379 | Redis voor caching en statusbeheer |
SQLiet | Geen | SQLite-database(s) voor gecodeerde mailboxen |
Belangrijke bestandspaden
Opmerking: Hostpad hieronder is relatief aan /root/forwardemail.net/self-hosting/
.
Onderdeel | Hostpad | Containerpad |
---|---|---|
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.
Type | Naam | Inhoud | TTL |
---|---|---|---|
A | "@", ".", of blanco | <ip_adres> | auto |
CNAME | api | <domeinnaam> | auto |
CNAME | caldav | <domeinnaam> | auto |
CNAME | fe-stuitert | <domeinnaam> | auto |
CNAME | afbeelding | <domeinnaam> | auto |
CNAME | mx | <domeinnaam> | auto |
CNAME | pop3 | <domeinnaam> | auto |
CNAME | smtp | <domeinnaam> | auto |
MX | "@", ".", of blanco | mx.<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
-
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.
-
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.
- 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
- Navigeer naar de Aliassenpagina Open de aliasbeheerpagina:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- 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.
- 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.
- 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>
Type | Hostnaam | Haven | Verbindingsbeveiliging | Authenticatie |
---|---|---|---|---|
SMTP | smtp.<domeinnaam> | 465 | SSL / TLS | Normaal wachtwoord |
IMAP | imap.<domeinnaam> | 993 | SSL / TLS | Normaal 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.
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.