نشر Docker
يُشحن Fenfa كصورة Docker واحدة تشمل الثنائي Go مع الواجهة الأمامية المدمجة. لا يلزم وجود حاويات إضافية -- فقط ارفع أجزاءً للبيانات الدائمة.
البدء السريع
docker run -d \
--name fenfa \
--restart=unless-stopped \
-p 8000:8000 \
-v ./data:/data \
-v ./uploads:/app/uploads \
fenfa/fenfa:latestDocker Compose
أنشئ docker-compose.yml:
version: "3.8"
services:
fenfa:
image: fenfa/fenfa:latest
container_name: fenfa
restart: unless-stopped
ports:
- "127.0.0.1:8000:8000"
environment:
FENFA_ADMIN_TOKEN: ${FENFA_ADMIN_TOKEN}
FENFA_UPLOAD_TOKEN: ${FENFA_UPLOAD_TOKEN}
FENFA_PRIMARY_DOMAIN: ${FENFA_PRIMARY_DOMAIN:-http://localhost:8000}
volumes:
- fenfa-data:/data
- fenfa-uploads:/app/uploads
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8000/healthz"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
volumes:
fenfa-data:
fenfa-uploads:أنشئ ملف .env بجانب ملف Compose:
FENFA_ADMIN_TOKEN=your-secure-admin-token
FENFA_UPLOAD_TOKEN=your-secure-upload-token
FENFA_PRIMARY_DOMAIN=https://dist.example.comابدأ الخدمة:
docker compose up -dالأجزاء (Volumes)
| نقطة التثبيت | الغرض | يلزم نسخه احتياطياً |
|---|---|---|
/data | قاعدة بيانات SQLite | نعم |
/app/uploads | الملفات الثنائية المرفوعة | نعم (ما لم تستخدم S3) |
/app/config.json | ملف الإعداد (اختياري) | نعم |
ديمومة البيانات
بدون تثبيت الأجزاء، تُفقد جميع البيانات عند إعادة إنشاء الحاوية. ارفع دائماً /data و/app/uploads للاستخدام الإنتاجي.
استخدام ملف إعداد
ارفع ملف إعداد للتحكم الكامل:
services:
fenfa:
image: fenfa/fenfa:latest
volumes:
- fenfa-data:/data
- fenfa-uploads:/app/uploads
- ./config.json:/app/config.json:roفحص الصحة
يعرض Fenfa نقطة نهاية صحة على /healthz:
curl http://localhost:8000/healthz
# {"ok": true}يشمل مثال Docker Compose أعلاه إعداد فحص الصحة. لمنظّمي الحاويات مثل Kubernetes أو Nomad، استخدم هذه النقطة لفحوصات الحياة والجاهزية.
متعدد المعماريات
تدعم صورة Docker لـ Fenfa كلاً من linux/amd64 وlinux/arm64. يسحب Docker تلقائياً المعمارية الصحيحة لمضيفك.
لبناء صور متعددة المعماريات بنفسك:
./scripts/docker-build.shيستخدم هذا Docker Buildx لإنشاء صور لكلا المعماريتين.
متطلبات الموارد
Fenfa خفيف الوزن:
| المورد | الحد الأدنى | الموصى به |
|---|---|---|
| CPU | 1 نواة | 2 نواة |
| RAM | 64 ميغابايت | 256 ميغابايت |
| قرص | 100 ميغابايت (التطبيق) | يعتمد على الملفات المرفوعة |
قاعدة بيانات SQLite والثنائي Go لهما عبء ضئيل. يتوسّع استخدام الموارد أساساً مع تخزين الرفعات والاتصالات المتزامنة.
السجلات
عرض سجلات الحاوية:
docker logs -f fenfaيُسجّل Fenfa على stdout بتنسيق منظم، متوافق مع أدوات تجميع السجلات.
التحديث
docker compose pull
docker compose up -dتحديثات بدون توقف
يبدأ Fenfa بسرعة (أقل من ثانية). للتحديثات شبه الخالية من التوقف، استخدم فحص صحة الوكيل العكسي الذي يوجّه حركة المرور تلقائياً إلى الحاوية الجديدة بمجرد اجتياز فحص الصحة.
الخطوات التالية
- النشر الإنتاجي -- الوكيل العكسي وTLS والأمان
- مرجع الإعداد -- جميع خيارات الإعداد
- استكشاف الأخطاء -- مشكلات Docker الشائعة