[{"data":1,"prerenderedAt":212},["ShallowReactive",2],{"seo-verification":3,"blog-انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps-ma-ar":6,"promo-bar-likely":211},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":26,"featuredImage":28,"bgImage":29,"posterImage":30,"relatedSolution":28,"intro":31,"sections":32,"ctaTitle":154,"ctaBody":155,"ctaButton":156,"ctaUrl":157,"relatedPosts":158},38,"انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps",{"fr":12,"en":13,"ar":10,"es":14},"deployer-avec-traefik","deploy-your-applications-with-traefik-on-a-vps","desplegar-con-traefik","انشر تطبيقاتك باستخدام Traefik على خادم VPS","انشر Traefik كوكيل عكسي على خادم VPS الخاص بك: توجيه تلقائي لحاويات Docker، وشهادات SSL من Let's Encrypt، وموازنة أحمال.",11,3,false,"2026-05-13T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":24},"النشر","deploiement","bg-success\u002F10 text-success",[27],{"id":18,"name":23,"slug":24,"color":25,"icon":24},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-avec-traefik-poster.svg","Traefik هو وكيل عكسي وموازن أحمال أصيل السحابة (cloud-native) يكتشف حاويات Docker الخاصة بك تلقائيًا ويسند إليها المسارات وشهادات SSL دون إعادة تحميل يدوية. مَنشورًا على خادم VPS الخاص بك، يصبح نقطة الدخول الوحيدة لجميع تطبيقاتك، بتهيئة تصريحية عبر علامات (labels) Docker. يثبّت هذا الدليل الفرع v3 (الإصدار v3.7 وقت الكتابة)، مع HTTPS من Let's Encrypt، ولوحة تحكم محمية، وHTTP\u002F3، وبرمجيات وسيطة للإنتاج، والفخاخ التي يجب معرفتها إن كنت قادمًا من Traefik v2.",[33,37,49,52,77,80,88,91,94,97,106,140,143,151],{"type":34,"title":35,"body":36},"h2","لماذا تضع Traefik في واجهة خادم VPS الخاص بك؟","عندما تشغّل عدة تطبيقات محوّلة إلى حاويات على خادم VPS نفسه، تصبح إدارة المضيفات الافتراضية (virtual hosts) في Nginx يدويًا وتجديد كل شهادة أمرًا غير قابل للإدارة بسرعة. يحل Traefik هذه المشكلة بقراءة علامات حاويات Docker الخاصة بك مباشرةً: تعلن عن مسار عند تنفيذ `docker run` أو في ملف `docker-compose.yml`، فيهيّئه Traefik أثناء التشغيل، ويولّد شهادة Let's Encrypt، ويعرضه عبر HTTPS. لا ملف تهيئة لتحريره، ولا إعادة تحميل: كل شيء ديناميكي.\n\nيبقى Nginx خادم HTTP ممتازًا، لكن تهيئته ثابتة: كل خدمة جديدة تتطلب ملف vhost، وأمر `nginx -s reload`، وأداة ACME منفصلة (certbot ومهمة التجديد الخاصة به). صُمّم Traefik لبنية تتغير باستمرار، وهذه بالضبط حال خادم VPS تُضاف إليه الحاويات وتُحدَّث وتُزال كل أسبوع. وقد ثبّت الفرع v3، الصادر في أبريل 2024، دعم HTTP\u002F3 وتصدير التتبع عبر OpenTelemetry، وشدّد صياغة قواعد التوجيه.",{"type":38,"title":39,"items":40},"ul","ما يقدّمه Traefik عمليًا على خادم VPS",[41,42,43,44,45,46,47,48],"اكتشاف تلقائي لحاويات Docker عبر مزوّد Docker (تظهر المسارات دون إعادة تشغيل)","شهادات SSL من Let's Encrypt تُولَّد وتُجدَّد تلقائيًا (تحديات HTTP-01 أو TLS-ALPN-01 أو DNS-01)، ويبدأ تجديدها افتراضيًا قبل 30 يومًا من انتهاء صلاحيتها","توجيه حسب النطاق أو المسار أو الترويسة، يُدار بالكامل عبر علامات Docker","لوحة تحكم ويب مدمجة لعرض الموجّهات (routers) والخدمات والبرمجيات الوسيطة (middlewares) في الوقت الحقيقي","برمجيات وسيطة جاهزة للاستخدام: إعادة توجيه HTTPS، والمصادقة الأساسية (basic auth)، وتحديد معدل الطلبات، وترويسات الأمان، والضغط","موازنة أحمال تلقائية عند توسيع خدمة إلى عدة نسخ (replicas)","تفعيل HTTP\u002F3 (QUIC) على نقطة دخول بخيار واحد","مزوّدات أخرى غير Docker (Swarm وKubernetes وNomad والملفات) إذا توسّعت بنيتك التحتية",{"type":34,"title":50,"body":51},"المتطلبات","Traefik نفسه خفيف جدًا: معالج vCPU واحد و1 غيغابايت من RAM يكفيان بوفرة للوكيل وحده، والتكلفة الإضافية تأتي من تطبيقاتك خلفه. جهّز خادم VPS يعمل بنظام Debian 12 أو Ubuntu 22.04\u002F24.04 مع Docker Engine وإضافة Docker Compose v2 مثبَّتة (الأمر `docker compose` دون شرطة)، واسم نطاق تشير سجلّاته A\u002FAAAA إلى عنوان IP الخاص بخادم VPS **قبل** التشغيل الأول (وإلا فلن تتمكن Let's Encrypt من التحقق من النطاق)، والمنفذين 80 و443 مفتوحين للاتصالات الواردة عبر TCP في جدار الحماية (UFW)، إضافةً إلى المنفذ 443 عبر UDP إن فعّلت HTTP\u002F3. احتفظ بعنوان بريد إلكتروني صالح لحساب ACME. للحصول على شهادات wildcard، ستحتاج أيضًا إلى وصول API إلى مزوّد DNS الخاص بك.",{"type":53,"title":54,"steps":55},"steps","انشر Traefik باستخدام Docker Compose",[56,59,62,65,68,71,74],{"title":57,"body":58},"أنشئ الشبكة والبنية الشجرية","أنشئ شبكة Docker مشتركة سيستخدمها Traefik وتطبيقاتك، ثم مجلدًا مخصصًا يحتوي على الملف `acme.json` (مخزن الشهادات ومفاتيحها الخاصة):\n\n```bash\ndocker network create proxy\nmkdir -p \u002Fopt\u002Ftraefik && cd \u002Fopt\u002Ftraefik\ntouch acme.json && chmod 600 acme.json\n```\n\nأنشئ الملف **قبل** التشغيل الأول: إذا لم يكن المسار المربوط موجودًا، يُنشئ Docker مجلدًا مكانه ولا يعود Traefik قادرًا على الكتابة فيه. الصلاحيات 600 إلزامية: يرفض Traefik ملفًا يستطيع مستخدمون آخرون قراءته.",{"title":60,"body":61},"هيّئ نقاط الدخول (entrypoints) ومحلّل ACME","ضع هذا الملف في `\u002Fopt\u002Ftraefik\u002Fdocker-compose.yml`. يعلن نقطتَي دخول (`web` على :80، و`websecure` على :443)، وcertificateResolver من Let's Encrypt يُتحقَّق منه عبر تحدي HTTP، واكتشاف الحاويات عبر مقبس Docker المربوط للقراءة فقط، ولوحة التحكم:\n\n```yaml\nservices:\n  traefik:\n    image: traefik:v3.7\n    container_name: traefik\n    restart: unless-stopped\n    ports:\n      - \"80:80\"\n      - \"443:443\"\n      - \"443:443\u002Fudp\"\n    command:\n      - \"--providers.docker=true\"\n      - \"--providers.docker.exposedbydefault=false\"\n      - \"--providers.docker.network=proxy\"\n      - \"--entrypoints.web.address=:80\"\n      - \"--entrypoints.web.http.redirections.entrypoint.to=websecure\"\n      - \"--entrypoints.web.http.redirections.entrypoint.scheme=https\"\n      - \"--entrypoints.websecure.address=:443\"\n      - \"--entrypoints.websecure.http3=true\"\n      - \"--certificatesresolvers.letsencrypt.acme.email=admin@example.com\"\n      - \"--certificatesresolvers.letsencrypt.acme.storage=\u002Facme.json\"\n      - \"--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web\"\n      - \"--api.dashboard=true\"\n    volumes:\n      - \"\u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\"\n      - \".\u002Facme.json:\u002Facme.json\"\n    networks:\n      - proxy\n    labels:\n      - \"traefik.enable=true\"\n      - \"traefik.http.routers.dashboard.rule=Host(`traefik.example.com`)\"\n      - \"traefik.http.routers.dashboard.entrypoints=websecure\"\n      - \"traefik.http.routers.dashboard.tls.certresolver=letsencrypt\"\n      - \"traefik.http.routers.dashboard.service=api@internal\"\n      - \"traefik.http.routers.dashboard.middlewares=dashboard-auth\"\n      - \"traefik.http.middlewares.dashboard-auth.basicauth.users=admin:$$2y$$05$$REMPLACER_PAR_LE_HASH\"\n\nnetworks:\n  proxy:\n    external: true\n```\n\nالخيار `exposedbydefault=false` أساسي: من دونه تُنشر كل حاوية على الخادم، بما فيها قاعدة بياناتك. ثبّت الفرع (`v3.7`) بدلًا من `latest`، وتابع الإصدارات قبل الانتقال إلى إصدار فرعي جديد.",{"title":63,"body":64},"افرض إعادة التوجيه من HTTP إلى HTTPS","تُعلَن إعادة التوجيه مباشرةً على نقطة الدخول `web`، بالخيارين `--entrypoints.web.http.redirections.entrypoint.to=websecure` و`...entrypoint.scheme=https` الموجودين أصلًا في الملف أعلاه. هذا أبسط وأكثر أمانًا من موجّه «catch-all» مع برمجية وسيطة: تُحوَّل كل حركة المرور غير المشفّرة إلى HTTPS بإعادة توجيه دائمة، دون علامة تُكرَّر على كل خدمة، ويواصل تحدي HTTP الخاص بـ Let's Encrypt المرور عبر المنفذ 80.",{"title":66,"body":67},"أمّن لوحة التحكم","تُعرض لوحة التحكم على `traefik.example.com` خلف البرمجية الوسيطة `basicauth` المسمّاة `dashboard-auth`. ولّد تجزئة bcrypt (الحزمة `apache2-utils` على Debian\u002FUbuntu) مع مضاعفة علامات `$`، كما تشترط قيمة علامة داخل ملف Compose:\n\n```bash\napt install -y apache2-utils\nhtpasswd -nB admin | sed -e 's\u002F\\$\u002F\\$\\$\u002Fg'\n```\n\nالصق النتيجة مكان `admin:$$2y$$05$$REMPLACER_PAR_LE_HASH`. التجزئة الملصقة بعلامات `$` مفردة يقرؤها Compose كمتغيرات فتتعطل المصادقة. لا تترك أبدًا الراية `--api.insecure=true` في الإنتاج: فهي تنشر لوحة التحكم دون مصادقة.",{"title":69,"body":70},"شغّل Traefik","ابدأ المكدّس وتابع السجلّات:\n\n```bash\ncd \u002Fopt\u002Ftraefik\ndocker compose up -d\ndocker compose logs -f traefik\n```\n\nيُفترض أن ترى مزوّد Docker يبدأ، ثم الموجّه `dashboard` يرتبط، دون أي خطأ ACME. أثناء التجارب، أضِف مؤقتًا `--certificatesresolvers.letsencrypt.acme.caserver=https:\u002F\u002Facme-staging-v02.api.letsencrypt.org\u002Fdirectory`: يصدر خادم staging من Let's Encrypt شهادات لا تثق بها المتصفحات، لكنه يحميك من حد المعدل (rate limit) في بيئة الإنتاج إذا فشلت تهيئة ما مرارًا. احذف الخيار وأفرغ `acme.json` قبل الانتقال إلى الإنتاج.",{"title":72,"body":73},"اربط تطبيقًا","يعيش كل تطبيق في ملف `docker-compose.yml` خاص به، مربوطًا بشبكة `proxy` وموصوفًا بعلاماته:\n\n```yaml\nservices:\n  app:\n    image: ghcr.io\u002Fexample\u002Fapp:1.0.0\n    restart: unless-stopped\n    networks:\n      - proxy\n    labels:\n      - \"traefik.enable=true\"\n      - \"traefik.http.routers.app.rule=Host(`app.example.com`)\"\n      - \"traefik.http.routers.app.entrypoints=websecure\"\n      - \"traefik.http.routers.app.tls.certresolver=letsencrypt\"\n      - \"traefik.http.services.app.loadbalancer.server.port=3000\"\n\nnetworks:\n  proxy:\n    external: true\n```\n\nعند تنفيذ `docker compose up -d`، يكتشف Traefik الحاوية ويحصل على الشهادة ويفعّل المسار في ثوانٍ، دون المساس بتهيئته الخاصة. تحدد العلامة `loadbalancer.server.port` المنفذ الداخلي للتطبيق، وتصبح ضرورية حين تعرض الصورة أكثر من منفذ. يجب أن يكون اسم الموجّه (`app` هنا) فريدًا على مستوى الخادم كله.",{"title":75,"body":76},"تحقّق من الشهادة وإعادة التوجيه","تحقّق من جهاز خارج خادم VPS:\n\n```bash\ncurl -I http:\u002F\u002Fapp.example.com\ncurl -I https:\u002F\u002Fapp.example.com\ndig +short app.example.com\n```\n\nيجب أن يعيد الطلب الأول إعادة توجيه دائمة نحو `https:\u002F\u002F`، والثاني الرمز `200` (أو رمز تطبيقك) مع شهادة Let's Encrypt صالحة، ويجب أن يعرض `dig` عنوان IP الخاص بالخادم. تسرد لوحة التحكم أيضًا كل موجّه مع محلّل شهادته. المنفذ 80 الذي يرفض الاتصال يشير في الغالب إلى جدار الحماية.",{"type":34,"title":78,"body":79},"برمجيات وسيطة مفيدة في الإنتاج","تُعلَن البرمجية الوسيطة في Traefik عبر علامة، مرة واحدة، ثم تُربط بموجّه أو أكثر عبر `traefik.http.routers.\u003Crouter>.middlewares=\u003Cname1>,\u003Cname2>`. لذا تعرّفها على الخدمة المعنية دون المساس بالتهيئة المركزية لـ Traefik. إليك تلك التي تفيد على كل خادم VPS تقريبًا.",{"type":38,"title":81,"items":82},"خمس برمجيات وسيطة يجب معرفتها",[83,84,85,86,87],"**BasicAuth على أداة إدارة** (Adminer وFlower…): `traefik.http.middlewares.adminauth.basicauth.users=admin:$$2y$$05$$...`، ثم `traefik.http.routers.myadmin.middlewares=adminauth`. القاعدة نفسها لمضاعفة `$` كما في لوحة التحكم.","**تحديد معدل الطلبات** أمام واجهة API أو نموذج: `traefik.http.middlewares.ratelimit.ratelimit.average=100` و`...ratelimit.period=1s` و`...ratelimit.burst=200` تسمح بـ 100 طلب في الثانية في المتوسط، مع دفعات تصل إلى 200. دون `average` يكون الحد معطّلًا.","**ترويسات الأمان**: تضع البرمجية الوسيطة `headers` ترويسة HSTS (`stsSeconds=31536000` و`stsIncludeSubdomains=true`)، و`X-Frame-Options: DENY` (`frameDeny=true`)، و`X-Content-Type-Options: nosniff` (`contentTypeNosniff=true`)، دون ملف تهيئة منفصل.","**إعادة توجيه www إلى النطاق المجرد**: `redirectregex` مع `regex=^https:\u002F\u002Fwww\\.(.+)` و`replacement=https:\u002F\u002F$${1}` و`permanent=true`. لا تنسَ إعلان المضيفين معًا في قاعدة الموجّه حتى تغطي الشهادة `www`.","**الضغط**: يفعّل `traefik.http.middlewares.compress.compress=true` كلًّا من gzip وBrotli وZstandard بحسب ما يقبله المتصفح، دون أي إعداد في جهة التطبيق.",{"type":89,"body":90},"tip","للحصول على شهادة wildcard (`*.example.com`) وتجنّب عرض كل نطاق فرعي، انتقل من `httpChallenge` إلى `dnsChallenge`: فهو التحدي الوحيد الذي يصدر شهادة wildcard. مع Cloudflare، أعلن `--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare` ومرّر إلى Traefik المتغير `CF_DNS_API_TOKEN`، وهو رمز API مقيَّد بالصلاحيتين Zone \u002F DNS \u002F Edit وZone \u002F Zone \u002F Read. يعمل الزوج القديم `CF_API_EMAIL` + `CF_API_KEY` أيضًا، لكنه يتطلب مفتاح API العام الذي يفتح الحساب كله: فضّل الرمز. يُثبت Traefik عندها ملكية النطاق عبر سجل TXT، وهو ما يعمل حتى للخدمات غير المعروضة علنًا.",{"type":34,"title":92,"body":93},"فعّل HTTP\u002F3 (QUIC)","يفعّله ملف Compose أعلاه أصلًا: `--entrypoints.websecure.http3=true` على نقطة دخول TLS، ونشر المنفذ `443:443\u002Fudp`. يستمع Traefik عندها عبر UDP على المنفذ نفسه الذي تستخدمه نقطة دخول TCP؛ يبدأ الاتصال دائمًا عبر TCP ثم ينتقل المتصفح إلى QUIC في الجولة التالية. شرطان: لا تُخدَم عبر HTTP\u002F3 إلا الموجّهات المفعَّل فيها TLS، ويجب أن يسمح جدار الحماية بمرور المنفذ 443 عبر UDP (`ufw allow 443\u002Fudp`). إذا نشرت منفذ UDP مختلفًا عن منفذ نقطة الدخول، يعلن الخيار `http3.advertisedPort` المنفذ الصحيح. للتحقق، استخدم `curl` مبنيًّا بدعم HTTP\u002F3: `curl --http3 -I https:\u002F\u002Fapp.example.com`.",{"type":34,"title":95,"body":96},"القادم من Traefik v2: ما الذي يتعطل","يحافظ الإصدار v3 على توافق تهيئة التوجيه في v2، لكنه يغيّر الصياغة الافتراضية للقواعد ويرفض الإقلاع مع عدة خيارات أُزيلت. للترحيل دون إعادة كتابة كل شيء دفعة واحدة، أضِف `--core.defaultRuleSyntax=v2` إلى تهيئة التثبيت: تستمر قواعدك القديمة في العمل، وتنقل الموجّهات واحدًا تلو الآخر إلى صياغة v3، ثم تحذف الخيار. تنبّه سجلّات Traefik إلى كل خيار مُهمَل ما زال مستخدمًا: اقرأها بعد التشغيل الأول. التغييرات التي توقع المستخدمين أكثر من غيرها:",{"type":38,"title":98,"items":99},"التغييرات الكاسرة في v3",[100,101,102,103,104,105],"**Swarm**: لم يعد الخيار `swarmMode` في مزوّد Docker موجودًا، وهو يمنع الإقلاع. أصبح لـ Docker Swarm مزوّد خاص به (`--providers.swarm`).","**قواعد التوجيه**: يصبح `Headers` و`HeadersRegexp` على التوالي `Header` و`HeaderRegexp`، ويختفي `HostHeader` لصالح `Host`، ولم تعد معظم أدوات المطابقة تقبل إلا قيمة واحدة.","**المسارات**: لم يعد `Path` و`PathPrefix` يقرآن تعبيرًا نمطيًا ولا عنصرًا نائبًا مثل `{id}`، فلا يطابق مسار كهذا أي شيء بعد الآن. انتقل إلى `PathRegexp` الذي يتبع صياغة regexp في Go، مثل `HostRegexp`.","**برمجيات وسيطة أُعيدت تسميتها أو خُفّفت**: يصبح `IPWhiteList` باسم `IPAllowList` (بالخيارات نفسها)، وتفقد البرمجية الوسيطة `headers` الخيارات `sslRedirect` و`sslTemporaryRedirect` و`sslHost` و`sslForceHost` و`featurePolicy`.","**Content-Type**: لم يعد Traefik يخمّن نوع استجابة لم يحدد الخادم الخلفي نوعها؛ أضِف البرمجية الوسيطة `ContentType` إن كان تطبيق ما يعتمد على ذلك.","**مزوّدات وأدوات مراقبة أُزيلت**: تمنع Marathon وRancher v1 وTraefik Pilot ومقاييس InfluxDB v1 الإقلاع؛ ويمر التتبع (tracing) عبر OpenTelemetry وحده (لا تصدير مباشر بعد الآن إلى Jaeger أو Zipkin أو Datadog).",{"type":107,"title":108,"headers":109,"rows":114},"comparison","Traefik v3 أم Nginx أم Caddy أمام حاوياتك",[110,111,112,113],"المعيار","Traefik v3","Nginx","Caddy 2",[115,120,125,130,135],[116,117,118,119],"التهيئة","علامات Docker أو YAML أو TOML، تُطبَّق أثناء التشغيل","ملفات vhost ثابتة، و`nginx -s reload` عند كل تغيير","Caddyfile أو واجهة JSON، وإعادة تحميل دون انقطاع",[121,122,123,124],"HTTPS تلقائي","مدمج (ACME: HTTP-01 وTLS-ALPN-01 وDNS-01)","أداة خارجية (certbot) ومهمة تجديد","مدمج ومفعَّل افتراضيًا",[126,127,128,129],"اكتشاف الحاويات","أصيل، عبر مقبس Docker","غائب: أداة خارجية أو تحرير يدوي","عبر الوحدة المجتمعية caddy-docker-proxy",[131,132,133,134],"HTTP\u002F3","مستقر منذ v3.0 (أبريل 2024)، بخيار واحد لكل نقطة دخول","تجريبي منذ nginx 1.25.0 (مايو 2023)، بتهيئة مخصصة","مفعَّل افتراضيًا منذ Caddy 2.6 (سبتمبر 2022)",[136,137,138,139],"سهولة التعلّم","متوسطة: موجّهات وخدمات وبرمجيات وسيطة يجب استيعابها","معروف للجميع، لكن HTTPS مع Docker يتطلبان أدوات إضافية","الأسرع لبضعة مواقع",{"type":34,"title":141,"body":142},"استكشاف الأعطال: الأخطاء الأكثر شيوعًا","تأتي معظم أعطال Traefik من أربعة مصادر: DNS أو جدار حماية يمنعان تحقق Let's Encrypt، والملف `acme.json`، وشبكة Docker ناقصة، وعلامات مكتوبة بشكل خاطئ. إليك الأعراض وطرق إصلاحها:",{"type":38,"title":144,"items":145},"الأعراض وطرق الإصلاح",[146,147,148,149,150],"**لم يُحصل على الشهادة، وخطأ ACME من نوع `unauthorized` أو `403` في السجلّات**: لا تستطيع Let's Encrypt الوصول إلى نطاقك. تحقّق من الخارج أن المنفذ 80 يستجيب (`curl -I http:\u002F\u002Fapp.example.com`) وأن DNS يشير إلى الخادم (`dig +short app.example.com`). خلف شبكة CDN في وضع الوكيل، فضّل `dnsChallenge`.","**`permissions 644 for \u002Facme.json are too open, please use 600`**: يرفض المحلّل الملف. أصلح ذلك بـ `chmod 600 \u002Fopt\u002Ftraefik\u002Facme.json` ثم أعد تشغيل Traefik؛ يحمي هذا الفحص المفاتيح الخاصة المخزنة فيه.","**المسار ظاهر في لوحة التحكم لكن مع `502 Bad Gateway`**: الحاوية ليست على شبكة `proxy`، أو المنفذ الداخلي خاطئ. تحقّق بـ `docker inspect \u003Ccontainer>` (قسم `Networks`)، وأضِف الشبكة أو العلامة `loadbalancer.server.port`، ثم أعد إنشاء الحاوية. على حاوية مرتبطة بعدة شبكات، تزيل العلامة `traefik.docker.network=proxy` الالتباس.","**علامات متجاهَلة ومسار غائب عن لوحة التحكم**: تنقص العلامة `traefik.enable=true` (إلزامية مع `exposedbydefault=false`)، أو تعلن خدمتان اسم الموجّه نفسه. تشير سجلّات Traefik حينها إلى التعارض.","**BasicAuth يرفض كلمة مرور صحيحة**: علامات `$` في التجزئة غير مضاعفة في ملف `docker-compose.yml`. في ملف Compose تصبح كل `$` علامتين `$$`؛ أما في ملف تهيئة ديناميكية بصيغة YAML أو TOML فتُلصق التجزئة كما هي.",{"type":34,"title":152,"body":153},"الخطوة التالية: تقوية المكدّس","يتولى Traefik التوجيه وTLS، لكن المكدّس الجاهز للإنتاج يتطلب أكثر من ذلك: فحوص الصحة (healthchecks)، وسياسة إعادة التشغيل، وتدوير السجلّات، وإبقاء الأسرار خارج ملف Compose، ونسخ الأحجام احتياطيًا (بما فيها `acme.json`). تتناول \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fdocker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط\">قائمة التحقق لـ Docker Compose في الإنتاج\u003C\u002Fa> هذه النقاط واحدة تلو الأخرى. وإن كنت ما زلت مترددًا في اختيار الأداة، تساعدك \u003Ca href=\"\u002Far\u002Fالمدونة\u002Fcaddy-أم-traefik-أم-nginx-proxy-manager-أيهما-تختار\">مقارنة Caddy وTraefik وNginx Proxy Manager\u003C\u002Fa> على الحسم بحسب عدد الخدمات والحاجة إلى الاكتشاف التلقائي.","أطلق Traefik في دقائق على خادم VPS Cloud من ServOrbit","اطلب خادم VPS Cloud مع Docker مثبَّت مسبقًا وانشر مكدّس Traefik الخاص بك انطلاقًا من قالب النشر. تُوجَّه تطبيقاتك عبر HTTPS تلقائيًا.","اطّلع على خوادم VPS Cloud","\u002Fvps-cloud",[159,179,195],{"id":160,"slug":161,"slugs":162,"title":166,"excerpt":167,"readTime":168,"views":169,"isPinned":19,"noindex":19,"publishedAt":170,"updatedAt":171,"category":172,"categories":173,"featuredImage":28,"bgImage":29,"posterImage":175,"relatedSolution":176},33,"انشر-تطبيقاتك-باستخدام-caprover-على-خادم-vps",{"fr":163,"en":164,"ar":161,"es":165},"deployer-avec-caprover","deploy-your-applications-with-caprover-on-a-vps","desplegar-aplicaciones-con-caprover-en-un-vps","انشر تطبيقاتك باستخدام CapRover على خادم VPS","دليل CapRover الشامل: التثبيت، captain-definition، CI\u002FCD مع GitHub Actions، الكتلة متعددة العقد، النسخ الاحتياطية وإصلاح أخطاء 502 وBuild Failed وDocker API.",10,2,"2026-05-18T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":24},[174],{"id":18,"name":23,"slug":24,"color":25,"icon":24},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caprover-poster.svg",{"categorySlug":177,"appSlug":178},"نشر-التطبيقات-وdevops","caprover",{"id":180,"slug":181,"slugs":182,"title":186,"excerpt":187,"readTime":17,"views":188,"isPinned":19,"noindex":19,"publishedAt":189,"updatedAt":190,"category":191,"categories":192,"featuredImage":28,"bgImage":29,"posterImage":194,"relatedSolution":28},34,"انشر-تطبيقاتك-باستخدام-dokku-على-خادم-vps",{"fr":183,"en":184,"ar":181,"es":185},"deployer-avec-dokku","deploy-your-applications-with-dokku-on-a-vps","desplegar-aplicaciones-con-dokku-en-un-vps","انشر تطبيقاتك باستخدام Dokku على خادم VPS","دليل ‏Dokku‏ v0.35 الشامل: التثبيت، buildpacks، المتغيرات البيئية، الرجوع للإصدار السابق، إضافات postgres\u002Fredis\u002Fletsencrypt، وحلول المشكلات الشائعة.",1,"2026-05-17T00:00:00+00:00","2026-10-18T21:57:59+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":24},[193],{"id":18,"name":23,"slug":24,"color":25,"icon":24},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-dokku-poster.svg",{"id":196,"slug":197,"slugs":198,"title":202,"excerpt":203,"readTime":168,"views":188,"isPinned":19,"noindex":19,"publishedAt":204,"updatedAt":171,"category":205,"categories":206,"featuredImage":28,"bgImage":29,"posterImage":208,"relatedSolution":209},35,"انشر-تطبيقاتك-باستخدام-portainer-على-خادم-vps",{"fr":199,"en":200,"ar":197,"es":201},"deployer-avec-portainer","deploy-your-applications-with-portainer-on-a-vps","desplegar-aplicaciones-con-portainer-en-un-vps","انشر تطبيقاتك باستخدام Portainer على خادم VPS","أدِر Docker بصريًا باستخدام Portainer على خادم VPS الخاص بك: حاويات، وstacks، وأحجام (volumes)، وشبكات تُدار من واجهة ويب واضحة.","2026-05-16T00:00:00+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":24},[207],{"id":18,"name":23,"slug":24,"color":25,"icon":24},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-portainer-poster.svg",{"categorySlug":177,"appSlug":210},"portainer",true,1794270258547]