📬 Stalwart — как работи пощата сега

Вътрешна документация · обновено 2026-07-25 · после може да я update-ваме

Накратко

Пощата на WebFactor е на две системи: Stalwart (новата) на сървър s15 (NetCup) и mailcow (старата) на сървър s4. Постепенно всичко се мести от mailcow към Stalwart. Мигрираните домейни ги пазим и на двете места (виж долу).
46
домейни на Stalwart
286
пощенски кутии
~119k
писма (тела)
~540 GB
общо съхранение

🏗️ Архитектура — къде живее едно писмо

Stalwart НЕ пази писмото на едно място. Разделя го на два слоя: „горе" (бърз индекс) и „долу" (тежките тела).

✉️ Входящо писмо → Stalwart (s15)
приема се на порт 25 (MX), проверява спам (Bayes), после се записва разделено:
⬆️ ГОРЕ — Метаданни + индекс s15
PostgreSQL, вътре в Incus контейнер mail на s15. Пази: кой на кого, тема, дата, папки (Inbox/Sent/…), флагове (прочетено/непрочетено), пълнотекстово търсене. Малко, но се чете постоянно и трябва да е БЪРЗО. → локално на s15.
Размер: ~138 GB (от които ~131 GB са СТАРИ тела, останали в PostgreSQL от преди преместването на blob-овете — чакат почистване; реалният индекс е ~7 GB)
⬇️ ДОЛУ — Телата на писмата (blob store) s4
MinIO (S3-съвместимо хранилище) на сървър s4100.64.0.26:9000, bucket ovcharovo-blobs. Пази самите тела на писмата + прикачените файлове. Тежко, но се пипа по-рядко → изнесено на голям диск на s4 (3.6 TB).
Размер: ~402 GB
Защо разделено „горе/долу"? Индексът (горе) стои локално на s15 за скорост при отваряне/търсене; тежките тела (долу) са на s4, за да не пълнят малкия бърз диск. Stalwart сглобява писмото при отваряне — тегли метаданните от PostgreSQL (s15) и тялото от MinIO (s4).
Открита слабост: ~131 GB стари тела още стоят и в PostgreSQL (горе), при това дублирани и в MinIO (долу). Това е за почистване (сваля PG от 138 GB към ~7 GB) — чака backup + одобрение. Затова общата цифра „~540 GB" включва дублиране.

🖥️ Къде физически се върти Stalwart

КомпонентКъдеДетайл
Stalwart сървърIncus контейнер mail на s15NetCup, публичен IP 159.195.193.41; диск 900 GB (149 GB заети)
Метаданни (горе)PostgreSQL в същия контейнер (s15)локално, за скорост
Тела (долу)MinIO на s4през вътрешна VPN (Tailscale)
УебмейлRoundcube, отделен контейнер на s15webmail.<домейн>
Вход отвънHAProxy на s15 hostпортове 25/465/587/993/443 → контейнера
Да — всичко е в Incus контейнер (mail) на s15. Uеб/HAProxy са на host-а на s15, телата са на отделен сървър (s4).

🟢 Домейни НА Stalwart (новото, 46)

Тези зареждат пощата от Stalwart (s15). MX сочи mail.<домейн>159.195.193.41.

• acropolbuild.bg• antiquesfrance.bg• atisclima.com• aurastudioprana.com• aveceramica.com• bsezcluster.org• climaluxvarna.bg• climavarna.com• dgg.bg• dmc.bg• ekipat.bg• eterichno.bg• fluweelstudio.nl• giar.bg• globstroy.bg• goldex.bg• greenshieldlogistic.com• gtrentacar.bg• investtime.bg• kanalvarna.com• kartach1.com• kartene-varna.com• komarov.bg• krasteviconsult.com• lucaffebg.com• nidoresidence.bg• notify.palaceofvarna.com• notify.varnanorth-properties.com• ortomedics.com• ovcharovo.bg• ovcharovo.com• pipingmc.com• promocenter.bg• promosite.bg• registracianafirma.com• remont-na-pokrivi.com• remontnapokrivivarna.com• ricom.bg• royalplasticsurgery.eu• spedstroy.bg• stroitam.com• topmateriali.bg• tradehouse.bg• varnahomecenter.bg• varnanorth-properties.com• webfix.bg

🟠 Домейни още на mailcow (старото)

101
домейна ЖИВИ на mailcow (active=1)
27
мигрирани (active=0, данните пазени)

Най-големите още живи на mailcow (за местене)

ДомейнКутииБележка
bultag.com56голям — за местене
palaceofvarna.com48голям — за местене
komarov.bg40⏳ в процес (задържан cutover)
dmc.farm36за местене
webfactor.com26наш
vipbg.bg22голям — за местене
allinclusive-pochivki.eu10
dobrotitsa.bg5
opensearesidence.com5

+ още ~85 малки домейна (1–3 кутии) живи на mailcow.

❓ Мигрираните — на старото ли са, на новото, или на двете?

И на двете (нарочно). Когато преместим домейн mailcow → Stalwart:

Значи за мигрираните домейни (27 бр.) писмата ги има и на mailcow, и на Stalwart. mailcow е старото/бекъп, Stalwart е новото/живо.

Изключение: домейни, дошли от SuperHosting (напр. climaluxvarna, varnahomecenter, aveceramica…) — там старото копие е на SuperHosting (на временна парола), пази се за rollback и се спира след потвърждение от клиента.

🔑 Как влиза клиент (за всеки домейн)

УслугаАдресПорт
Входяща/изходяща пощаmail.<домейн>IMAP 993 (SSL) · SMTP 465 (SSL)
Уебмейлwebmail.<домейн>Roundcube (443)
Авто-конфигурацияmailconfig.<домейн>страница с настройки за телефон/Outlook

Паролите на хората се запазват при местене (внасяме оригиналните хешове) — никой не сменя нищо.