خادم منفصل
تعني تثبيت الخادم المنفصل أنك ستثبت صفحة الاشتراك على خادم مختلف عن خادم Remnawave Panel.
الخطوة 1 - تحضير ملف .env
قم بإجراء هذه التغييرات على الخادم الذي تم تثبيت Remnawave Panel عليه.
قم بتحرير ملف /opt/remnawave/.env وغيّر SUB_PUBLIC_DOMAIN إلى اسم نطاق صفحة الاشتراك الخاصة بك.
cd /opt/remnawave && nano .env
غيّر SUB_PUBLIC_DOMAIN إلى اسم نطاق صفحة الاشتراك. يجب أن يكون اسم النطاق بدون http أو https.
SUB_PUBLIC_DOMAIN=subscription.domain.com
لا تنسَ إعادة تشغيل حاوية Remnawave Panel:
cd /opt/remnawave && docker compose down remnawave && docker compose up -d && docker compose logs -f
الخطوة 2 - إنشاء ملف docker-compose.yml
هذه الخطوة والخطوات التالية يجب تنفيذها على خادم آخر!
تأكد من تثبيت Docker على الخادم الذي ستثبت عليه صفحة الاشتراك.
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano docker-compose.yml
services:
remnawave-subscription-page:
image: remnawave/subscription-page:latest
container_name: remnawave-subscription-page
hostname: remnawave-subscription-page
restart: always
env_file:
- .env
ports:
- '127.0.0.1:3010:3010'
networks:
- remnawave-network
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: false
الآن أنشئ ملف .env:
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano .env
أنشئ رمز API في لوحة تحكم Remnawave. إعدادات Remnawave ← رموز API.
الصق المحتوى التالي في ملف .env:
APP_PORT=3010
REMNAWAVE_PANEL_URL=https://remnawave.panel.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE
استبدل remnawave.panel.com باسم نطاق لوحة التحكم الخاصة بك.
مرجع ملف .env الكامل
APP_PORT=3010
### عنوان URL لـ Remnawave Panel، يمكن أن يكون http://remnawave:3000 أو https://panel.example.com
REMNAWAVE_PANEL_URL=https://panel.example.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE
# التقديم على مسار جذر مخصص، على سبيل المثال: CUSTOM_SUB_PREFIX=sub
# لا تضع / في البداية/النهاية
CUSTOM_SUB_PREFIX=
# دعم روابط Marzban
MARZBAN_LEGACY_LINK_ENABLED=false
MARZBAN_LEGACY_SECRET_KEY=
# إذا كنت تستخدم إضافة "Caddy with security"، يمكنك وضع X-Api-Key هنا.
CADDY_AUTH_API_TOKEN=
# إذا كنت تستخدم Cloudflare Zero Trust لحماية لوحة التحكم، استخدم هذه المتغيرات لتجاوز الأمان.
CLOUDFLARE_ZERO_TRUST_CLIENT_ID=
CLOUDFLARE_ZERO_TRUST_CLIENT_SECRET=
الخطوة 3 - تشغيل الحاوية
docker compose up -d && docker compose logs -f
الخطوة 4 - تهيئة الوكيل العكسي
Remnawave ومكوناته لا تدعم التقديم على مسار فرعي. (مثل location /subscription {)
يجب تقديمه على مسار الجذر لنطاق أو نطاق فرعي.
للمسار المخصص، يمكنك استخدام المعامل CUSTOM_SUB_PREFIX.
Caddy
تهيئة Caddy
أنشئ ملفاً يسمى Caddyfile في مجلد /opt/remnawave/caddy.
mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy && nano Caddyfile
الصق التهيئة التالية.
يرجى استبدال REPLACE_WITH_YOUR_DOMAIN باسم نطاق صفحة الاشتراك الخاص بك.
راجع التهيئة أدناه، وابحث عن السطور المميزة باللون الأحمر.
https://SUBSCRIPTION_PAGE_DOMAIN {
reverse_proxy * http://remnawave-subscription-page:3010
}
:443 {
tls internal
respond 204
}
يرجى استبدال SUBSCRIPTION_PAGE_DOMAIN باسم نطاقك.
راجع التهيئة أدناه، وابحث عن السطور المميزة باللون الأخضر.
إنشاء docker-compose.yml
أنشئ ملف docker-compose.yml في مجلد /opt/remnawave/caddy.
cd /opt/remnawave/caddy && nano docker-compose.yml
الصق التهيئة التالية.
services:
caddy:
image: caddy:2.9
container_name: 'caddy'
hostname: caddy
restart: always
ports:
- '0.0.0.0:443:443'
- '0.0.0.0:80:80'
networks:
- remnawave-network
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy-ssl-data:/data
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true
volumes:
caddy-ssl-data:
driver: local
external: false
name: caddy-ssl-data
تشغيل الحاوية
docker compose up -d && docker compose logs -f -t
الخطوة 5 - الاستخدام
ستكون صفحة الاشتراك متاحة على https://subdomain.panel.com/<shortUuid>.
تهيئة صفحة الاشتراك (اختياري)
يمكنك تخصيص صفحة الاشتراك في منشئ الصفحات الفرعية في لوحة تحكم Remnawave. يتيح لك ذلك:
- إضافة دعم لتطبيقات VPN المختلفة
- تخصيص النصوص والتعليمات بلغات متعددة
- إضافة علامتك التجارية الخاصة (الشعار، اسم الشركة، روابط الدعم)
- تهيئة التطبيقات التي تظهر كـ"مميزة"