Samodzielnie hostowane
Instalacja
Wymagania
Przed uruchomieniem skryptu instalacyjnego upewnij się, że masz następujące elementy:
- System operacyjny:Serwer oparty na systemie Linux (np. Ubuntu 22.04+).
- Zasoby: 1 vCPU i 2 GB pamięci RAM
- Dostęp do roota:Uprawnienia administracyjne do wykonywania poleceń.
- Nazwa domeny:Niestandardowa domena gotowa do konfiguracji DNS.
- Wyczyść IP: Upewnij się, że Twój serwer ma czysty adres IP bez wcześniejszej reputacji spamu, sprawdzając czarne listy. Więcej informacji Tutaj.
[!TIP] Zobacz naszą listę niesamowici dostawcy serwerów pocztowych
Cloud-init / Dane użytkownika
Większość dostawców chmury obsługuje konfigurację cloud-init na czas, gdy wirtualny serwer prywatny (VPS) jest dostarczany. To świetny sposób na wcześniejsze ustawienie niektórych plików i zmiennych środowiskowych do wykorzystania przez początkową logikę konfiguracji skryptów, co ominie potrzebę wyświetlania monitu podczas działania skryptu w celu uzyskania dodatkowych informacji.
Opcje
EMAIL
-EMAIL
zmienna środowiskowa używana do przypomnień o wygaśnięciu certbotDOMAIN
- domena niestandardowa używana do konfiguracji samodzielnego hostinguAUTH_BASIC_USERNAME
- nazwa użytkownika używana przy pierwszej konfiguracji w celu ochrony witrynyAUTH_BASIC_PASSWORD
- passward używany przy pierwszej konfiguracji w celu ochrony witryny/root/.cloudflare.ini
- (Tylko dla użytkowników Cloudflare)plik konfiguracyjny cloudflare używany przez certbot do konfiguracji DNS. Wymaga ustawienia tokenu API za pomocądns_cloudflare_api_token
. Przeczytaj więcej Tutaj.
Przykład:
#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
Zainstalować
Uruchom następujące polecenie na swoim serwerze, aby pobrać i uruchomić skrypt instalacyjny:
bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Skrypt instalacyjny debugowania
Dodaj DEBUG=true przed skryptem instalacyjnym, aby uzyskać szczegółowe dane wyjściowe:
DEBUG=true bash <(curl -fsSL https://raw.githubusercontent.com/forwardemail/forwardemail.net/master/self-hosting/setup.sh)
Monity
1. Initial setup
2. Setup Backups
3. Setup Auto Upgrades
4. Renew certificates
5. Restore from Backup
6. Help
7. Exit
- Konfiguracja początkowa: Pobierz najnowszy kod do przekazywania poczty e-mail, skonfiguruj środowisko, wyświetl monit o podanie własnej domeny i skonfiguruj wszystkie niezbędne certyfikaty, klucze i sekrety.
- Konfiguracja kopii zapasowej: Skonfiguruje cron do tworzenia kopii zapasowych mongoDB i redis przy użyciu magazynu zgodnego z S3 w celu bezpiecznego, zdalnego przechowywania. Osobno sqlite będzie kopiowany zapasowo po zalogowaniu, jeśli nastąpią zmiany dotyczące bezpiecznych, szyfrowanych kopii zapasowych.
- Konfiguracja aktualizacji: Skonfiguruj cron, który będzie wyszukiwał nocne aktualizacje, co umożliwi bezpieczne odbudowanie i ponowne uruchomienie komponentów infrastruktury.
- Odnów certyfikaty: Certbot / lets encrypt jest używany do certyfikatów SSL, a klucze wygasają co 3 miesiące. To odnowi certyfikaty dla Twojej domeny i umieści je w odpowiednim folderze, aby powiązane komponenty mogły je wykorzystać. Zobacz ważne ścieżki plików
- Przywróć z kopii zapasowej:Uruchomi mongodb i redis w celu przywrócenia danych z kopii zapasowej.
Konfiguracja początkowa (opcja 1)
Wybierz opcję 1. Initial setup
zacząć.
Po zakończeniu powinieneś zobaczyć komunikat o powodzeniu. Możesz nawet uruchomić docker ps
zobaczyć ten komponenty rozkręcone. Więcej informacji o komponentach poniżej.
Usługi
Nazwa usługi | Domyślny port | Opis |
---|---|---|
Sieć | 443 | Interfejs internetowy do wszystkich interakcji administracyjnych |
API | 4000 | Warstwa API do abstrakcyjnych baz danych |
Bree | Nic | Praca w tle i wykonawca zadań |
SMTP | 465/587 | Serwer SMTP dla poczty wychodzącej |
SMTP Bree | Nic | Praca w tle SMTP |
MX | 2525 | Wymiana poczty dla poczty przychodzącej i przekazywanie poczty e-mail |
IMAP | 993/2993 | Serwer IMAP do zarządzania pocztą przychodzącą i skrzynką pocztową |
POP3 | 995/2995 | Serwer POP3 do zarządzania pocztą przychodzącą i skrzynką pocztową |
Sqlite | 3456 | Serwer SQLite do interakcji z bazami danych SQLite |
SQLite Bree | Nic | Praca w tle w programie SQLite |
CalDAV | 5000 | Serwer CalDAV do zarządzania kalendarzem |
MongoDB | 27017 | Baza danych MongoDB do większości zastosowań w zarządzaniu danymi |
Redisa | 6379 | Redis do buforowania i zarządzania stanem |
Sqlite | Nic | Bazy danych SQLite dla szyfrowanych skrzynek pocztowych |
Ważne ścieżki plików
Notatka: Ścieżka hosta poniżej jest w odniesieniu do /root/forwardemail.net/self-hosting/
.
Część | Ścieżka hosta | Ścieżka kontenera |
---|---|---|
MongoDB | ./mongo-backups | /backups |
Redisa | ./redis-data | /data |
Sqlite | ./sqlite-data | /mnt/{SQLITE_STORAGE_PATH} |
Plik env | ./.env | /app/.env |
Certyfikaty/klucze SSL | ./ssl | /app/ssl/ |
Klucz prywatny | ./ssl/privkey.pem | /app/ssl/privkey.pem |
Pełny certyfikat łańcucha | ./ssl/fullchain.pem | /app/ssl/fullchain.pem |
Certyfikowani CA | ./ssl/cert.pem | /app/ssl/cert.pem |
Klucz prywatny DKIM | ./ssl/dkim.key | /app/ssl/dkim.key |
[!WAŻNE] Zapisz
.env
plik bezpiecznie. Jest to krytyczne dla odzyskania w przypadku awarii. Możesz to znaleźć w/root/forwardemail.net/self-hosting/.env
.
Konfiguracja
Początkowa konfiguracja DNS
W wybranym przez siebie dostawcy DNS skonfiguruj odpowiednie rekordy DNS. Nie zanotuj niczego w nawiasach (<>
) jest dynamiczny i wymaga aktualizacji zgodnie z Twoją wartością.
Rodzaj | Imię | Treść | TTL |
---|---|---|---|
A | „@”, „.” lub puste | <adres_ip> | automatyczny |
CNAME | API | <nazwa_domeny> | automatyczny |
CNAME | kaldav | <nazwa_domeny> | automatyczny |
CNAME | fe-odbicia | <nazwa_domeny> | automatyczny |
CNAME | imap | <nazwa_domeny> | automatyczny |
CNAME | mx | <nazwa_domeny> | automatyczny |
CNAME | pop3 | <nazwa_domeny> | automatyczny |
CNAME | Smtp | <nazwa_domeny> | automatyczny |
MX | „@”, „.” lub puste | mx.<nazwa_domeny> (priorytet 0) | automatyczny |
TXT | „@”, „.” lub puste | "v=spf1 a -wszystko" | automatyczny |
Odwrotny rekord DNS/PTR
Odwrotny DNS (rDNS) lub odwrotne rekordy wskaźnika (PTR records) są niezbędne dla serwerów poczty e-mail, ponieważ pomagają zweryfikować legalność serwera wysyłającego wiadomość e-mail. Każdy dostawca chmury robi to inaczej, więc musisz sprawdzić, jak dodać „Odwrotny DNS”, aby zmapować hosta i adres IP na odpowiadającą mu nazwę hosta. Najprawdopodobniej w sekcji sieciowej dostawcy.
Port 25 zablokowany
Niektórzy dostawcy usług internetowych i usług w chmurze blokują 25, aby uniknąć złych aktorów. Może być konieczne złożenie zgłoszenia pomocy technicznej w celu otwarcia portu 25 dla SMTP / poczty wychodzącej.
Proces wdrażania do firmy nowego pracownika
-
Otwórz stronę docelową Przejdź do https://<nazwa_domeny>, zastępując <nazwa_domeny> domeną skonfigurowaną w ustawieniach DNS. Powinna zostać wyświetlona strona docelowa Forward Email.
-
Zaloguj się i dołącz swoją domenę
- Zaloguj się, podając prawidłowy adres e-mail i hasło.
- Wprowadź nazwę domeny, którą chcesz skonfigurować (musi być zgodna z konfiguracją DNS).
- Postępuj zgodnie z instrukcjami, aby dodać wymagane MX oraz TXT zapisy do weryfikacji.
- Zakończ konfigurację
- Po weryfikacji wejdź na stronę Aliasy, aby utworzyć swój pierwszy alias.
- Opcjonalnie skonfiguruj SMTP dla poczty wychodzącej w Ustawienia domeny. Wymaga to dodatkowych rekordów DNS.
[!NOTE] Żadne informacje nie są wysyłane poza Twój serwer. Opcja samodzielnego hostowania i początkowe konto są przeznaczone tylko do logowania administratora i widoku internetowego w celu zarządzania domenami, aliasami i powiązanymi konfiguracjami poczty e-mail.
Testowanie
Tworzenie pierwszego aliasu
- Przejdź do strony Aliasy Otwórz stronę zarządzania aliasami:
https://<domain_name>/en/my-account/domains/<domain_name>/aliases
- Dodaj nowy alias
- Trzask Dodaj alias (w prawym górnym rogu).
- Wprowadź nazwę aliasu i dostosuj ustawienia poczty e-mail według potrzeb.
- (Opcjonalnie) Włącz IMAP/POP3/CalDAV wsparcie poprzez zaznaczenie pola wyboru.
- Trzask Utwórz alias.
- Ustaw hasło
- Trzask Wygeneruj hasło aby utworzyć bezpieczne hasło.
- To hasło będzie wymagane do zalogowania się do klienta poczty elektronicznej.
- Skonfiguruj swojego klienta poczty e-mail
- Użyj klienta poczty e-mail, np. Thunderbird.
- Wprowadź nazwę aliasu i wygenerowane hasło.
- Skonfiguruj IMAP oraz SMTP ustawienia odpowiednio.
Ustawienia serwera e-mail
Nazwa użytkownika: <alias name>
Rodzaj | Nazwa hosta | Port | Bezpieczeństwo połączenia | Poświadczenie |
---|---|---|---|---|
SMTP | smtp.<nazwa_domeny> | 465 | SSL / TLS | Normalne hasło |
IMAP | imap.<nazwa_domeny> | 993 | SSL / TLS | Normalne hasło |
Wysyłanie/odbieranie pierwszej wiadomości e-mail
Po skonfigurowaniu będziesz mieć możliwość wysyłania i odbierania wiadomości e-mail na nowo utworzony i samodzielnie hostowany adres e-mail!
Konserwacja
How do I backup my data
Śledź skrypt instalacyjny i wybierz option 2
w monicie.
How do I renew my certificates
Śledź skrypt instalacyjny i wybierz option 3
w monicie.
How do I upgrade to the latest forward email code
Śledź skrypt instalacyjny i wybierz option 4
w monicie.
How do I restore from a backup
Śledź skrypt instalacyjny i wybierz option 6
w monicie.
Rozwiązywanie problemów
Why is the certbot acme challenge failing
Najczęstszą pułapką jest to, że certbot / letsencrypt czasami żąda 2 wyzwania. Musisz być pewien, że dodasz BOTH rekordy txt.
Przykład: Możesz zobaczyć dwa wyzwania takie jak to: _acme-challenge.example.com -> "randomstring1" _acme-challenge.example.com -> "randomstring2"
Możliwe jest również, że propagacja DNS nie została ukończona. Możesz użyć narzędzi takich jak: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.<your_domain>
. To da ci pojęcie, czy zmiany w twoim rekordzie TXT powinny zostać odzwierciedlone. Możliwe jest również, że lokalna pamięć podręczna DNS na twoim hoście nadal używa starej, nieaktualnej wartości lub nie wykryła ostatnich zmian.
Inną opcją jest użycie automatycznych zmian DNS cerbota poprzez ustawienie /root/.cloudflare.ini
plik z tokenem api w swoim cloud-init / user-data na początkowej konfiguracji VPS lub utwórz ten plik i uruchom skrypt ponownie. To automatycznie zarządza zmianami DNS i aktualizacjami wyzwań.
What is the basic auth username and password
W przypadku samodzielnego hostingu dodajemy pierwsze wyskakujące okienko uwierzytelniania przeglądarki z prostą nazwą użytkownika (admin
) i hasło (losowo generowane podczas początkowej konfiguracji). Dodajemy to tylko jako zabezpieczenie na wypadek, gdyby automatyzacja/scrapery jakoś Cię wyprzedziły w kwestii pierwszej rejestracji w środowisku internetowym. Możesz znaleźć to hasło po początkowej konfiguracji w swoim .env
złóż pod AUTH_BASIC_USERNAME
oraz AUTH_BASIC_PASSWORD
.
How do I know what is running
Możesz biegać docker ps
aby zobaczyć wszystkie uruchomione kontenery, które są uruchamiane docker-compose-self-hosting.yml
plik. Możesz także uruchomić docker ps -a
aby zobaczyć wszystko (w tym kontenery, które nie są uruchomione).
How do I know if something isn't running that should be
Możesz biegać docker ps -a
aby zobaczyć wszystko (w tym kontenery, które nie są uruchomione). Możesz zobaczyć dziennik wyjścia lub notatkę.
How do I find logs
Możesz uzyskać więcej dzienników za pośrednictwem docker logs -f <container_name>
. Jeśli coś się wydarzyło, prawdopodobnie jest to związane z .env
plik jest nieprawidłowo skonfigurowany.
W interfejsie internetowym możesz przeglądać /admin/emails
oraz /admin/logs
odpowiednio dla dzienników poczty wychodzącej i dzienników błędów.
Why are my outgoing emails timing out
Jeśli widzisz komunikat, taki jak Przekroczono limit czasu połączenia podczas łączenia się z serwerem MX..., być może musisz sprawdzić, czy port 25 jest zablokowany. Dostawcy usług internetowych lub dostawcy usług w chmurze często blokują to domyślnie, więc może być konieczne skontaktowanie się z pomocą techniczną / złożenie zgłoszenia, aby to otworzyć.
What tool(s) should I use to test email configuration best practices and IP reputation
Zajrzyj na nasze FAQ tutaj.
Użyj adresu IP swojego serwera, aby sprawdzić, czy poniższe witryny znajdują się na czarnej liście. Niestety, nie jest niczym niezwykłym, że dostawcy usług w chmurze mają problemy z reputacją IP z powodu używania spamu e-mailowego. Jeśli widzisz swój adres IP na czarnej liście, zaleca się uruchomienie nowego serwera i sprawdzenie nowego adresu IP.