پیکربندی
تنظیم کانفیگهای PasarGuard Node و متغیرهای محیطی
یه نگاه کلی به کانفیگ
میتونی PasarGuard Node رو با متغیرهای محیطی (environment variables) تنظیم کنی. همهی تنظیمات رو میشه توی فایل .env
یا مستقیم به عنوان متغیر محیطی ست کرد.
PasarGuard Node الان توی مرحله تست و توسعهست. استفاده به مسئولیت خودتونه.
متغیرهای محیطی
تنظیمات اصلی
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
API_KEY | string | - | UUID برای احراز هویت دسترسی به API (ضروریه) |
NODE_HOST | string | 127.0.0.1 | آدرس هاست برای اتصال برنامه |
SERVICE_PORT | int | 62050 | شماره پورت برنامه |
SERVICE_PROTOCOL | string | grpc | پروتکل اتصال (grpc یا rest ، پیشنهادی: grpc ) |
DEBUG | bool | false | فعالسازی حالت دیباگ برای لاگهای کامل |
تنظیمات SSL/TLS
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
SSL_CERT_FILE | string | - | مسیر فایل گواهینامه SSL |
SSL_KEY_FILE | string | - | مسیر فایل کلید خصوصی SSL |
تنظیمات Xray
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
XRAY_EXECUTABLE_PATH | string | /usr/local/bin/xray | مسیر فایل اجرایی Xray |
XRAY_ASSETS_PATH | string | /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
برای سرور واقعی که دامنه داری:
- نصب Certbot:
sudo apt-get install certbot
- دریافت گواهی:
sudo certbot certonly --standalone -d your-domain.com
- آپدیت متغیرهای محیطی:
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
این کار لاگهای کامل رو نشون میده که میتونه توی پیدا کردن مشکل کمک کنه.