لقد اكتشفت مؤخرًا لوحة تحكم خادم رائعة لإدارة الخدمات التي تعمل على الخادم. اسمها Coolify، وقد قمت بتثبيتها بنجاح وأستخدمها حاليًا لإدارة خادمين مع تثبيت n8n والنصوص البرمجية الأخرى والتحكم فيها.
الخدمة الوحيدة المفقودة في Coolify بالنسبة لي هي discourse، إذا تمكنتم من إضافة discourse إلى خدمات Coolify فسيكون ذلك شيئًا مذهلاً، ويمكننا منذ الآن أن نطلب من أي شخص جديد في هذا العالم تثبيت Coolify ثم تمكين discourse.
نظرًا لأن Discourse لا يستخدم Docker Compose، بل مشغل خاص به، لم أكن مستعدًا لدمجه بعمق ليتم تثبيته عبر واجهة المستخدم الرسومية. ما أردته وحققته هو تشغيل Discourse على خادم Coolify الرئيسي، وتوجيهه عبر Traefik المدمج إلى الحاوية الصحيحة.
تطلب هذا فقط إعادة تكوين بسيطة لـ Discourse. للقيام بذلك، في /var/discourse/containers/app.yml قمت بتعطيل الخادم المعتمد على المقبس ثم استخدمت التسميات و docker_args لإعداد Traefik للعثور على Discourse، والتعامل مع إعادة توجيه HTTP إلى HTTPS، والحصول على الشهادات، وتوجيه الطلبات من FORUM-HOSTNAME.COM إلى حاوية Discourse:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
## قم بإلغاء التعليق على السطر التالي لتمكين مستمع IPv6
#- "templates/web.ipv6.template.yml"
- "templates/web.ratelimited.template.yml"
## قم بإلغاء التعليق على هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
# - "templates/web.socketed.template.yml"
## ما هي منافذ TCP/IP التي يجب أن تعرضها هذه الحاوية؟
## إذا كنت تريد أن تشارك Discourse منفذًا مع خادم ويب آخر مثل Apache أو nginx،
## راجع https://meta.discourse.org/t/17247 للحصول على التفاصيل
expose:
# - "80:80" # http
# - "443:443" # https
docker_args:
- "--network=coolify"
labels:
app_name: discourse
traefik.enable: true
traefik.http.middlewares.discourse_redirect2https.redirectscheme.scheme: https
traefik.http.middlewares.gzip.compress: true
traefik.http.routers.discourse.rule: Host(`FORUM-HOSTNAME.COM`)
traefik.http.routers.discourse.entrypoints: http
traefik.http.routers.discourse.middlewares: discourse_redirect2https
traefik.http.routers.discourse_secure.rule: Host(`FORUM-HOSTNAME.COM`)
traefik.http.routers.discourse_secure.entrypoints: https
traefik.http.routers.discourse_secure.tls: true
traefik.http.routers.discourse_secure.tls.certresolver: letsencrypt
traefik.http.routers.discourse_secure.middlewares: gzip
traefik.http.services.discourse_secure.loadbalancer.server.port: 80
ثم ./launcher rebuild app، وبعد انتهاء تشغيله تمكنت من إيقاف nginx على المضيف وتشغيل حاوية coolify-proxy لاحتلال المنافذ 80/443 وقامت بالباقي: مجتمعنا يعمل على مضيف Coolify، حيث يدير Coolify بقية البرامج.