Jinsi ya Kuendesha Mailcow kwenye VPS na Gmail Ikubali
Kagua port 25 kabla ya kusakinisha mailcow: ikizuiwa, barua zitakwama kwenye foleni. Weka DNS sahihi kuzuia Gmail 550 5.7.25 PTR rejection.
Unachojenga
Seva kamili ya barua pepe kwenye mashine unayomiliki: SMTP ya kutuma na kupokea, IMAP ili simu na laptop yako zisawazishwe, mteja wa webmail, na kichujio cha barua taka kinachopima kila ujumbe katika pande zote mbili. mailcow-dockerized huunganisha Postfix, Dovecot, Rspamd, webmail ya SOGo, MariaDB, Redis na mteja wa ACME katika stack moja ya Docker Compose, kwa hiyo software si sehemu ngumu. Utaiendesha ndani ya nusu saa.
Sehemu ngumu ni kila kitu kinachozunguka mfumo huo. Barua pepe ni huduma ambayo Internet yote huanza kutoamini seva mpya, na tofauti kati ya “inafanya kazi” na “Gmail inafuta kila ujumbe kimya kimya” hutegemea DNS records nne na setting moja ya IP reputation ambayo huenda usiwe na udhibiti kamili. Soma masharti ya awali hapa chini kabla ya kukodisha chochote. Ukisoma na kuamua kuwa mchakato wa kujenga reputation haufai, hilo ni jibu halali; muhtasari wetu wa mambo ambayo yanafaa kujihostia mwaka 2026 unaweka barua pepe chini ya “ikiwa una maana hiyo kweli” kwa sababu hizo hasa.
Masharti ya awali NDIO mradi
Ukikosa hata sharti moja kati ya haya, utatuma barua ambayo haitawahi kufika. Yamepangwa takribani kulingana na mara ngapi kila moja huwakwaza watu:
Port 25 ya kutoka lazima iwe wazi. Seva yako hupeleka barua kwa Gmail na Microsoft kupitia TCP port 25. Sehemu kubwa ya watoa huduma wa VPS na cloud huzuia port 25 ya kutoka kwa chaguo-msingi ili kupambana na spam. Mara nyingi kizuizi hiki hakionyeshi kosa: hakuna kinachoshindikana wakati wa kuwasha seva, kila kitu huonekana kuwa sawa, lakini barua hukaa kwenye foleni milele. Ijaribu kabla ya kusakinisha chochote. Ikiwa imezuiwa, suluhisho pekee ni kutuma tiketi kwa support na kuwaomba waifungue. Baadhi yao hufanya hivyo kwa akaunti zilizodumu kwa muda, lakini wengine hawataifungua kamwe.
IP safi yenye reputation inayokubalika. IP za VPS zilizotumika tena mara nyingi tayari huwa kwenye blocklist kwa sababu ya spam ya mpangaji wa awali. Kagua yako kwenye huduma kama Spamhaus lookup au mxtoolbox kabla ya kuendelea. IP iliyo kwenye orodha hiyo husababisha kukataliwa ambako huwezi kurekebisha kwa kubadili code.
Udhibiti wa DNS pamoja na rekodi sahihi ya PTR. Unahitaji kuongeza rekodi kwenye zone ya domain yako. Pia unahitaji reverse DNS (PTR) ya IP ya seva inayoelekeza kwenye hostname ya mail yako. PTR karibu haiwekwi kamwe kwenye paneli yako ya DNS. Inasimamiwa na mwenye IP, kwa hiyo huwekwa kwenye control panel ya mtoa huduma wako wa VPS au kupitia tiketi.
6 GiB RAM na 2 vCPU ni kiwango cha chini kinachofaa. Kiwango cha chini kinachopendekezwa na mailcow ni 6 GiB RAM pamoja na 1 GiB swap kwa usakinishaji wa faragha. 8 GiB inapendekezwa baada ya watumiaji kadhaa kuanza kuitegemea. Chini ya takribani 2.5 GiB, generate_config.sh hutoa kuzima kichanganuzi cha virusi cha ClamAV ili kernel isianze kuua containers. Ipe 20 GB ya SSD wakati wa kuanza.
Jina la DNS, si IP pekee. Chagua hostname kama mail.example.com. Jina hilo moja litakuwa MAILCOW_HOSTNAME yako, subject ya TLS certificate yako, target ya PTR yako na SMTP banner yako. Litumie kwa namna ileile kila mahali.
Hatua ya 1, Thibitisha kuwa outbound port 25 iko wazi
Fanya hivi kwanza. Kila hatua nyingine itakuwa ni kupoteza muda ikiwa hii itashindikana. Kutoka kwenye VPS mpya, jaribu kuanzisha mawasiliano ya SMTP na mail server halisi:
sudo apt update && sudo apt install -y netcat-openbsd
nc -vz -w 5 gmail-smtp-in.l.google.com 25Matokeo yanayofanya kazi huonekana mara moja:
Connection to gmail-smtp-in.l.google.com (142.250.x.x) 25 port [tcp/smtp] succeeded!Port iliyozuiwa husubiri kwa sekunde tano kamili, kisha hushindikana:
nc: connect to gmail-smtp-in.l.google.com port 25 (tcp) timed out: Operation now in progressTimeout hiyo ndiyo kizuizi. Ni kichujio cha mtandao upande wa provider, si firewall yako. Kwa hiyo, hakuna mabadiliko ya ndani yanayoweza kurekebisha tatizo hilo. Fungua ticket yenye ujumbe huu: "Please enable outbound TCP port 25 for my VPS at <IP>; I am running a legitimate mail server." Usisakinishe mailcow hadi amri hii irejeshe "succeeded". Kumbuka kwamba inbound 25, yaani seva nyingine zinapounganisha kwako, ni njia tofauti na kwa kawaida huwa wazi. Ni upande wa outbound ambao providers huwekea kikomo.
Hatua ya 2, Weka rekodi za DNS sasa
Mabadiliko ya DNS huchukua muda kusambaa, kwa hiyo chapisha kila kitu unachoweza kabla ya kusakinisha. Chukulia kuwa domain yako ni example.com, host ya barua pepe ni mail.example.com, na IP ni 10.0.0.10. Kwenye zone yako, unda:
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"Rekodi ya SPF inasema “MX yangu pekee ndiyo inaweza kutuma kwa niaba ya domain hii; kataa nyingine zote”. Anza DMARC kwa p=none ili uweze kufuatilia ripoti bila kukatiza barua zako mwenyewe; badilisha iwe p=quarantine kisha p=reject baada ya kuthibitisha alignment. Rekodi mbili bado hazipo kwa makusudi: DKIM, ambayo mailcow itakutengenezea katika Hatua ya 6, na PTR, ambayo unaweka sasa kwenye paneli ya provider wako.
Weka PTR (reverse DNS) ya 10.0.0.10 iwe mail.example.com, thamani kamili ya MAILCOW_HOSTNAME. Hii ndiyo rekodi ambayo watu wengi husahau, na providers wakubwa huikataa ikiwa haijawekwa. Ikiwa paneli yako haina sehemu ya rDNS, fungua ticket.
Hatua ya 3, Sakinisha Docker
mailcow inahitaji Docker Engine yenye plugin ya Compose v2. Tumia script rasmi ya Docker ya usakinishaji wa haraka badala ya package ya Ubuntu ya docker.io, ambayo haitoi plugin ya Compose:
curl -fsSL https://get.docker.com | sudo sh
sudo docker compose versionUnapaswa kuona mstari wa Docker Compose version v2.x. Ikiwa docker compose version itaonyesha docker: 'compose' is not a docker command, Docker Engine imesakinishwa lakini plugin ya Compose haijasakinishwa. Sakinisha plugin hiyo kutoka kwenye repository ya Docker, endesha tena script iliyo hapo juu, au fuata mwongozo wetu wa misingi ya Docker Compose, unaoweka zote mbili kutoka kwenye repository ya apt ya Docker yenyewe.
Hatua ya 4, Clone mailcow na utengeneze usanidi
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
umask
sudo ./generate_config.shHakikisha umask inachapisha 0022 kwanza. mailcow hukataa kujengwa ikiwa file mask si sahihi, na root shell mpya kwenye Ubuntu 24.04 tayari hukupa 0022. Kisha script huuliza jambo moja muhimu: hostname kamili. Weka mail.example.com. Thamani hiyo lazima ilingane kabisa na A record na PTR. Script huandika mailcow.conf, yaani environment file moja inayosomwa na stack nzima. Ifungue ikiwa unahitaji kubadilisha port za web (HTTP_PORT, HTTPS_PORT) au kuzima ClamAV kwenye seva yenye rasilimali chache:
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 ni setting nyingine muhimu kwenye seva yenye RAM ndogo. Utafutaji wa full-text ni mtumiaji wa pili mkubwa wa memory anayetajwa kwenye nyaraka za mailcow. Kuuzima kunakuondolea tu utafutaji wa maandishi ya mwili wa ujumbe kwenye webmail.
Acha HTTP_PORT=80 na HTTPS_PORT=443 kama zilivyo, isipokuwa huduma nyingine kwenye host tayari inazitumia. ACME client iliyojengwa ndani ya mailcow inahitaji port 80 ipatikane kutoka Internet ili kupata certificate. Ndiyo sababu hupaswi kuendesha usanidi tofauti wa nginx pamoja na Certbot kwenye box hiyo hiyo. mailcow hutoa na kufanya renewal ya TLS yake yenyewe ndani, na service ya pili inayomiliki port 80/443 husababisha mgongano. Hali hiyo inatumika pia kwa service nyingine yoyote inayohitaji public web front end. Kwa hiyo, setup kama Halcyon kubadilisha library ya Jellyfin ionekane kama video store ya miaka ya 90, inayotarajia reverse proxy yake kwenye port 443, inapaswa kuwa kwenye host tofauti. Isipokuwa ni service ambayo haiombi public web port hata kidogo: relay ya RustDesk inayojihostiwa, inayosikiliza kwenye range yake ya 21115 hadi 21119 pekee, inaweza kushiriki box hiyo ikiwa una bandwidth ya kutosha.
Hatua ya 5, Anzisha stack na uingie
sudo docker compose pull
sudo docker compose up -d
sudo docker compose psAmri ya pull itapakua takribani images 24; ipe dakika chache. docker compose ps inapoonyesha kila container ikiwa running (au healthy), fungua https://mail.example.com kwenye browser. Taarifa chaguomsingi za kuingia kwa admin ni username admin na password moohoo. Badilisha password hiyo mara moja kwenye admin UI kupitia Access → Administrators. Browser ikionya kuhusu NET::ERR_CERT_AUTHORITY_INVALID, cheti cha ACME bado hakijatolewa. Angalia ACME failure hapa chini kabla ya kuhitimisha kuwa kuna hitilafu; self-signed placeholder ni hali ya kawaida katika dakika ya kwanza au mbili.
Hatua ya 6, Ongeza domain, mailbox na uchapishe DKIM
Katika admin UI, fungua ukurasa wa Mail Setup (Configuration → Mail Setup), kisha kwenye kichupo cha Domains bofya Add domain na uweke example.com. Halafu, chini ya Mailboxes, bofya Add mailbox ili uunde you@example.com yenye password. Hii ni mailbox inayofanya kazi na ambayo tayari inaweza kufikiwa kupitia IMAP.
Sasa tengeneza DKIM key. Nenda kwenye Configuration → ARC/DKIM keys; mailcow huenda tayari imetengeneza key ulipoongeza domain. Ikiwa haijafanya hivyo, itengeneze hapo, chagua domain, acha selector dkim, chagua 2048-bit, kisha bofya Add. Nakili thamani ndefu ya TXT inayoonyeshwa na uichapishe kama:
dkim._domainkey.example.com. TXT "v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqh...long-key...QAB"Ukurasa wa Domains wa mailcow una kitufe cha DNS kinachoonyesha kila record inayotarajiwa na kuonyesha alama ya kijani au msalaba mwekundu kulingana na kile kilichochapishwa kwa sasa. Tumia orodha hiyo kama checklist yako, na hakikisha kila mstari una alama ya kijani kabla ya kujaribu deliverability. Mstari wa DKIM ukiwa mwekundu baada ya kuuchapisha kwa kawaida humaanisha kuwa key iligawanywa vibaya katika vipande vya TXT; key ya 2048-bit ni ndefu kuliko kikomo cha herufi 255 kwa string moja ya TXT, kwa hiyo ibandike kama thamani moja ya kimantiki na umruhusu DNS host wako aigawanye katika vipande.
Hatua ya 7, Kagua uwasilishaji wa barua pepe na ufikie 10/10
Nenda kwenye mail-tester.com, nakili anwani nasibu inayoonyeshwa, kisha tuma ujumbe kutoka kwenye mailbox yako mpya. Ingia kwenye SOGo webmail kupitia https://mail.example.com/SOGo na utume ujumbe kutoka hapo. Kisha ubofye "Then check your score".
Lenga kupata 10/10. Makato ya kawaida na sababu zake ni hizi:
- SPF haijaambatanishwa, rekodi yako ya
MX/SPF haipo au IP inayotuma haijajumuishwa. Kagua tena TXT ya SPF. - Sahihi ya DKIM haijathibitishwa, TXT ya
dkim._domainkeyhaipo, bado inaendelea kuenea, au imeharibika. Hili ndilo kosa linalotokea mara nyingi. - Hakuna PTR / PTR hailingani, reverse DNS haitatui kuwa
mail.example.com. Rekebisha hili kwa provider. - Imeorodheshwa kwenye blocklist, IP yako ina reputation ya awali isiyofaa. Omba iondolewe kwenye orodha hiyo au omba IP safi zaidi.
Usitume barua pepe halisi kwa Gmail au Outlook hadi alama ionyeshe 10/10. Alama ya chini pamoja na IP mpya inaweza kusababisha domain yako iwekwe kwenye alama ya hatari siku ya kwanza.
Hatua ya 8, Unganisha mteja halisi wa barua pepe
Elekeza Thunderbird, Apple Mail au simu yako kwenye seva kwa kutumia mipangilio hii. Jina la seva ni mail.example.com kwa programu zote:
- IMAP: port 993, SSL/TLS (au 143 yenye STARTTLS)
- Uwasilishaji wa SMTP: port 465, SSL/TLS (au 587 yenye STARTTLS)
- Jina la mtumiaji: anwani kamili,
you@example.com - Nenosiri: nenosiri la mailbox uliloweka
Usiwahi kutuma barua pepe za mteja kupitia port 25. Port hiyo ni ya mawasiliano kati ya seva pekee. mailcow haitoi uwasilishaji uliothibitishwa kupitia port hiyo, na mteja anayeielekezwa hapo atakataliwa. Ikiwa mteja anaripoti Relay access denied, anajaribu kutuma kupitia port 25 au bila uthibitishaji. Mbadilishe atumie port 465 au 587 pamoja na vitambulisho vya mailbox yako.
Hatua ya 9, Hifadhi nakala ya vitu muhimu
mailcow inakuja na script ya kuhifadhi nakala inayounda snapshot ya kila volume yenye data inayodumu. Iendeshe kwenye disk ya nje au eneo la mbali lililowekwa mount:
sudo MAILCOW_BACKUP_LOCATION=/opt/mailcow-backups \
./helper-scripts/backup_and_restore.sh backup allall inahifadhi vitu sita, na kupoteza chochote kati ya hivyo kunapoteza data: vmail (mailbox halisi), crypt (keys zinazofungua vmail kwa njia ya usimbaji; bila crypt, vmail haina matumizi), mysql (MariaDB yenye domains, users, aliases na settings), redis (hali ya queue na cache), rspamd (spam/ham iliyojifunzwa), na postfix (mail queue). Huendesha ndani ya helper container inayotengeneza archives zilizobanwa, kwa hiyo backups hubaki katika hali thabiti hata stack ikiwa inaendelea kufanya kazi. Iweke iendeshe kiotomatiki kupitia cron kila usiku, na uongeze --delete-days 14 ili kufuta sets za zamani. Cron job inapoacha kufanya kazi hushindwa bila kutoa taarifa, kwa hiyo tuma exit status ya script mahali utakapogundua; seva ya ntfy unayojiendeshea hupokea curl ya mstari mmoja kutoka kwenye cron entry hiyo na kuweka taarifa ya failure kwenye simu yako usiku inapotokea. Restore hutumia script hiyo hiyo pamoja na restore, ambayo huorodhesha snapshots na kukuruhusu kuchagua utakachorejesha. Backup ambayo hujawahi kuijaribu kuirestore ni matumaini tu, si backup; fanya dry run moja kwenye VPS ya majaribio.
Hatua ya 10, Sasisha kwa ratiba
mailcow husasishwa kupitia script yake yenyewe. Script hiyo huvuta code mpya, huhamisha mailcow.conf, hupakua images mapema, na huwasha upya containers kwa mpangilio:
cd /opt/mailcow-dockerized
sudo ./update.sh --check # reports whether an update exists, changes nothing
sudo ./update.sh # applies itFanya backup kwanza (Hatua ya 9), kwa sababu migration ya schema ni vigumu kuirejesha. Updates hutolewa mara kwa mara na hujumuisha marekebisho ya usalama kwa daemons zinazofikiwa kupitia Internet. Kwa hiyo, usiiache mail server bila kusasishwa kwa miezi kadhaa. Ikiwa update itaacha container yoyote ikiwa unhealthy, sudo docker compose logs --tail=50 <service>-mailcow hutaja daemon ambayo ilishindwa kuwaka tena.
Dokezo kuhusu kuimarisha usalama
mailcow huendesha huduma yake ya netfilter (netfilter-mailcow) inayopiga marufuku IP zinazoshambulia port za barua pepe na webmail, hivyo sehemu ya barua pepe inalindwa moja kwa moja. Hata hivyo, hii hailindi SSH kwenye host yenyewe. SSH bado iko wazi na bado hushambuliwa kwa brute force. Tumia build hii pamoja na Fail2ban inayofuatilia logi ya uthibitishaji ya SSH na login inayotumia key pekee. Linda UI ya usimamizi ya mailcow kwa password imara. Ikiwezekana, usiiweke kwenye Internet ya umma au ifikie kupitia VPN.
Aina za hitilafu, pamoja na mifuatano kamili ya ujumbe
Foleni za barua pepe hazitumii barua kamwe. Endesha sudo docker compose exec postfix-mailcow postqueue -p, au soma foleni ya barua pepe katika kiolesura cha usimamizi; maingizo hubaki katika hali ya deferred yakiwa na:
status=deferred (connect to gmail-smtp-in.l.google.com[142.250.x.x]:25: Connection timed out)Hii inaonyesha kwamba mtoa huduma wako ameziba port ya 25 ya outgoing (Hatua ya 1). Hakuna mabadiliko ya configuration yatakayosuluhisha hili; fungua tiketi. Tatizo si DNS wala TLS; dalili yake ni neno timed out likihusishwa na MX ya mbali kwenye port ya 25.
Gmail huweka kila kitu kwenye spam au hukikataa. Fungua ujumbe katika Gmail, chagua "Show original", kisha soma matokeo ya uthibitishaji. dkim=fail au dkim=none inamaanisha kuwa TXT ya dkim._domainkey haipo, imeharibika, au bado haijasambazwa; chapisha tena thamani halisi inayoonyeshwa na ukurasa wa ARC/DKIM, kisha subiri TTL. spf=fail inamaanisha kuwa rekodi za SPF/MX hazijumuishi IP yako. Alignment ni muhimu; ukaguzi mmoja ukishindwa unatosha ujumbe kuwekwa kwenye spam.
Watoa huduma wakubwa wanakataa muunganisho. Bounces au log za Postfix zina ujumbe wa Gmail wa kukataa PTR:
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.Msimbo wa 550 5.7.25 unamaanisha kuwa reverse DNS haipo au hailingani. Weka PTR ya IP yako iwe mail.example.com kwa mtoa huduma (Hatua ya 2). Forward (A) na reverse (PTR) lazima zilingane, na zote zitaje host ileile ambayo mailcow hutumia kujitambulisha kwa seva nyingine.
Kivinjari huonyesha onyo la certificate ambalo haliondoki. Container ya acme-mailcow imeshindwa kupata certificate halali. Kagua log yake:
sudo docker compose logs acme-mailcow | tail -n 40Mstari kama Cannot validate any hostnames, skipping Let's Encrypt for 1 hour. au hitilafu ya challenge inamaanisha kuwa port ya 80 haifikiwi kutoka Internet, au rekodi ya A haielekezi kwenye seva hii. Thibitisha kuwa mail.example.com inatatuliwa kuelekea kwenye seva hii, fungua port 80 na 443 kupitia firewall yoyote ya host, na uhakikishe kuwa hakuna huduma nyingine inayosikiliza kwenye port hizo. Baada ya kurekebisha sababu, anzisha upya client kwa sudo docker compose restart acme-mailcow badala ya kusubiri muda wa back-off wa saa moja uishe.
FAQ
Je, self-hosting ya barua pepe inafaa kweli?
Ikiwa unataka umiliki wa data, aliases zisizo na kikomo na udhibiti kamili, ndiyo. mailcow hukupa stack ya kitaalamu kwa gharama ya VPS. Lakini deliverability ni kazi ya kudumu: reputation ya IP, ulinganifu wa DNS na ufuatiliaji wa blocklist haviishi kabisa. Kwa anwani ya biashara ya muhimu, ambapo siku moja tu kwenye spam folder ya mtu inaweza kukugharimu, managed provider ni chaguo la busara. Tumia self-hosting unapothamini udhibiti kuliko urahisi na uko tayari kuisimamia. Ikiwa unachotaka hasa ni data yako isiwe kwenye seva za mtu mwingine badala ya barua pepe, anza na huduma ambayo mtu mwingine hana ushawishi juu yake: photo library haina tatizo la deliverability kabisa, na ulinganisho wetu wa PhotoPrism na Immich unaeleza mahitaji ya chini ya RAM na commands za backup kwa usanidi huo kwenye aina hiyo hiyo ya VPS.
Nitajuaje kama outbound port 25 imezuiwa?
Endesha nc -vz -w 5 gmail-smtp-in.l.google.com 25 kutoka kwenye seva. "succeeded!" inamaanisha port iko wazi; timed out baada ya kusubiri inamaanisha provider wako ameizuia. Hii ndiyo sababu ya kawaida zaidi inayofanya seva ya self-hosting iweze kupokea barua lakini ishindwe kuzituma, na suluhisho pekee ni provider wako kufungua port hiyo. Hakuna setting ya ndani inayoweza kuibadilisha.
Kwa nini barua zangu bado zinaingia kwenye spam folder ya Gmail?
Karibu kila mara, sababu ni authentication chain iliyoharibika. Tumia "Show original" katika Gmail na utafute spf=pass, dkim=pass na dmarc=pass. dkim=fail inaonyesha kuwa dkim._domainkey TXT record haipo au imeundwa vibaya; kutolingana kwa PTR au IP mpya isiyo na historia ya kutuma pia huathiri deliverability. Kwanza fanya mail-tester.com ifikie 10/10, kisha ipatie IP muda wa kujenga reputation polepole. Anza kwa messages chache kwa siku na uongeze hatua kwa hatua, badala ya kutuma volume kubwa siku ya kwanza.
Ni vitu gani hasa ninavyohitaji kufanya backup?
Endesha backup_and_restore.sh backup all na uhifadhi seti nzima nje ya seva. Inahifadhi vmail (mailboxes), crypt (keys zinazozifungua), database ya MariaDB (domains, users, aliases na settings), Redis, data iliyojifunzwa na Rspamd, pamoja na Postfix queue. Crypt volume ndiyo watu wengi huipuuza. Bila hiyo, backup ya vmail husomeka kama ciphertext isiyoweza kufafanuliwa. Jaribu kurejesha backup kwenye scratch box angalau mara moja.
Je, ninaweza kuendesha mailcow kwenye VPS yenye 2 GB?
Si kwa utulivu. generate_config.sh inapendekeza kuzima ClamAV chini ya takriban 2.5 GiB. Hata hivyo, Rspamd, ClamAV, Dovecot na MariaDB hushindania memory, kwa hiyo utakumbana na swap na OOM kills chini ya load halisi. Chukulia 6 GiB pamoja na 1 GiB swap kuwa kiwango cha chini kwa installation thabiti ya mtumiaji mmoja. Hamia 8 GiB mara tu zaidi ya watu wawili wanapoitegemea.