Itse isännöimä
Asennus
Vaatimukset
Ennen kuin suoritat asennusohjelman, varmista, että sinulla on seuraavat asiat:
- Käyttöjärjestelmä: Linux-pohjainen palvelin (esim. Ubuntu 22.04+).
- Resurssit: 1 vCPU ja 2 Gt RAM-muistia
- Root Access: Järjestelmänvalvojan oikeudet komentojen suorittamiseen.
- Verkkotunnus: Muokattu verkkotunnus, joka on valmis DNS-määritykseen.
- Puhdas IP: Varmista, että palvelimellasi on puhdas IP-osoite, jolla ei ole aiempaa roskapostimainetta, tarkistamalla mustat listat. Lisätietoja tässä.
[!KÄRKI] Katso luettelomme mahtavia sähköpostipalvelintarjoajia
Cloud-init / User-data
Useimmat pilvipalvelun toimittajat tukevat pilvi-init-kokoonpanoa, kun virtuaalinen yksityinen palvelin (VPS) on käytössä. Tämä on loistava tapa asettaa tiedostoja ja ympäristömuuttujia etukäteen käytettäväksi komentosarjojen alkuasetuslogiikassa, mikä ohittaa tarpeen pyytää lisätietoa komentosarjan ollessa käynnissä.
Vaihtoehdot
EMAIL
-EMAIL
ympäristömuuttuja, jota käytetään certbotin vanhenemismuistutuksiinDOMAIN
- mukautettu verkkotunnus, jota käytetään itseisännöintiinAUTH_BASIC_USERNAME
- Käyttäjätunnus, jota käytettiin ensimmäisellä asennuksella sivuston suojaamiseksiAUTH_BASIC_PASSWORD
- passward, jota käytetään ensimmäisen asennuksen yhteydessä sivuston suojaamiseen/root/.cloudflare.ini
- (Vain Cloudflare-käyttäjät)cloudflare-määritystiedosto, jota certbot käyttää DNS-määrityksessä. Se edellyttää, että asetat API-tunnuksesi kauttadns_cloudflare_api_token
. Lue lisää tässä.
Esimerkki:
#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
Asentaa
Lataa ja suorita asennuskomentosarja suorittamalla seuraava komento palvelimellasi:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Debug asennusskripti
Lisää DEBUG=true asennusskriptin eteen monisanaista tulosta varten:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Kehotteet
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Alkuasetus: Lataa uusin edelleenlähetyskoodi, määritä ympäristö, pyydä mukautettua verkkotunnustasi ja määritä kaikki tarvittavat varmenteet, avaimet ja salaisuudet.
- Asenna varmuuskopio: Asettaa cronin varmuuskopioimaan mongoDB:n ja käyttää uudelleen S3-yhteensopivaa tallennustilaa turvalliseen etätallennustilaan. Erikseen sqlite varmuuskopioidaan sisäänkirjautumisen yhteydessä, jos suojattuja, salattuja varmuuskopioita koskevia muutoksia tehdään.
- Asenna päivitys: Määritä cron etsimään iltaisin päivityksiä, jotka rakentavat ja käynnistävät infrastruktuurikomponentit turvallisesti uudelleen.
- Uusia sertifikaatit: Certbot / lets encrypt käytetään SSL-varmenteissa ja avaimet vanhenevat 3 kuukauden välein. Tämä uusii verkkotunnuksesi varmenteet ja sijoittaa ne tarvittavaan kansioon liittyvien komponenttien kulutukseen. Katso tärkeitä tiedostopolkuja
- Palauta varmuuskopiosta: laukaisee mongodb ja redis palauttaakseen varmuuskopiotiedoista.
Alkuasetukset (vaihtoehto 1)
Valitse vaihtoehto 1. Initial setup
aloittaaksesi.
Kun olet valmis, sinun pitäisi nähdä onnistumisviesti. Voit jopa juosta docker ps
nähdä the komponentit pyörivät ylös. Lisätietoa komponenteista alla.
Palvelut
Palvelun nimi | Oletusportti | Kuvaus |
---|---|---|
Web | 443 | Verkkokäyttöliittymä kaikkeen järjestelmänvalvojan vuorovaikutukseen |
API | 4000 | Api-kerros abstrakteihin tietokantoihin |
Bree | Ei mitään | Taustatyön ja tehtävien juoksija |
SMTP | 465/587 | SMTP-palvelin lähteville sähköpostiviesteille |
SMTP Bree | Ei mitään | SMTP-taustatyö |
MX | 2525 | Sähköpostin vaihto saapuvaan sähköpostiin ja sähköpostin edelleenlähetykseen |
IMAP | 993/2993 | IMAP-palvelin saapuvan sähköpostin ja postilaatikon hallintaan |
POP3 | 995/2995 | POP3-palvelin saapuvan sähköpostin ja postilaatikon hallintaan |
SQLite | 3456 | SQLite-palvelin vuorovaikutukseen sqlite-tietokantojen kanssa |
SQLite Bree | Ei mitään | SQLite-taustatyö |
CalDAV | 5000 | CalDAV-palvelin kalenterinhallintaan |
MongoDB | 27017 | MongoDB-tietokanta useimpiin tiedonhallintaan |
Redis | 6379 | Redis välimuistiin ja tilanhallintaan |
SQLite | Ei mitään | SQLite-tietokanta(t) salatuille postilaatikoille |
Tärkeitä tiedostopolkuja
Huomautus: Isäntäpolku alla on suhteessa /root/forwardemail.net/self-hosting/
.
Komponentti | Isäntäpolku | Kontin polku |
---|---|---|
MongoDB | ./mongo-backups | /backups |
Redis | ./redis-data | /data |
Sqlite | ./sqlite-data | /mnt/{SQLITE_STORAGE_PATH} |
Env-tiedosto | ./.env | /app/.env |
SSL-sertifikaatit/avaimet | ./ssl | /app/ssl/ |
Yksityinen avain | ./ssl/privkey.pem | /app/ssl/privkey.pem |
Koko ketjun sertifikaatti | ./ssl/fullchain.pem | /app/ssl/fullchain.pem |
CA-varmenteita | ./ssl/cert.pem | /app/ssl/cert.pem |
DKIM yksityinen avain | ./ssl/dkim.key | /app/ssl/dkim.key |
[!TÄRKEÄÄ] Tallenna
.env
tiedosto turvallisesti. Se on kriittinen palautumiselle epäonnistumisen sattuessa. Löydät tämän osoitteesta/root/forwardemail.net/self-hosting/.env
.
Kokoonpano
Alkuperäinen DNS-asetus
Määritä sopivat DNS-tietueet valitsemassasi DNS-palveluntarjoajassa. Älä merkitse mitään suluissa (<>
) on dynaaminen ja se on päivitettävä arvosi mukaan.
Tyyppi | Nimi | Sisältö | TTL |
---|---|---|---|
A | "@", "." tai tyhjä | <ip_osoite> | auto |
CNAME | api | <verkkotunnuksen_nimi> | auto |
CNAME | caldav | <verkkotunnuksen_nimi> | auto |
CNAME | fe-pomppii | <verkkotunnuksen_nimi> | auto |
CNAME | imap | <verkkotunnuksen_nimi> | auto |
CNAME | mx | <verkkotunnuksen_nimi> | auto |
CNAME | pop3 | <verkkotunnuksen_nimi> | auto |
CNAME | smtp | <verkkotunnuksen_nimi> | auto |
MX | "@", "." tai tyhjä | mx.<verkkotunnuksen_nimi> (prioriteetti 0) | auto |
TXT | "@", "." tai tyhjä | "v=spf1 a -all" | auto |
Käänteinen DNS / PTR-tietue
Reverse DNS (rDNS) tai käänteiset osoitintietueet (PTR-tietueet) ovat tärkeitä sähköpostipalvelimille, koska ne auttavat varmistamaan sähköpostin lähettävän palvelimen laillisuuden. Jokainen pilvipalveluntarjoaja tekee tämän eri tavalla, joten sinun on etsittävä, kuinka "käänteinen DNS" lisätään, jotta isäntä ja IP voidaan yhdistää sitä vastaavaan isäntänimeen. Todennäköisesti palveluntarjoajan verkko-osiossa.
Portti 25 estetty
Jotkut Internet-palveluntarjoajat ja pilvipalveluntarjoajat estävät 25:n huonojen toimijoiden välttämiseksi. Saatat joutua lähettämään tukipyynnön avataksesi portin 25 SMTP:lle / lähtevälle sähköpostille.
Käyttöönotto
-
Avaa aloitussivu Siirry kohtaan https://<domain_name> ja korvaa <domain_name> DNS-asetuksissa määritetyllä toimialueella. Sinun pitäisi nähdä Lähetä sähköpostin aloitussivu.
-
Kirjaudu sisään ja liity verkkotunnukseesi
- Kirjaudu sisään voimassa olevalla sähköpostiosoitteella ja salasanalla.
- Syötä verkkotunnuksen nimi, jonka haluat määrittää (tämän on vastattava DNS-kokoonpanoa).
- Lisää tarvittava seuraamalla ohjeita MX ja TXT tietueita todentamista varten.
- Viimeistele asennus
- Kun olet vahvistanut, siirry Alias-sivulle luodaksesi ensimmäinen aliaksesi.
- Valinnaisesti määritä SMTP lähtevälle sähköpostille in Verkkotunnuksen asetukset. Tämä vaatii lisää DNS-tietueita.
[!HUOM] Palvelimesi ulkopuolelle ei lähetetä tietoja. Itseisännöity vaihtoehto ja alkuperäinen tili on tarkoitettu vain järjestelmänvalvojan kirjautumiseen ja verkkonäkymään verkkotunnuksien, aliasten ja niihin liittyvien sähköpostimäärittelyjen hallintaan.
Testaus
Ensimmäisen aliaksen luominen
- Siirry Alias-sivulle Avaa aliaksen hallintasivu:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- Lisää uusi alias
- Napsauta Lisää Alias (oikea yläkulma).
- Anna aliaksen nimi ja säädä sähköpostiasetuksia tarpeen mukaan.
- (Valinnainen) Ota käyttöön IMAP/POP3/CalDAV tukea valitsemalla valintaruutu.
- Napsauta Luo alias.
- Aseta salasana
- Napsauta Luo salasana luodaksesi suojatun salasanan.
- Tätä salasanaa tarvitaan kirjautuessasi sähköpostiohjelmaasi.
- Määritä sähköpostiohjelmasi
- Käytä sähköpostiohjelmaa, kuten Thunderbird.
- Anna aliaksen nimi ja luotu salasana.
- Konfiguroi IMAP ja SMTP asetukset vastaavasti.
Sähköpostipalvelimen asetukset
Käyttäjätunnus: <alias name>
Tyyppi | Isäntänimi | Portti | Yhteyden suojaus | Todennus |
---|---|---|---|---|
SMTP | smtp.<verkkotunnuksen_nimi> | 465 | SSL / TLS | Normaali salasana |
IMAP | imap.<verkkotunnuksen_nimi> | 993 | SSL / TLS | Normaali salasana |
Ensimmäisen sähköpostin lähettäminen / vastaanottaminen
Kun olet määrittänyt, sinun pitäisi pystyä lähettämään ja vastaanottamaan sähköpostia äskettäin luotuun ja itse isännöityyn sähköpostiosoitteeseesi!
Huolto
How do I backup my data
Seuraa asenna komentosarja ja valita option 2
kehotteessa.
How do I renew my certificates
Seuraa asenna komentosarja ja valita option 3
kehotteessa.
How do I upgrade to the latest forward email code
Seuraa asenna komentosarja ja valita option 4
kehotteessa.
How do I restore from a backup
Seuraa asenna komentosarja ja valita option 6
kehotteessa.
Vianetsintä
Why is the certbot acme challenge failing
Yleisin ongelma on se, että certbot / letsencrypt pyytää joskus 2 haasteita. Sinun on ehdottomasti lisättävä BOTH txt-tietueita.
Esimerkki: Saatat nähdä kaksi tällaista haastetta: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"
On myös mahdollista, että DNS-lisäys ei ole valmis. Voit käyttää työkaluja, kuten: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>
. Tämä antaa sinulle käsityksen, pitäisikö TXT-tietueen muutosten näkyä. On myös mahdollista, että isäntäsi paikallinen DNS-välimuisti käyttää edelleen vanhaa, vanhentunutta arvoa tai se ei ole havainnut viimeaikaisia muutoksia.
Toinen vaihtoehto on käyttää automaattisia cerbot DNS -muutoksia asettamalla /root/.cloudflare.ini
tiedosto api-tunnuksella pilvi-init-/käyttäjätiedoissasi VPS:n alkuasennuksessa tai luo tämä tiedosto ja suorita komentosarja uudelleen. Tämä hallitsee DNS-muutokset ja haastaa päivitykset automaattisesti.
What is the basic auth username and password
Itsepalvelua varten lisäämme ensimmäisen selaimen alkuperäisen todennusponnahdusikkunan yksinkertaisella käyttäjätunnuksella (admin
) ja salasana (satunnaisesti luotu alkuasennuksen yhteydessä). Lisäämme tämän vain suojaksi siltä varalta, että automaatio / kaavin päihittää sinut kirjautuessasi ensin verkkokokemukseen. Löydät tämän salasanan alkuperäisen asennuksen jälkeen .env
tiedosto alla AUTH_BASIC_USERNAME
ja AUTH_BASIC_PASSWORD
.
How do I know what is running
Voit juosta docker ps
nähdäksesi kaikki käynnissä olevat säiliöt, joita kehrätään ylös docker-compose-self-hosting.yml
tiedosto. Voit myös juosta docker ps -a
nähdäksesi kaiken (mukaan lukien säilöt, jotka eivät ole käynnissä).
How do I know if something isn't running that should be
Voit juosta docker ps -a
nähdäksesi kaiken (mukaan lukien säilöt, jotka eivät ole käynnissä). Saatat nähdä poistumislokin tai huomautuksen.
How do I find logs
Voit saada lisää lokeja kautta docker logs -f <container_name>
. Jos jokin poistui, se todennäköisesti liittyy .env
tiedosto on määritetty väärin.
Verkkokäyttöliittymässä voit tarkastella /admin/emails
ja /admin/logs
lähtevän sähköpostin lokeille ja virhelokeille.
Why are my outgoing emails timing out
Jos näet viestin, kuten Yhteys aikakatkaistiin, kun muodostat yhteyden MX-palvelimeen..., sinun on ehkä tarkistettava, onko portti 25 tukossa. On yleistä, että Internet-palveluntarjoajat tai pilvipalveluntarjoajat estävät tämän oletusarvoisesti, jolloin saatat joutua ottamaan yhteyttä tukeen / jättämään lippusi tämän avaamiseksi.
What tool(s) should I use to test email configuration best practices and IP reputation
Katso meidän FAQ täällä.
Käytä palvelimesi IP-osoitetta tarkistaaksesi seuraavat sivustot, ovatko ne mustalla listalla. Valitettavasti ei ole harvinaista, että yleisillä pilvipalveluntarjoajilla on IP-maineongelmia sähköpostin roskapostin käytössä. Jos näet IP-osoitteesi mustalla listalla, on suositeltavaa käynnistää uusi palvelin ja tarkistaa uusi IP-osoite.