Itse isännöimä

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 vanhenemismuistutuksiin
  • DOMAIN - mukautettu verkkotunnus, jota käytetään itseisännöintiin
  • AUTH_BASIC_USERNAME - Käyttäjätunnus, jota käytettiin ensimmäisellä asennuksella sivuston suojaamiseksi
  • AUTH_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 kautta dns_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 nimiOletusporttiKuvaus
Web443Verkkokäyttöliittymä kaikkeen järjestelmänvalvojan vuorovaikutukseen
API4000Api-kerros abstrakteihin tietokantoihin
BreeEi mitäänTaustatyön ja tehtävien juoksija
SMTP465/587SMTP-palvelin lähteville sähköpostiviesteille
SMTP BreeEi mitäänSMTP-taustatyö
MX2525Sähköpostin vaihto saapuvaan sähköpostiin ja sähköpostin edelleenlähetykseen
IMAP993/2993IMAP-palvelin saapuvan sähköpostin ja postilaatikon hallintaan
POP3995/2995POP3-palvelin saapuvan sähköpostin ja postilaatikon hallintaan
SQLite3456SQLite-palvelin vuorovaikutukseen sqlite-tietokantojen kanssa
SQLite BreeEi mitäänSQLite-taustatyö
CalDAV5000CalDAV-palvelin kalenterinhallintaan
MongoDB27017MongoDB-tietokanta useimpiin tiedonhallintaan
Redis6379Redis välimuistiin ja tilanhallintaan
SQLiteEi mitäänSQLite-tietokanta(t) salatuille postilaatikoille

Tärkeitä tiedostopolkuja

Huomautus: Isäntäpolku alla on suhteessa /root/forwardemail.net/self-hosting/.

KomponenttiIsäntäpolkuKontin 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.

TyyppiNimiSisältöTTL
A"@", "." tai tyhjä<ip_osoite>auto
CNAMEapi<verkkotunnuksen_nimi>auto
CNAMEcaldav<verkkotunnuksen_nimi>auto
CNAMEfe-pomppii<verkkotunnuksen_nimi>auto
CNAMEimap<verkkotunnuksen_nimi>auto
CNAMEmx<verkkotunnuksen_nimi>auto
CNAMEpop3<verkkotunnuksen_nimi>auto
CNAMEsmtp<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

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

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

  1. Siirry Alias-sivulle Avaa aliaksen hallintasivu:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
  1. 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.
  1. Aseta salasana
  • Napsauta Luo salasana luodaksesi suojatun salasanan.
  • Tätä salasanaa tarvitaan kirjautuessasi sähköpostiohjelmaasi.
  1. 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>

TyyppiIsäntänimiPorttiYhteyden suojausTodennus
SMTPsmtp.<verkkotunnuksen_nimi>465SSL / TLSNormaali salasana
IMAPimap.<verkkotunnuksen_nimi>993SSL / TLSNormaali 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ä.

mxtoolbox

google postmaster työkalut

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.

spamhaus

roskapostia