mailcow حزمة بريد كاملة (Postfix، Dovecot، واجهة ويب، Rspamd، …) تعمل بـ Docker. التسليم الجيد يتطلب DNS سليماً (MX، SPF، DKIM، DMARC) وPTR متوافقاً مع اسم الخادم.
متطلبات رسمية (ملخص)
| المورد | الحد الأدنى المذكور في الوثائق |
|---|---|
| RAM | 6 Gio + swap ~1 Gio |
| قرص | 20 Gio+ (بدون صناديق البريد) |
| معمارية | x86_64 أو ARM64 |
لا يُدعم OpenVZ/LXC لبعض الاستخدامات — يُفضّل KVM وRAM كافية (مثلاً 8 Gio+).
تحقق من عدم احتلال المنافذ على المضيف:
Bashss -tlpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'
DNS قبل البدء
- FQDN للخادم، مثل
mail.example.com— سيصبحMAILCOW_HOSTNAME. - سجل A (و AAAA إن وُجد IPv6) نحو IP الـ VPS.
- MX للنطاق نحو هذا FQDN.
- PTR لعنوان IP العام يطابق اسم الخادم (غالباً عند مزوّد الاستضافة).
- بعد التشغيل: SPF، DKIM من الواجهة، DMARC.
راجع وثائق mailcow.
1) حزم النظام
Bashsudo apt update sudo apt install -y git openssl curl gawk coreutils grep jq
2) Docker
Bash1curl -sSL https://get.docker.com/ | CHANNEL=stable sudo sh 2sudo systemctl enable --now docker 3sudo apt install -y docker-compose-plugin 4docker --version 5docker compose version
3) استنساخ mailcow
Bash1sudo su 2umask 0022 3cd /opt 4git clone https://github.com/mailcow/mailcow-dockerized 5cd mailcow-dockerized 6./generate_config.sh
عدّل mailcow.conf عند الحاجة:
MAILCOW_HOSTNAME= FQDN العام.- إن كان IPv6 يسبب مشاكل:
ENABLE_IPV6=false(ثم إعادة تشغيل كاملة للحزمة — راجع الوثائق).
خفّف الحمل اختيارياً:
BashSKIP_CLAMD=y SKIP_FTS=y
4) التشغيل
Bashdocker compose pull docker compose up -d
الواجهة: https://VOTRE_FQDN/admin — الافتراضي admin / moohoo (غيّر فوراً).
التأمين السريع
- تغيير كلمة مرور المسؤول.
- تفعيل 2FA.
- التحقق من NTP (
timedatectl). - إعداد DKIM/SPF/DMARC من الواجهة والنطاق.
UFW و Docker
قواعد UFW البسيطة قد لا تتعامل مع Docker كما تتوقع؛ راجع قسم DOCKER-USER ووثائق mailcow عن الجدار.
MTU
على بعض السحابات ضبط MTU في docker-compose.yml (مثلاً 1450) حسب استكشاف الأخطاء.
تحديثات
استخدم update.sh الرسمي مع النسخ الاحتياطي للمجلد والـ volumes.
Bashcd /opt/mailcow-dockerized ./helper-scripts/mailcow-reset-admin.sh
(لإعادة تعيين كلمة مرور المسؤول عند الحاجة.)