إنتقل إلى المحتوى الرئيسي

Caddy مع مسار مخصص

Caddy هو خادم ويب قوي ومرن يمكن استخدامه لتأمين لوحة Remnawave الخاصة بك.

التثبيت

أولاً، أنشئ مجلداً لـ Caddy.

mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy

ثم أنشئ ملف docker-compose.yml.

touch docker-compose.yml && nano docker-compose.yml

وأضف المحتوى التالي إلى الملف:

docker-compose.yml
services:
remnawave-caddy:
image: remnawave/caddy-with-auth:latest
container_name: 'remnawave-caddy'
hostname: remnawave-caddy
restart: always
environment:
- AUTH_TOKEN_LIFETIME=3600
- REMNAWAVE_PANEL_DOMAIN=PANEL_DOMAIN
- REMNAWAVE_CUSTOM_LOGIN_ROUTE=supersecretroute
- AUTHP_ADMIN_USER=LOGIN_USERNAME
- AUTHP_ADMIN_EMAIL=LOGIN_EMAIL
- AUTHP_ADMIN_SECRET=LOGIN_PASSWORD

ports:
- '0.0.0.0:443:443'
networks:
- remnawave-network
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- remnawave-caddy-ssl-data:/data

networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true

volumes:
remnawave-caddy-ssl-data:
driver: local
external: false
name: remnawave-caddy-ssl-data

ضبط متغيرات .env

تحتاج إلى تعيين اسم نطاق للوحة Remnawave. سيصدر Caddy شهادة تلقائياً لهذا النطاق.

REMNAWAVE_PANEL_DOMAIN=panel.domain.com

مسار تسجيل الدخول المخصص. سيُستخدم هذا المسار فقط لصفحة تسجيل الدخول. لن تكون هناك إعادة توجيه إذا فتحت لوحة التحكم دون المصادقة المسبقة. فقط الأشخاص الذين يعرفون هذا المسار سيتمكنون من الوصول إلى اللوحة.

REMNAWAVE_CUSTOM_LOGIN_ROUTE=supersecretroute

بيانات اعتماد المدير. تأكد من استخدام كلمة مرور قوية.

AUTHP_ADMIN_USER=admin
AUTHP_ADMIN_EMAIL=[email protected]
AUTHP_ADMIN_SECRET=strong_password

مدة الرمز المميز.

AUTH_TOKEN_LIFETIME=3600

ملف Caddyfile

دعنا نتعمق في ملف Caddyfile.

أولاً، تحتاج إلى اختيار أحد الإعدادات المحددة مسبقاً.

معلومات

نوصي باستخدام إعداد الأمان الكامل مع MFA لبيئات الإنتاج حيث ستصدر مفاتيح API.

خطر

ستتمكن من تسجيل الدخول فقط عبر هذا المسار (REMNAWAVE_CUSTOM_LOGIN_ROUTE).

إعداد الأمان الكامل مع MFA

  • جميع المسارات محمية بالمصادقة. (الواجهة الأمامية، الخلفية)
  • جميع نقاط نهاية API محمية، بما في ذلك نقاط /api/sub/*.
  • تسجيل الدخول يتطلب MFA مع رموز OTP.
  • يمكن إصدار مفاتيح API خاصة لنقاط /api/*.
  • حماية كاملة للنطاق.

شغّل الأمر أدناه لتنزيل ملف Caddyfile.

curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-and-protected-api-route/Caddyfile

مسارات API بدون مصادقة (api/*)

  • المسارات محمية بالمصادقة. (الواجهة الأمامية)
  • تسجيل الدخول يتطلب MFA مع رموز OTP. (الواجهة الأمامية)
  • جميع نقاط نهاية API غير محمية! (/api/* عامة)
خطر

هذا الإعداد يعرض نقاط نهاية /api/* للإنترنت العام.

لن تتطلب جميع نقاط النهاية المصادقة، لكنها ستستخدم ميزات أمان Remnawave.

نوصي باستخدام إعداد الأمان الكامل مع MFA لبيئات الإنتاج حيث ستصدر مفاتيح API.

شغّل الأمر أدناه لتنزيل ملف Caddyfile.

curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-with-api-without-auth/Caddyfile

نقاط نهاية /api/sub/* بدون مصادقة

  • المسارات محمية بالمصادقة. (الواجهة الأمامية)
  • تسجيل الدخول يتطلب MFA مع رموز OTP. (الواجهة الأمامية)
  • فقط نقاط نهاية /api/sub/* عامة، النقاط الأخرى محمية.
خطر

هذا الإعداد يعرض نقاط نهاية /api/sub/* للإنترنت العام.

نوصي باستخدام إعداد الأمان الكامل مع MFA لبيئات الإنتاج حيث ستصدر مفاتيح API وتستخدم @remnawave/subscription-page لصفحة الاشتراك العامة.

شغّل الأمر أدناه لتنزيل ملف Caddyfile.

curl -o Caddyfile https://raw.githubusercontent.com/remnawave/caddy-with-auth/refs/heads/main/examples/custom-webpath-with-auth-with-opened-api-sub/Caddyfile

تشغيل الحاوية

بعد اختيار أحد الإعدادات أعلاه، يمكنك بدء الحاوية بالأمر التالي.

docker compose up -d && docker compose logs -f

الوصول إلى اللوحة

بعد تشغيل الحاوية، يمكنك الوصول إلى اللوحة على https://panel.domain.com/REMNAWAVE_CUSTOM_LOGIN_ROUTE.

في أول تشغيل، سيُطلب منك إضافة طريقة MFA.

نوصي باستخدام Google Authenticator.

تعطيل MFA

إذا أردت تعطيل MFA تماماً، يمكنك ذلك بتعديل ملف Caddyfile.

افتح ملف Caddyfile وغيّر السطر التالي:

cd /opt/remnawave/caddy && nano Caddyfile

ابحث عن الأسطر التالية وأزل سطر require mfa.

Caddyfile
transform user {
match origin local
action add role authp/admin
require mfa
}

بعد ذلك، يمكنك إعادة تشغيل الحاوية بالأمر التالي.

docker compose down && docker compose up -d && docker compose logs -f

الوصول إلى صفحة بوابة المصادقة

معلومات

يمكنك الوصول إلى صفحة بوابة المصادقة على https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth.

Auth Portal page

هنا يمكنك الانتقال بسرعة إلى لوحة Remnawave أو إدارة بعض إعدادات بوابة المصادقة.

في قسم MFA، يمكنك حذف أو إضافة طرق MFA جديدة.

إصدار مفاتيح API

معلومات

يمكنك الوصول إلى صفحة بوابة المصادقة على https://<your-domain>/REMNAWAVE_CUSTOM_LOGIN_ROUTE/auth.

في صفحة بوابة المصادقة، يمكنك إصدار مفاتيح API، انقر على تبويب API-keys.

معلومات

بعد إصدار مفتاح API، يمكنك استخدامه في رأس X-Api-Key لطلباتك إلى API.

مثال: X-Api-Key: YxOovHLnpkcmSig5082egcHnyTk8SK4dNGAFHgZ2LKZezgj5oUj2FA2IR2sMwbALnP9YNpzZ

API-keys