Własny serwer pocztowy mailcow na VPS: konfiguracja
Sprawdź dostępność portu 25 przed instalacją mailcow, aby uniknąć blokady kolejki SMTP. Skonfiguruj rekordy DNS, które eliminują błąd Gmail 550 5.7.25 i zapewniają dostarczalność.
Co budujesz
Kompletny serwer pocztowy na własnym sprzęcie: SMTP do wysyłania i odbierania wiadomości, IMAP do synchronizacji telefonu i laptopa, klient poczty webmail oraz filtr antyspamowy oceniający każdą wiadomość w obu kierunkach. mailcow-dockerized łączy Postfix, Dovecot, Rspamd, SOGo webmail, MariaDB, Redis oraz klienta ACME w jeden stos Docker Compose, więc oprogramowanie nie stanowi głównego wyzwania. Uruchomienie całości zajmie pół godziny.
Trudność polega na wszystkim, co znajduje się wokół. Poczta elektroniczna to usługa, w której reszta internetu aktywnie nie ufa nowo powstałym serwerom. Różnica między stanem „działa” a „Gmail po cichu odrzuca każdą wiadomość” sprowadza się do czterech rekordów DNS oraz jednego ustawienia reputacji IP, nad którym możesz nie mieć pełnej kontroli. Przed wynajęciem jakiejkolwiek infrastruktury zapoznaj się z poniższymi wymaganiami wstępnymi. Jeśli po ich lekturze uznasz, że walka o reputację nie jest tego warta, jest to w pełni uzasadniona decyzja; nasze zestawienie tego, co faktycznie warto hostować samodzielnie w 2026 roku klasyfikuje pocztę e-mail w kategorii „tylko jeśli traktujesz to poważnie” właśnie z tych powodów.
Wymagania wstępne stanowią fundament projektu
Pominięcie któregokolwiek z nich spowoduje, że wysyłane wiadomości nigdy nie dotrą do adresatów. Poniżej przedstawiono listę w kolejności odpowiadającej częstotliwości występowania problemów:
Port wyjściowy 25 musi być otwarty. Serwer dostarcza pocztę do Gmaila i Microsoftu za pośrednictwem portu TCP 25. Znaczna część dostawców VPS i usług chmurowych domyślnie blokuje ruch wychodzący na porcie 25 w celu zwalczania spamu. Blokada ta jest cicha: podczas uruchamiania nie pojawiają się żadne błędy, wszystko wydaje się sprawne, a poczta po prostu pozostaje w kolejce na stałe. Przetestuj to przed instalacją jakiegokolwiek oprogramowania. Jeśli port jest zablokowany, jedynym rozwiązaniem jest zgłoszenie do pomocy technicznej dostawcy z prośbą o jego odblokowanie; niektórzy robią to dla starszych kont, inni odmawiają całkowicie.
Czysty adres IP z odpowiednią reputacją. Adresy IP z odzysku w usługach VPS często znajdują się na czarnych listach z powodu działań poprzedniego użytkownika. Przed rozpoczęciem sprawdź swój adres w serwisach takich jak Spamhaus lookup lub mxtoolbox. Adres IP znajdujący się na czarnej liście oznacza odrzucenia wiadomości, których nie da się obejść na poziomie konfiguracji kodu.
Kontrola nad DNS oraz poprawny rekord PTR. Wymagane jest dodanie rekordów do strefy DNS domeny oraz skonfigurowanie odwrotnego DNS (PTR) dla adresu IP serwera, wskazującego na nazwę hosta pocztowego. Rekord PTR prawie nigdy nie jest ustawiany w panelu DNS domeny; zarządza nim właściciel adresu IP, więc należy go ustawić w panelu sterowania dostawcy VPS lub poprzez zgłoszenie do wsparcia.
6 GiB pamięci RAM i 2 vCPU to bezpieczne minimum. mailcow wymaga co najmniej 6 GiB pamięci RAM oraz 1 GiB przestrzeni wymiany (swap) dla instalacji prywatnej. Zaleca się 8 GiB, gdy z serwera korzysta już grupa użytkowników. Poniżej około 2.5 GiB pamięci RAM, generate_config.sh oferuje wyłączenie skanera antywirusowego ClamAV, aby zapobiec zabijaniu kontenerów przez jądro systemu. Na start przeznacz 20 GB przestrzeni SSD.
Nazwa DNS, a nie sam adres IP. Wybierz nazwę hosta, taką jak mail.example.com. Ta pojedyncza nazwa stanie się Twoim MAILCOW_HOSTNAME, podmiotem certyfikatu TLS, celem rekordu PTR oraz banerem SMTP. Utrzymuj spójność tej nazwy w każdej konfiguracji.
Krok 1, Sprawdzenie dostępności wychodzącego portu 25
Wykonaj to zadanie w pierwszej kolejności. Jeśli ten krok zakończy się niepowodzeniem, dalsze działania będą bezcelowe. Z poziomu świeżo zainstalowanego VPS spróbuj nawiązać sesję SMTP z rzeczywistym serwerem pocztowym:
sudo apt update && sudo apt install -y netcat-openbsd
nc -vz -w 5 gmail-smtp-in.l.google.com 25Prawidłowy wynik jest natychmiastowy:
Connection to gmail-smtp-in.l.google.com (142.250.x.x) 25 port [tcp/smtp] succeeded!Zablokowany port powoduje zawieszenie połączenia na pełne 5 sekund, a następnie błąd:
nc: connect to gmail-smtp-in.l.google.com port 25 (tcp) timed out: Operation now in progressTen limit czasu (timeout) oznacza blokadę. Jest to filtr sieciowy po stronie dostawcy, a nie lokalny firewall, więc żadna zmiana w konfiguracji lokalnej nie rozwiąże problemu. Otwórz zgłoszenie do pomocy technicznej: "Proszę o odblokowanie wychodzącego portu TCP 25 dla mojego VPS o adresie <IP>; uruchamiam legalny serwer pocztowy". Nie instaluj mailcow, dopóki wynik nie będzie wskazywał na sukces ("succeeded"). Pamiętaj, że przychodzący port 25 (połączenia z innych serwerów do Ciebie) to oddzielna ścieżka i zazwyczaj jest otwarty; dostawcy ograniczają głównie ruch wychodzący.
Krok 2, skonfiguruj rekordy DNS
Zmiany w DNS wymagają czasu na propagację, dlatego opublikuj wszystkie rekordy przed rozpoczęciem instalacji. Przyjmij, że Twoja domena to example.com, host pocztowy to mail.example.com, a adres IP to 10.0.0.10. W swojej strefie DNS utwórz:
mail.example.com. A 10.0.0.10
mail.example.com. AAAA 2001:db8::10 ; only if you have IPv6
example.com. MX 10 mail.example.com.
example.com. TXT "v=spf1 mx -all"
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:postmaster@example.com"Rekord SPF informuje, że "tylko mój serwer MX może wysyłać wiadomości w imieniu tej domeny, odrzuć resztę". Ustaw DMARC na p=none, aby monitorować raporty bez odrzucania własnej poczty; po potwierdzeniu poprawności konfiguracji zaostrz politykę do p=quarantine, a następnie do p=reject. Celowo pominięto dwa rekordy: DKIM, który mailcow wygeneruje w kroku 6, oraz PTR, który należy ustawić teraz w panelu dostawcy.
Ustaw rekord PTR (reverse DNS) dla 10.0.0.10 na mail.example.com, co stanowi dokładną wartość MAILCOW_HOSTNAME. Jest to rekord, o którym zapomina najwięcej osób, a duzi dostawcy poczty odrzucają wiadomości w przypadku jego braku. Jeśli Twój panel nie posiada pola rDNS, zgłoś się do wsparcia technicznego dostawcy.
Krok 3, instalacja Docker
mailcow wymaga silnika Docker Engine z wtyczką Compose v2. Należy użyć oficjalnego skryptu instalacyjnego Docker zamiast pakietu docker.io z repozytorium Ubuntu, który nie zawiera wtyczki Compose:
curl -fsSL https://get.docker.com | sudo sh
sudo docker compose versionPowinna pojawić się linia Docker Compose version v2.x. Jeśli docker compose version wyświetla docker: 'compose' is not a docker command, oznacza to, że silnik Docker Engine jest zainstalowany, ale wtyczka Compose nie. Należy zainstalować wtyczkę z repozytorium Docker, ponownie uruchomić powyższy skrypt lub skorzystać z naszego przewodnika po podstawach Docker Compose, który konfiguruje oba elementy z oficjalnego repozytorium apt firmy Docker.
Krok 4, Sklonuj mailcow i wygeneruj konfigurację
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
umask
sudo ./generate_config.shSprawdź, czy umask zwraca 0022. mailcow odmawia budowy przy nieprawidłowej masce plików, a świeża powłoka root w Ubuntu 24.04 domyślnie ustawia 0022. Skrypt zapyta o najważniejszą kwestię: w pełni kwalifikowaną nazwę hosta (FQDN). Wprowadź mail.example.com; wartość musi dokładnie odpowiadać rekordowi A oraz rekordowi PTR. Skrypt zapisze mailcow.conf, czyli jedyny plik środowiskowy, z którego korzysta cały stos. Otwórz go, jeśli musisz zmienić porty WWW (HTTP_PORT, HTTPS_PORT) lub wyłączyć ClamAV na serwerze o małych zasobach:
MAILCOW_HOSTNAME=mail.example.com
HTTP_PORT=80
HTTPS_PORT=443
SKIP_CLAMD=n # set to y to drop the virus scanner on a <2.5 GiB boxSKIP_FTS=y to kolejny parametr istotny przy małej ilości pamięci RAM: wyszukiwanie pełnotekstowe jest drugim, obok ClamAV, procesem najbardziej obciążającym pamięć w mailcow. Jego wyłączenie skutkuje jedynie brakiem możliwości przeszukiwania treści wiadomości w webmailu.
Pozostaw HTTP_PORT=80 oraz HTTPS_PORT=443 bez zmian, chyba że są one już zajęte przez inną usługę na hoście. Wbudowany klient ACME w mailcow wymaga dostępu do portu 80 z Internetu w celu uzyskania certyfikatu. Z tego powodu nie należy uruchamiać osobnej konfiguracji nginx-plus-Certbot na tym samym serwerze; mailcow samodzielnie wystawia i odnawia certyfikaty TLS, a druga usługa blokująca porty 80/443 uniemożliwi to działanie. Zasada ta dotyczy każdej innej usługi wymagającej publicznego interfejsu WWW, dlatego instalacje typu Halcyon zmieniający bibliotekę Jellyfin w wypożyczalnię wideo z lat 90., które wymagają własnego reverse proxy na porcie 443, powinny znajdować się na innym hoście. Wyjątkiem są usługi, które nie wymagają publicznego portu WWW: własny przekaźnik RustDesk nasłuchuje wyłącznie na własnym zakresie portów od 21115 do 21119, więc może współdzielić serwer, o ile dysponujesz odpowiednim zapasem przepustowości łącza.
Krok 5, Uruchomienie stosu i logowanie
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psOperacja pull pobiera około dwudziestu kilku obrazów; należy odczekać kilka minut. Gdy docker compose ps pokaże każdy kontener jako running (lub healthy), otwórz https://mail.example.com w przeglądarce. Domyślne dane logowania administratora to nazwa użytkownika admin oraz hasło moohoo. Hasło należy natychmiast zmienić w interfejsie administratora w sekcji Access → Administrators. Jeśli przeglądarka wyświetla ostrzeżenie NET::ERR_CERT_AUTHORITY_INVALID, oznacza to, że certyfikat ACME nie został jeszcze wystawiony. Przed założeniem, że wystąpiła awaria, należy zapoznać się z sekcją dotyczącą błędów ACME poniżej; użycie samopodpisanego certyfikatu zastępczego jest normalnym zjawiskiem przez pierwsze dwie minuty.
Krok 6, Dodawanie domeny, skrzynki pocztowej i publikacja DKIM
W interfejsie administracyjnym otwórz stronę konfiguracji poczty (Configuration → Mail Setup), a w zakładce Domains kliknij Add domain i wprowadź example.com. Następnie w sekcji Mailboxes wybierz Add mailbox, aby utworzyć you@example.com wraz z hasłem. Jest to w pełni funkcjonalna skrzynka pocztowa, dostępna już przez IMAP.
Teraz klucz DKIM. Przejdź do Configuration → ARC/DKIM keys; mailcow mógł wygenerować klucz automatycznie podczas dodawania domeny. Jeśli nie, wygeneruj go w tym miejscu, wybierz domenę, zachowaj selektor dkim, wybierz długość 2048-bit i kliknij Add. Skopiuj wyświetloną długą wartość TXT i opublikuj ją jako:
dkim._domainkey.example.com. TXT "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqh...long-key...QAB"Strona Domains w mailcow posiada przycisk DNS, który wyświetla listę wszystkich wymaganych rekordów oraz wskazuje zielonym znacznikiem lub czerwonym krzyżykiem stan ich publikacji. Użyj tego narzędzia jako listy kontrolnej i doprowadź do uzyskania zielonego koloru w każdym wierszu przed przystąpieniem do testów dostarczalności. Czerwony wiersz DKIM po publikacji zazwyczaj oznacza, że klucz został nieprawidłowo podzielony na fragmenty TXT; klucz 2048-bit jest dłuższy niż limit 255 znaków dla pojedynczego ciągu TXT, dlatego należy wkleić go jako jedną logiczną wartość i pozwolić dostawcy DNS na automatyczny podział na fragmenty.
Krok 7, Testowanie dostarczalności i uzyskanie wyniku 10/10
Przejdź do serwisu mail-tester.com, skopiuj wygenerowany losowo adres i wyślij na niego wiadomość ze swojej nowej skrzynki pocztowej. Zaloguj się do interfejsu SOGo pod adresem https://mail.example.com/SOGo i wyślij wiadomość stamtąd. Następnie kliknij przycisk "Then check your score".
Dąż do uzyskania wyniku 10/10. Typowe przyczyny obniżenia punktacji:
- Brak zgodności SPF, rekord
MX/SPF jest nieobecny lub adres IP nadawcy nie został w nim uwzględniony. Sprawdź ponownie rekord TXT dla SPF. - Brak weryfikacji podpisu DKIM, rekord TXT
dkim._domainkeyjest nieobecny, wciąż propagowany lub zawiera błędy. Jest to najczęstsza przyczyna problemów. - Brak PTR / niezgodność PTR, rekord reverse DNS nie wskazuje na
mail.example.com. Popraw ustawienia u dostawcy usług. - Obecność na czarnej liście, niska reputacja adresu IP. Złóż wniosek o usunięcie z listy lub poproś o przydzielenie czystego adresu IP.
Nie wysyłaj rzeczywistej poczty do Gmail lub Outlook, dopóki wynik nie osiągnie 10/10. Niska punktacja w połączeniu z nowym adresem IP to najszybsza droga do oznaczenia domeny jako źródła spamu już pierwszego dnia.
Krok 8, Podłączenie klienta poczty
Skonfiguruj program Thunderbird, Apple Mail lub aplikację w telefonie, używając poniższych ustawień. Hostem serwera dla wszystkich połączeń jest mail.example.com:
- IMAP: port 993, SSL/TLS (lub 143 z STARTTLS)
- SMTP submission: port 465, SSL/TLS (lub 587 z STARTTLS)
- Nazwa użytkownika: pełny adres e-mail,
you@example.com - Hasło: hasło do skrzynki pocztowej ustawione podczas konfiguracji
Nigdy nie wysyłaj poczty z klienta przez port 25. Port ten służy wyłącznie do komunikacji między serwerami. mailcow nie obsługuje na nim autoryzacji, a próba połączenia klienta zakończy się odrzuceniem. Jeśli klient zgłasza błąd Relay access denied, oznacza to próbę wysyłki przez port 25 lub brak autoryzacji; należy przełączyć konfigurację na port 465 lub 587, używając danych logowania do skrzynki.
Krok 9, Tworzenie kopii zapasowej istotnych danych
mailcow zawiera skrypt do tworzenia kopii zapasowych, który wykonuje migawki wszystkich wolumenów stanowych. Należy uruchomić go, kierując dane na dysk zewnętrzny lub zamontowany zasób zdalny:
sudo MAILCOW_BACKUP_LOCATION=/opt/mailcow-backups \
./helper-scripts/backup_and_restore.sh backup allall przechwytuje sześć elementów, których utrata oznacza utratę danych: vmail (właściwe skrzynki pocztowe), crypt (klucze deszyfrujące vmail, bezużyteczne bez niego), mysql (baza MariaDB przechowująca domeny, użytkowników, aliasy i ustawienia), redis (stan kolejki i pamięci podręcznej), rspamd (wyuczone reguły spam/ham) oraz postfix (kolejka poczty). Skrypt działa wewnątrz kontenera pomocniczego, tworząc skompresowane archiwa, dzięki czemu kopie pozostają spójne nawet podczas pracy całego stosu. Należy zautomatyzować ten proces za pomocą nocnego zadania cron i dodać --delete-days 14, aby usuwać stare zestawy kopii. Zadanie cron, które przestaje działać, zawodzi bez powiadomienia, dlatego należy przesyłać kod wyjścia skryptu w miejsce, w którym zostanie zauważony; własny serwer ntfy pozwala na wysłanie powiadomienia o awarii na telefon za pomocą jednego polecenia curl dodanego do tego samego wpisu w cronie. Przywracanie danych odbywa się za pomocą tego samego skryptu z flagą restore, która wyświetla listę migawek i pozwala wybrać dane do odzyskania. Kopia zapasowa, której nigdy nie przetestowano pod kątem przywracania, jest tylko nadzieją, a nie zabezpieczeniem; należy wykonać próbne przywrócenie na testowym serwerze VPS.
Krok 10, Aktualizacja według harmonogramu
mailcow aktualizuje się za pomocą własnego skryptu, który pobiera nowy kod, przeprowadza migrację mailcow.conf, wstępnie pobiera obrazy i restartuje kontenery w odpowiedniej kolejności:
cd /opt/mailcow-dockerized
sudo ./update.sh --check # reports whether an update exists, changes nothing
sudo ./update.sh # applies itNajpierw wykonaj kopię zapasową (Krok 9), ponieważ migracja schematu jest trudna do cofnięcia. Aktualizacje pojawiają się często i zawierają poprawki bezpieczeństwa dla demonów wystawionych na działanie Internetu, dlatego nie należy dopuszczać do wielomiesięcznych opóźnień w utrzymaniu serwera pocztowego. Jeśli po aktualizacji którykolwiek kontener nie osiągnie stanu gotowości, sudo docker compose logs --tail=50 <service>-mailcow wskaże nazwę demona, który nie został poprawnie uruchomiony.
Uwagi dotyczące zabezpieczeń
mailcow uruchamia własną usługę netfilter (netfilter-mailcow), która blokuje adresy IP próbujące atakować porty pocztowe oraz webmail, dzięki czemu obsługa poczty jest chroniona domyślnie. Nie obejmuje to jednak usługi SSH na samym hoście, która pozostaje wystawiona na ataki typu brute-force. Należy połączyć tę konfigurację z Fail2ban monitorującym logi uwierzytelniania SSH oraz logowaniem wyłącznie przy użyciu kluczy. Interfejs administracyjny mailcow powinien być zabezpieczony silnym hasłem i, w miarę możliwości, odizolowany od publicznego Internetu lub udostępniony wyłącznie przez VPN.
Tryby awarii i dokładne komunikaty
Kolejka poczty nie wysyła wiadomości. Uruchom sudo docker compose exec postfix-mailcow postqueue -p lub sprawdź kolejkę poczty w interfejsie administratora; wpisy pozostają w stanie deferred z komunikatem:
status=deferred (connect to gmail-smtp-in.l.google.com[142.250.x.x]:25: Connection timed out)Oznacza to, że port wyjściowy 25 jest blokowany przez dostawcę usług (krok 1). Żadna zmiana konfiguracji tego nie naprawi, należy otworzyć zgłoszenie techniczne. Problem nie dotyczy DNS ani TLS; kluczowym wskaźnikiem jest słowo timed out w odniesieniu do zdalnego serwera MX na porcie 25.
Gmail oznacza wszystko jako spam lub odrzuca wiadomości. Otwórz wiadomość w Gmailu, wybierz "Pokaż oryginał" i sprawdź wyniki uwierzytelniania. dkim=fail lub dkim=none oznacza, że rekord dkim._domainkey TXT jest nieobecny, błędny lub jeszcze nie został rozpropagowany. Opublikuj ponownie dokładnie to, co wyświetla strona ARC/DKIM i poczekaj na wygaśnięcie TTL. spf=fail oznacza, że rekordy SPF/MX nie obejmują Twojego adresu IP. Zgodność jest kluczowa; jeden nieudany test wystarczy, aby wiadomość trafiła do spamu.
Odrzucenie przez dużych dostawców podczas nawiązywania połączenia. Komunikaty o błędach lub logi Postfix zawierają informację o odrzuceniu PTR przez Gmaila:
550-5.7.25 [10.0.0.10] The IP address sending this message does not have a PTR
550-5.7.25 record setup, or the corresponding forward DNS entry does not match
550 5.7.25 the sending IP. As a policy, Gmail does not accept messages from IPs
550 5.7.25 with missing PTR records.Kod 550 5.7.25 oznacza brakujący lub niedopasowany rekord odwrotny DNS. Ustaw rekord PTR dla swojego adresu IP na mail.example.com u dostawcy (krok 2). Rekordy forward (A) oraz reverse (PTR) muszą być zgodne i oba muszą wskazywać na tę samą nazwę hosta, którą mailcow przedstawia innym serwerom.
Przeglądarka wyświetla ostrzeżenie o certyfikacie, które nie znika. Kontener acme-mailcow nie pobrał poprawnego certyfikatu. Sprawdź jego logi:
sudo docker compose logs acme-mailcow | tail -n 40Linia typu Cannot validate any hostnames, skipping Let's Encrypt for 1 hour. lub błąd wyzwania (challenge failure) oznacza, że port 80 nie jest osiągalny z Internetu lub rekord A nie wskazuje na ten serwer. Potwierdź, że mail.example.com wskazuje na właściwą maszynę, otwórz porty 80 i 443 w zaporze sieciowej hosta i upewnij się, że żadna inna usługa nie zajmuje tych portów. Po usunięciu przyczyny zrestartuj klienta za pomocą sudo docker compose restart acme-mailcow, zamiast czekać na godzinny okres karencji.
FAQ
Czy samodzielne hostowanie poczty e-mail jest opłacalne?
Jeśli zależy Ci na własności danych, nieograniczonej liczbie aliasów i pełnej kontroli, to tak – mailcow dostarcza profesjonalny stos technologiczny w cenie VPS. Jednak dbałość o dostarczalność wiadomości to stały obowiązek: reputacja adresu IP, poprawność rekordów DNS i monitorowanie list blokad to procesy ciągłe. W przypadku krytycznych adresów biznesowych, gdzie jeden dzień w folderze spam oznacza straty, wybór zewnętrznego dostawcy jest pragmatycznym rozwiązaniem. Hostuj samodzielnie, jeśli cenisz kontrolę bardziej niż wygodę i zamierzasz faktycznie utrzymywać infrastrukturę. Jeśli Twoim głównym celem jest przeniesienie danych z cudzych serwerów, a niekoniecznie poczta, zacznij od usługi, która nie wymaga dbałości o dostarczalność: biblioteka zdjęć nie posiada tego problemu, a nasze porównanie PhotoPrism i Immich zawiera wymagania dotyczące pamięci RAM oraz polecenia tworzenia kopii zapasowych dla takiej instalacji na tym samym typie VPS.
Jak sprawdzić, czy wychodzący port 25 jest zablokowany?
Uruchom nc -vz -w 5 gmail-smtp-in.l.google.com 25 z poziomu serwera. Komunikat "succeeded!" oznacza, że port jest otwarty; timed out po pauzie oznacza, że dostawca blokuje ten port. Jest to najczęstsza przyczyna, dla której serwer pocztowy może odbierać wiadomości, ale nie może ich wysyłać. Jedynym rozwiązaniem jest odblokowanie portu przez dostawcę; żadne lokalne ustawienia tego nie zmienią.
Dlaczego moja poczta nadal trafia do folderu spam w Gmailu?
Prawie zawsze wynika to z przerwanego łańcucha uwierzytelniania. Użyj opcji "Pokaż oryginał" w Gmailu i sprawdź wartości spf=pass, dkim=pass oraz dmarc=pass. Wynik dkim=fail wskazuje na brakujący lub błędny rekord TXT typu dkim._domainkey; negatywny wpływ ma również niedopasowanie rekordu PTR lub nowy adres IP bez historii wysyłkowej. Uzyskaj wynik 10/10 w serwisie mail-tester.com, a następnie powoli rozgrzewaj adres IP, wysyłając początkowo kilka wiadomości dziennie i stopniowo zwiększając ich liczbę, zamiast wysyłać duże wolumeny od pierwszego dnia.
Co dokładnie muszę archiwizować?
Uruchom backup_and_restore.sh backup all i przechowuj cały zestaw poza serwerem. Kopia ta obejmuje vmail (skrzynki pocztowe), crypt (klucze deszyfrujące), bazę danych MariaDB (domeny, użytkownicy, aliasy, ustawienia), Redis, dane wyuczone Rspamd oraz kolejkę Postfix. Wolumen crypt jest często pomijany, a bez niego kopia vmail jest nieczytelnym szyfrogramem. Przetestuj proces przywracania na serwerze testowym przynajmniej raz.
Czy mogę uruchomić mailcow na VPS z 2 GB RAM?
Nie w sposób komfortowy. generate_config.sh oferuje wyłączenie ClamAV przy pamięci poniżej około 2,5 GiB, ale nawet wtedy Rspamd, ClamAV, Dovecot i MariaDB rywalizują o zasoby, co doprowadzi do użycia partycji swap i zabijania procesów przez mechanizm OOM przy jakimkolwiek realnym obciążeniu. Przyjmij 6 GiB RAM oraz 1 GiB swap jako minimum dla stabilnej instalacji dla jednego użytkownika i zwiększ zasoby do 8 GiB, gdy tylko z poczty zacznie korzystać więcej osób.