الأدلة الإرشادية
الاستضافة الذاتية
يمكنك تشغيل منصّة عمل Oloproof على خادمك الخاص: داخل مقرّك، أو في سحابة خاصة، أو لدى مزوّد سحابي كندي. تشغّل الحزمة الموجودة في deploy/self-hosted/ الصورتين نفسيهما المستخدمتين في oloproof.com (الويب والعامل) مع PostgreSQL، وتُسحب حسب الملخّص. تبقى بياناتك حيث تشغّلها، ولا يُرسَل أي شيء إلى Oloproof.
المتطلبات
- مضيف Linux واحد عليه Docker Engine وإضافة Compose. تكفي ذاكرة 4 GB ومعالجان لفريق؛ والعامل محدود بـ 1.5 GB والويب بـ 768 MB.
- مساحة قرص لـ PostgreSQL. يُخزَّن هناك كل تشغيل تدفعه.
- وكيل عكسي لـ HTTPS (Caddyfile.example مثال يعمل؛ ويصلح nginx أيضًا).
- وصول إلى ghcr.io/etobicoke/oloproof، أو الصور منسوخة إلى سجلّك الخاص.
التثبيت
cd deploy/self-hosted
sh generate-env.sh # writes .env and fills every secretاضبط OLOPROOF_WEB_IMAGE وOLOPROOF_WORKER_IMAGE (كلاهما ملخّص ...@sha256:) و OLOPROOF_PUBLIC_URL في .env، وطريقة واحدة على الأقل لتسجيل الدخول: البريد لحسابات كلمة المرور (OLOPROOF_MAIL_FROM مع OLOPROOF_SMTP_URL أو OLOPROOF_RESEND_API_KEY) أو مزوّد OAuth. يرفض الويب البدء من دون إحداهما. ثم شغّله:
docker compose --env-file .env up -d
curl -fsS http://127.0.0.1:3000/api/healthتُحدّث خدمة migrate قاعدة البيانات قبل أن يبدأ الويب والعامل. التسجيل بدعوة، تُصدَر باستخدام OLOPROOF_OPERATOR_TOKEN (deploy/README.md، «Signup»).
الإعداد
يسرد .env.example كل متغيّر يقرؤه الويب والعامل، وكلٌّ منها موسوم بأنه مطلوب أو مولَّد أو اختياري. المتغيّر الاختياري الفارغ يوقف ميزته. احتفظ بالأسرار المولَّدة: كلمة مرور جديدة لقاعدة البيانات تمنعك من الوصول إليها، ومفتاح توقيع جديد يبدأ موقّعًا جديدًا. لا فوترة في الحزمة المستضافة ذاتيًا، لذا لكل مساحة عمل أعداد الحالات الشهرية للفئة المجانية؛ ارفع OLOPROOF_FREE_TIER_PUSHED_MONTHLY وOLOPROOF_FREE_TIER_MANAGED_MONTHLY لفريقك.
لا شبكة صادرة افتراضيًا
لا ترسل الحزمة أي قياس عن بُعد ولا تستدعي أي خدمة من Oloproof. ولا تصل إلى الشبكة إلا لما تفعّله أنت: البريد (مُرحِّل SMTP داخل شبكتك، أو Resend)، وتسجيل الدخول عبر OAuth، وTurnstile، ومزوّدي النماذج الذين تخزّن مساحة عمل مفتاحًا لهم. ومن دون أيٍّ منها تعمل بلا أي مسار إلى الخارج. لمضيف معزول عن الشبكة، انسخ الصور الثلاث إلى سجلّك الخاص ووجّه متغيّرات الصور إليه. تحتاج حسابات كلمة المرور إلى البريد، لذا اضبط في الشبكة المعزولة OLOPROOF_SMTP_URL على مُرحِّل داخلها.
النسخ الاحتياطية
sh backup.sh /srv/backups/oloproofيكتب backup.sh ملف pg_dump مضغوطًا في المجلد الذي تختاره. جدوِله باستخدام cron أو مؤقّت systemd، وانسخ المجلد خارج المضيف بنفسك. يعرض البرنامج النصي أمر الاستعادة.
لا تتضمن النسخة الاحتياطية الملف .env، وهو يحمل OLOPROOF_CONTENT_KEY وسائر الأسرار المولدة: من دونه لا تستطيع قاعدة البيانات المستعادة قراءة محتواها المشفر. احفظ نسخة من .env عند إنشائه وكلما غيرته، منفصلة عن النسخ الاحتياطية وخارج الشبكة (مدير كلمات مرور أو قرص مشفر)، وليس بجانبها أبدا.
الترقيات
اكتب ملخّصَي الإصدار الجديد في .env، ثم شغّل:
sh upgrade.sh /srv/backups/oloproofيأخذ نسخة احتياطية ويسحب ويرحّل ويعيد تشغيل الويب والعامل. توقّع انقطاعًا قصيرًا. للتراجع، اكتب الملخّصات السابقة واستعِد النسخة الاحتياطية التي أخذها.
ما المدعوم
- مضيف واحد. لا توجد إتاحة عالية: الحزمة متاحة بقدر إتاحة جهازها.
- تُقيم البيانات حيث تشغّلها. لا يحتفظ Oloproof بأي من بياناتك.
- لا إصدارات بلا توقّف. فهذه خاصة بالخدمة المستضافة وحدها.
- تُفحص الحزمة بواسطة deploy/self-hosted/check.sh، الذي يشغّلها باسم مشروع خاص بها، وينتظر /api/health، ويجلب الصفحات العامة ثم يزيلها.