تجيب وثائق Stalwart جيدًا عن سؤالين في التحجيم: ما الذي يحتاجه تثبيت صغير جدًا، وكم صندوق بريد يتحمله خادم واحد داخل عنقود. أما النطاق الذي تقع فيه معظم المؤسسات فعلًا، من بضع مئات إلى بضعة آلاف من الصناديق، فمتروك لك. هذا المقال يملأ تلك الفجوة من الوثائق نفسها، على ثلاث شرائح: 200 و2,000 و10,000 صندوق بريد.
ملاحظة قبل البدء: نشغّل Stalwart في الإنتاج لجامعة لديها 10,000 صندوق بريد، لكننا لم نُجرِ اختبارات حمل ولا ننشر أرقام أداء. كل رقم أدناه إما مقتبس من وثائق Stalwart مع رابط، وإما عملية حسابية بسيطة يمكنك إعادتها بحصصك الخاصة.
تحجيم Stalwart في لمحة
| صناديق البريد | الخوادم | المخازن | سقف القرص بحصة 5 غيغابايت |
|---|---|---|---|
| 200 | 1 | RocksDB للأدوار الأربعة (الافتراضي في Docker) | 1 تيرابايت |
| 2,000 | 1 يكفي من حيث السعة | PostgreSQL للبيانات وتخزين متوافق مع S3 للكائنات | 10 تيرابايت |
| 10,000 | 1 يتحمله؛ 3 أو أكثر للتوافر العالي | مخازن مشتركة: PostgreSQL أو FoundationDB، وكائنات موزعة، ومحرك بحث، وRedis أو Valkey | 50 تيرابايت |
أعداد الخوادم من صفحة التحجيم في Stalwart، وعمود القرص حساب بسيط من الحصة، والاستخدام الفعلي عادةً أقل بكثير من السقف (راجع قسم 10,000 صندوق لترى ما يحمله خادم إنتاج فعلي).
ما الذي تلتزم به وثائق Stalwart فعلًا
- الذاكرة في وضع الخمول: نحو 100 ميغابايت، بحسب صفحة متطلبات النظام.
- التثبيتات الصغيرة: تقول الصفحة نفسها إن 1 غيغابايت من الذاكرة يكفي عمومًا لنحو 5 إلى 10 مستخدمين، وإن نواة معالج واحدة تكفي لإعداد قليل الحركة بنحو خمسة مستخدمين.
- الاتصالات: حتى 8,192 اتصالًا متزامنًا افتراضيًا، موزعة على IMAP وJMAP وWebDAV وSMTP وPOP3. خفض هذا الحد يخفض استهلاك الذاكرة.
- لكل خادم: تقول صفحة تحجيم العنقود إن خادمًا واحدًا مضبوطًا جيدًا يتحمل من 10,000 إلى 50,000 صندوق نشط، وإن البيئات كثيفة الاستخدام تخطط لخادم واحد لكل 5,000 إلى 10,000 مستخدم نشط تقريبًا.
- التوافر العالي: ثلاثة خوادم على الأقل ويُفضَّل عدد فردي، والتوسع حين يبقى أي مورد عند 70 إلى 80 بالمئة، والتجهيز لضعفي إلى ثلاثة أضعاف الحمل الأولي.
لاحظ الغائب: لا يوجد رقم للذاكرة لكل صندوق بريد، ولا رقم للقرص إطلاقًا. والسبب أن استهلاك الذاكرة يعتمد أساسًا على إعدادات الذاكرة المؤقتة، واستهلاك القرص يعتمد على واجهات التخزين التي تربطها.
الذاكرة في معظمها ذاكرة مؤقتة، وأنت من يحدد حجمها
تصف صفحة الأداء ذاكرة البيانات الوصفية للرسائل بأنها الأهم، لأن عملاء IMAP يستخدمونها باستمرار، وتطلب ذاكرة كافية لتخزين البيانات الوصفية لكل مستخدم متصل في الوقت نفسه. ويعرض مرجع الذاكرة المؤقتة القيم الافتراضية: 50 ميغابايت لبيانات الرسائل، و20 للحسابات، و10 لكل من جهات الاتصال والأحداث والملفات ورموز الوصول، إضافة إلى ذاكرات صغيرة لـ DNS. هذه القيم متواضعة عن قصد.
القاعدة العملية إذن: ابدأ بالقيم الافتراضية، وراقب الذاكرة المقيمة للعملية ومؤشرات نسبة الإصابة في الذاكرة المؤقتة خلال صباح مزدحم، وارفع ذاكرة الرسائل حين تنخفض النسبة. الخادم الذي "يستهلك ذاكرة أكثر مما تقوله الوثائق" بعد استيراد كبير عبر IMAP يملأ غالبًا ذاكراته المؤقتة حتى حدودها، وهذا هو الغرض منها.
التخزين أربعة قرارات لا قرار واحد
يقسّم Stalwart التخزين إلى أربعة أدوار، كما في صفحة اختيار قاعدة البيانات:
- مخزن البيانات: البيانات الوصفية مثل المجلدات والعلامات والتقويمات وجهات الاتصال والإعدادات.
- مخزن الكائنات (blob): نصوص الرسائل والمرفقات، وهنا يذهب معظم القرص.
- مخزن البحث: فهارس البحث في النص الكامل.
- المخزن في الذاكرة: بيانات قصيرة العمر لحدود المعدل والجلسات والعنقدة وفحص الرسائل المزعجة.
على خادم واحد يمكن وضع الأدوار الأربعة في واجهة واحدة. تثبيت Docker يجعلها كلها RocksDB على القرص المحلي افتراضيًا، وهو ما يوصي به Stalwart للخادم الواحد. أما للعناقيد فتوصي صفحة تخزين العنقود بـ FoundationDB للبيانات، وتصف PostgreSQL بأنه ناضج وجيد الأداء، وتنصح بمحرك مخصص مثل Elasticsearch أو Meilisearch للبحث (لأن قاعدة بيانات عامة تزيد تضخيم الكتابة)، وبـ Redis أو Valkey للبيانات في الذاكرة. وتحذير واحد في الوثائق يستحق أن يؤخذ حرفيًا: تغيير الواجهة لاحقًا يعني ترحيل بياناتك. اختر وأنت تفكر في نسختك ذات الـ 10,000 صندوق.
القرص: احسبه بنفسك
بما أن الوثائق لا تعطي رقمًا، احسب مخزن الكائنات من سياسة الحصص لديك. مثال: 200 صندوق بحصة 5 غيغابايت تعني سقفًا قدره 1 تيرابايت، و2,000 صندوق بالحصة نفسها تعني 10 تيرابايت. معظم الصناديق لا تبلغ حصتها، فالاستخدام الفعلي أقل، لكن السقف هو ما تخطط حوله للنسخ الاحتياطي والنمو. أضف مساحة لفهرس البحث، وتذكّر أن صفحة التحجيم تعدّ سرعة الإدخال والإخراج في التخزين، لا حجمه، أمرًا حاسمًا للتسليم والفهرسة والبحث.
200 صندوق بريد
خادم واحد يكفي وزيادة. RocksDB للأدوار الأربعة يبقي الأمور بسيطة، ومرشح الرسائل المزعجة المدمج في Stalwart يعني أنك لا تحتاج إلى تحجيم Rspamd منفصل. الحد الأدنى البالغ 1 غيغابايت في الوثائق مخصص لخمسة إلى عشرة مستخدمين، فامنح خادمًا لـ 200 مستخدم أكثر من ذلك واترك هامشًا للذاكرة المؤقتة. الوثائق لا تنشر رقمًا لكل مستخدم، لذا قِس بعد أول أسبوع مزدحم بدل التخمين. وأكثر من نواة واحدة يفيد حين تتزامن عشرات الهواتف في الوقت نفسه. خذ نسخًا احتياطية بلقطة لوحدة البيانات كاملة، وجرّب الاستعادة مرة قبل أن تحتاجها.
2,000 صندوق بريد
بحسب أرقام الوثائق نفسها، ما زال هذا ضمن قدرة خادم واحد بوضوح. سبب التغيير هنا تشغيلي لا سعوي. نقل مخزن البيانات إلى PostgreSQL والكائنات إلى تخزين كائنات متوافق مع S3 يعني أن النسخ الاحتياطي والتكرار والمراقبة تتم بأدوات يشغّلها فريقك غالبًا من قبل. وإن كان المستخدمون يبحثون كثيرًا في البريد القديم، فهذه هي المرحلة التي يبدأ فيها محرك بحث مخصص بإثبات قيمته. وتأكد أن منفذ الإرسال 587 يستمع فعلًا قبل ترحيل العملاء؛ في تثبيتنا لم يكن مفعّلًا افتراضيًا.
10,000 صندوق بريد
نظريًا يتحمل خادم واحد هذا الحجم. السؤال عند هذا الحجم هو ما يحدث حين يتوقف ذلك الخادم صباح يوم عمل. تقول الوثائق إن التوافر العالي يبدأ من ثلاثة خوادم، وهكذا خطّطنا له: عدة خوادم Stalwart على مخازن مشتركة، والبيانات الوصفية في PostgreSQL مع نسخة متماثلة، وكائنات الرسائل في MinIO موزّع، وناقل رسائل للتنسيق، وHAProxy في الواجهة. أما خادم الإنتاج فما زال يعمل اليوم كخادم واحد وكل بياناته في PostgreSQL، وهذا بالضبط الخطر الذي وُضعت الخطة لإزالته. التفاصيل، ومنها ما واجهناه مع نموذج الإعداد في الإصدار 0.16، موجودة في مقارنتنا بين mailcow وStalwart وMailu عند 10,000 صندوق.
ولصورة عن الاستخدام الفعلي لا الحصة: في 30 سبتمبر 2026 كان خادم الإنتاج لدينا (Stalwart 0.16.13، و24 نواة، و60 غيغابايت ذاكرة) يحمل نحو 559 غيغابايت في PostgreSQL لقرابة 10,000 صندوق بريد، مع كل الرسائل والمرفقات داخل قاعدة البيانات. أي نحو 56 ميغابايت لكل صندوق في المتوسط، وهو جزء صغير من أي حصة معتادة، وكان قرصه البالغ 3 تيرابايت ممتلئًا بنسبة 43%. إنه خادم واحد في لحظة واحدة وليس اختبار أداء، لكنه يبيّن كم يبالغ سقف الحصة في تقدير القرص الذي تحتاجه في اليوم الأول. وتجد كيف نقلنا هذه الصناديق في خطة الانتقال إلى الاستضافة الذاتية.
تحفظان. توصي الوثائق بـ FoundationDB للإعدادات الموزعة، وبناء Docker الافتراضي لا يتضمنه، فخطط لبناء مخصص إن اخترته. نحن اخترنا PostgreSQL لأننا نعرف تشغيله. كما أن النسخ المتماثلة للقراءة والمخازن المجزأة من ميزات Enterprise بحسب مقارنة الإصدارات، أما العنقدة الأساسية ففي إصدار Community.
Stalwart مقابل Dovecot: أنت تحجّم أشياء مختلفة
Dovecot خادم IMAP وPOP3. التثبيت المعتاد له يعمل خلف Postfix لـ SMTP، مع Rspamd للرسائل المزعجة وغالبًا خادم CalDAV منفصل، فأنت تحجّم وتحدّث أربع أو خمس خدمات. أما Stalwart فملف Rust تنفيذي واحد يقدم SMTP وIMAP وPOP3 وJMAP وCalDAV وCardDAV وWebDAV مع ترشيح مدمج للرسائل المزعجة، فتحجّم عملية واحدة ومخازنها. لدى Dovecot عقود من الاستخدام الإنتاجي ومعرفة واسعة بضبطه. إن كان إعداد Postfix وDovecot لديك يعمل، فاستهلاك الموارد وحده ليس سببًا للانتقال. اتساع البروتوكولات وJMAP وتشغيل خدمة واحدة بدل خمس أسباب أقوى.
إن كان اتصال خادمك الخارجي مقيّدًا
تسرد صفحة المتطلبات الاتصالات الخارجية التي يحتاجها الخادم: إصدارات GitHub لحزمة واجهة الإدارة عند أول تشغيل (من دونها يعيد /admin الخطأ 404)، ودليل ACME للشهادات، وDNS على المنفذ 53. على شبكة مغلقة خطط لها قبل يوم التثبيت لا أثناءه. والعقبة التالية هي وصول الرسائل إلى صناديق الوارد؛ يغطي دليلنا لخطأ Outlook 550 5.7.515 على الخوادم المستضافة ذاتيًا الفحوص اللازمة.
أين يقع FanMail
FanMail هو طبقة البريد عبر الويب والإدارة التي بنيناها فوق Stalwart: عميل JMAP للمستخدمين ولوحة إدارة للخادم، يعمل على بنيتك التحتية الخاصة. التحجيم أعلاه ينطبق عليه كما هو، لأن خادم البريد تحته هو Stalwart نفسه. ولمعرفة ما إذا كان تشغيل خادمك الخاص مجديًا بحجمك أصلًا، جرّب حاسبة تكلفة البريد المستضاف ذاتيًا، أو اقرأ دراسة حالة تكلفة البريد المستضاف ذاتيًا. ولماذا بنينا البريد عبر الويب على JMAP بدل IMAP تجده في JMAP مقابل IMAP للبريد عبر الويب.
إذا كنت تقارن هذا بخطة مستضافة، فقد شرحنا أسعار Zoho Mail في 2026 وما تستبعده كل خطة.
الأسئلة الشائعة
ما الحد الأدنى لمتطلبات تشغيل Stalwart؟
تقول وثائق Stalwart إنه يستهلك نحو 100 ميغابايت من الذاكرة في الخمول، وإن 1 غيغابايت يكفي عمومًا لـ 5 إلى 10 مستخدمين، وإن نواة واحدة تكفي لإعداد قليل الحركة بنحو خمسة مستخدمين. لا يوجد حد أدنى رسمي للقرص لأنه يعتمد على واجهة التخزين والحصص.
كم ذاكرة يحتاج Stalwart لـ 200 مستخدم؟
لا ينشر Stalwart رقمًا لكل مستخدم. معظم الذاكرة تذهب إلى ذاكرات مؤقتة تضبطها أنت، فابدأ فوق حد 1 غيغابايت المخصص للتثبيتات الصغيرة، واحتفظ بالقيم الافتراضية، ثم كبّر بحسب الذاكرة المقيمة ونسبة الإصابة في ساعات الذروة.
كم صندوق بريد يتحمل خادم Stalwart واحد؟
بحسب صفحة تحجيم العنقود في Stalwart، يتحمل خادم واحد مضبوط جيدًا من 10,000 إلى 50,000 صندوق نشط، بحسب الاستخدام والتزامن وسرعة التخزين. وللتوافر العالي توصي الوثائق بثلاثة خوادم على الأقل.
هل أستخدم RocksDB أم PostgreSQL مع Stalwart؟
RocksDB هو الخيار الموصى به للخادم الواحد وهو الافتراضي في Docker. للعنقود توصي الوثائق بـ FoundationDB وتصف PostgreSQL بأنه خيار ناضج. التبديل لاحقًا يتطلب ترحيل البيانات، فقرّر مبكرًا.
كم مساحة قرص يحتاجها Stalwart لكل صندوق بريد؟
لا ينشر Stalwart رقمًا لكل صندوق، لأن ذلك يعتمد على واجهة التخزين وعلى كمية البريد التي يحتفظ بها المستخدمون. خطط للنسخ الاحتياطي والنمو على أساس سقف الحصة (عدد الصناديق مضروبًا في الحصة). وكمعطى فعلي، كان خادمنا ذو الـ10,000 صندوق يحمل نحو 559 غيغابايت، أي قرابة 56 ميغابايت للصندوق في المتوسط.
هل Stalwart أخف من Dovecot؟
يؤديان مهام مختلفة، فالمقارنة المباشرة مضللة. Dovecot خادم IMAP وPOP3 يعمل عادةً بجانب Postfix وRspamd وخادم CalDAV. أما Stalwart فعملية واحدة تغطي SMTP وIMAP وPOP3 وJMAP وCalDAV وCardDAV وWebDAV مع ترشيح الرسائل المزعجة مدمجًا. قارن حزمة Dovecot كاملة بخادم Stalwart واحد، لا Dovecot وحده.
ما الاتصالات الخارجية التي يحتاجها خادم Stalwart؟
بحسب صفحة المتطلبات: إصدارات GitHub لتنزيل واجهة الإدارة عند أول تشغيل، ودليل ACME (مثل Let's Encrypt) للشهادات، وDNS على المنفذ 53 عبر UDP وTCP، أو DNS عبر HTTPS حيث يُضبط.