پاسارگارد
آموزش‌ها

فعال‌سازی SSL

با فعال‌سازی SSL در پاسارگارد، داشبورد و لینک اشتراک‌گذاری از طریق https در دسترس خواهند بود. در ادامه چند روش مختلف برای فعال‌سازی SSL در پاسارگارد را از ساده به پیچیده توضیح می‌دهیم.

در تمام مثال‌های زیر فایل‌های docker-compose.yml و .env در مسیر /opt/pasarguard و فایل xray_config.json در مسیر /var/lib/pasarguard قرار دارند.

اگر پاسارگارد را به‌صورت دستی نصب کرده‌اید، باید تغییرات لازم را خودتان اعمال کنید.

فعال‌سازی SSL با Caddy

در این روش نیازی به ایجاد دستی گواهی SSL نیست — Caddy همهٔ کارها را برای شما انجام می‌دهد.

تغییر در docker-compose.yml

فایل docker-compose.yml را به صورت زیر ویرایش کنید:

services:
  pasarguard:
    image: pasarguard/Panel:latest
    restart: always
    env_file: .env
    network_mode: host
    volumes:
      - /var/lib/pasarguard:/var/lib/pasarguard
    depends_on:
      - caddy

  caddy:
    image: caddy
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/lib/pasarguard:/var/lib/pasarguard
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_volume:/data
      - caddy_volume:/config

volumes:
  caddy_volume:

ایجاد فایل Caddyfile

یک فایل جدید به نام Caddyfile در مسیر /opt/pasarguard بسازید و YOUR_DOMAIN را با دامنه یا زیردامنهٔ مدنظر خود جایگزین کنید.

نام فایل Caddyfile باید با حرف بزرگ C شروع شود.

YOUR_DOMAIN {
	reverse_proxy unix//var/lib/pasarguard/pasarguard.socket
}

اگر می‌خواهید دامنهٔ اشتراک (subscription) با دامنهٔ پنل متفاوت باشد، محتوای بالا را برای هر دامنه/زیردامنه تکرار کرده و YOUR_DOMAIN را در هر مورد جایگزین کنید.

تنظیم متغیرهای محیطی

متغیرهای زیر را در فایل .env تنظیم کنید.

YOUR_DOMAIN را با دامنه یا زیردامنهٔ موردنظر جایگزین کنید.

UVICORN_UDS = /var/lib/pasarguard/pasarguard.socket
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAIN

راه‌اندازی مجدد پاسارگارد

پاسارگارد را ری‌استارت کنید:

PasarGuard restart

حالا داشبورد پاسارگارد از طریق https و دامنه/زیردامنهٔ شما در دسترس خواهد بود.

فعال‌سازی SSL با Uvicorn

پاسارگارد به‌صورت پیش‌فرض با Uvicorn اجرا می‌شود. Uvicorn همچنین امکان تعریف فایل‌های گواهی SSL را فراهم می‌کند.

دریافت گواهی SSL

ابتدا باید فایل‌های گواهی برای دامنه یا زیردامنهٔ خود را تهیه کنید. برای این کار به آموزش صدور گواهی SSL مراجعه کنید.

تنظیم متغیرهای محیطی

پس از ایجاد فایل‌های گواهی، متغیرهای زیر را در فایل .env تنظیم کنید.

YOUR_DOMAIN را با دامنه یا زیردامنهٔ موردنظر جایگزین کنید.

UVICORN_PORT = 443
UVICORN_SSL_CERTFILE = "/var/lib/pasarguard/certs/YOUR_DOMAIN.cer"
UVICORN_SSL_KEYFILE = "/var/lib/pasarguard/certs/YOUR_DOMAIN.cer.key"
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAIN

حالا داشبورد پاسارگارد از طریق https و دامنه/زیردامنهٔ شما در دسترس خواهد بود.

فعال‌سازی SSL با HAProxy

HAProxy یکی از ابزارهای مناسب برای این کار است. در این روش با کمک HAProxy، پاسارگارد را از طریق https اجرا می‌کنیم.

دریافت گواهی SSL

ابتدا باید فایل‌های گواهی برای دامنه یا زیردامنهٔ خود را تهیه کنید. برای این کار به آموزش صدور گواهی SSL مراجعه کنید.

تغییر در docker-compose.yml

فایل docker-compose.yml را به صورت زیر ویرایش کنید:

services:
  PasarGuard:
      image: pasarguard/panel:latest
      restart: always
      env_file: .env
      network_mode: host
      volumes:
        - /var/lib/pasarguard:/var/lib/pasarguard
      depends_on:
        - haproxy
    
  haproxy:
    image: haproxy:latest
    restart: always
    volumes:
      - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
      - /var/lib/pasarguard:/var/lib/pasarguard
    ports:
      - 80:80
      - 443:443

ایجاد haproxy.cfg

یک فایل جدید به نام haproxy.cfg در مسیر /opt/PasarGuard بسازید و YOUR_DOMAIN را با دامنه یا زیردامنهٔ مدنظر جایگزین کنید.

defaults
  mode tcp
  timeout client 30s
  timeout connect 4s
  timeout server 30s

global
  maxconn 10000000

frontend http_frontend
  bind *:80
  mode http
  redirect scheme https code 301 if !{ ssl_fc }

frontend https_frontend
  bind *:443 ssl crt /var/lib/pasarguard/certs/YOUR_DOMAIN.cer
  default_backend PasarGuard_backend

backend PasarGuard_backend
  server PasarGuard /var/lib/pasarguard/pasarguard.socket

تنظیم متغیرهای محیطی

متغیرهای زیر را در فایل .env تنظیم کنید.

YOUR_DOMAIN را با دامنه یا زیردامنهٔ موردنظر جایگزین کنید.

UVICORN_UDS = /var/lib/pasarguard/pasarguard.socket
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAIN

راه‌اندازی مجدد پاسارگارد

پاسارگارد را ری‌استارت کنید:

PasarGuard restart

حالا داشبورد پاسارگارد از طریق https و دامنه/زیردامنهٔ شما در دسترس خواهد بود.