پاسارگارد
نود

پیکربندی

تنظیم کانفیگ‌های PasarGuard Node و متغیرهای محیطی

یه نگاه کلی به کانفیگ

میتونی PasarGuard Node رو با متغیرهای محیطی (environment variables) تنظیم کنی. همه‌ی تنظیمات رو میشه توی فایل .env یا مستقیم به عنوان متغیر محیطی ست کرد.

PasarGuard Node الان توی مرحله تست و توسعه‌ست. استفاده به مسئولیت خودتونه.

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

تنظیمات اصلی

متغیرنوعپیش‌فرضتوضیحات
API_KEYstring-UUID برای احراز هویت دسترسی به API (ضروریه)
NODE_HOSTstring127.0.0.1آدرس هاست برای اتصال برنامه
SERVICE_PORTint62050شماره پورت برنامه
SERVICE_PROTOCOLstringgrpcپروتکل اتصال (grpc یا rest، پیشنهادی: grpc)
DEBUGboolfalseفعال‌سازی حالت دیباگ برای لاگ‌های کامل

تنظیمات SSL/TLS

متغیرنوعپیش‌فرضتوضیحات
SSL_CERT_FILEstring-مسیر فایل گواهینامه SSL
SSL_KEY_FILEstring-مسیر فایل کلید خصوصی SSL

تنظیمات Xray

متغیرنوعپیش‌فرضتوضیحات
XRAY_EXECUTABLE_PATHstring/usr/local/bin/xrayمسیر فایل اجرایی Xray
XRAY_ASSETS_PATHstring/usr/local/share/xrayمسیر پوشه داده‌های Xray

هسته‌های پشتیبانی شده:

  • ✅ xray-core
  • ❌ sing-box (پشتیبانی نمیشه)
  • ❌ v2ray-core (پشتیبانی نمیشه)

مثال‌های کانفیگ

تنظیمات پایه

# Core Settings
API_KEY=your-uuid-here
NODE_HOST=127.0.0.1
SERVICE_PORT=62050
SERVICE_PROTOCOL=grpc
DEBUG=false

# SSL Configuration
SSL_CERT_FILE=/path/to/ssl_cert.pem
SSL_KEY_FILE=/path/to/ssl_key.pem

# Xray Paths (defaults usually work)
XRAY_EXECUTABLE_PATH=/usr/local/bin/xray
XRAY_ASSETS_PATH=/usr/local/share/xray

تنظیمات برای سرور واقعی

# Core Settings
API_KEY=change-this-to-a-secure-uuid
NODE_HOST=0.0.0.0
SERVICE_PORT=62050
SERVICE_PROTOCOL=grpc
DEBUG=false

# SSL - Use valid certificates
SSL_CERT_FILE=/etc/ssl/certs/your-domain.pem
SSL_KEY_FILE=/etc/ssl/private/your-domain-key.pem

# Xray Configuration
XRAY_EXECUTABLE_PATH=/usr/local/bin/xray
XRAY_ASSETS_PATH=/usr/local/share/xray

تنظیمات Docker Compose

وقتی از Docker استفاده میکنی، میتونی متغیرها رو توی فایل docker-compose.yml یا توی فایل .env تنظیم کنی:

API_KEY=your-uuid-here
SERVICE_PORT=62050
SERVICE_PROTOCOL=grpc
SSL_CERT_FILE=/app/certs/ssl_cert.pem
SSL_KEY_FILE=/app/certs/ssl_key.pem

راه‌اندازی گواهی SSL

ساخت گواهی Self-Signed

برای تست یا استفاده داخلی، یه گواهی self-signed بساز:

openssl req -x509 -newkey rsa:4096 -keyout ssl_key.pem \
  -out ssl_cert.pem -days 36500 -nodes \
  -subj "/CN=your-server-ip-or-domain" \
  -addext "subjectAltName = DNS:your-domain.com,IP:your.server.ip"

بعدش مسیرها رو تنظیم کن:

SSL_CERT_FILE=/path/to/ssl_cert.pem
SSL_KEY_FILE=/path/to/ssl_key.pem

استفاده از گواهی Let's Encrypt

برای سرور واقعی که دامنه داری:

  1. نصب Certbot:
sudo apt-get install certbot
  1. دریافت گواهی:
sudo certbot certonly --standalone -d your-domain.com
  1. آپدیت متغیرهای محیطی:
SSL_CERT_FILE=/etc/letsencrypt/live/your-domain.com/fullchain.pem
SSL_KEY_FILE=/etc/letsencrypt/live/your-domain.com/privkey.pem

استفاده از گواهی شخصی

اگه گواهی خودت رو داری:

SSL_CERT_FILE=/path/to/your/certificate.pem
SSL_KEY_FILE=/path/to/your/private-key.pem

نکات امنیتی مهم

ساخت API Key امن

یه UUID امن برای API_KEY بساز:

# Using uuidgen (Linux/macOS)
uuidgen

# Using Python
python3 -c "import uuid; print(uuid.uuid4())"

# Using OpenSSL
openssl rand -hex 16 | awk '{print substr($1,1,8)"-"substr($1,9,4)"-"substr($1,13,4)"-"substr($1,17,4)"-"substr($1,21,12)}'

دسترسی‌های فایل

مطمئن شو دسترسی‌های فایل‌های حساس درست تنظیم شدن:

# Certificate files
chmod 600 /path/to/ssl_key.pem
chmod 644 /path/to/ssl_cert.pem

# Environment file
chmod 600 .env

تنظیمات فایروال

فقط پورت‌های لازم رو باز کن:

# Allow only node port
sudo ufw allow 62050/tcp

# Enable firewall
sudo ufw enable

تنظیمات پروتکل

gRPC (پیشنهادی)

gRPC پروتکل پیشنهادیه چون سریع‌تره و تاخیر کمتری داره:

SERVICE_PROTOCOL=grpc

REST API

REST API هم پشتیبانی میشه ولی ممکنه کندتر باشه:

SERVICE_PROTOCOL=rest

رفع مشکلات

مشکلات رایج

پورت از قبل استفاده شده:

# Change the port
SERVICE_PORT=62051

حالت دیباگ

برای دیدن لاگ‌های کامل، حالت دیباگ رو فعال کن:

DEBUG=true

این کار لاگ‌های کامل رو نشون میده که میتونه توی پیدا کردن مشکل کمک کنه.