پنل
پیکربندی
تنظیمات پنل PasarGuard با متغیرهای محیطی
یه نگاه کلی به پیکربندی
پنل PasarGuard از طریق متغیرهای محیطی که توی فایل .env
در مسیر /opt/pasarguard/.env
ذخیره شدن، تنظیم میشه.
متغیرهای محیطی
تنظیمات ادمین
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
SUDO_USERNAME | string | - | نام کاربری ادمین اصلی برای حساب کاربری اولیه |
SUDO_PASSWORD | string | - | رمز عبور ادمین اصلی برای حساب کاربری اولیه |
SUDO_USERNAME
و SUDO_PASSWORD
فقط وقتی کار میکنن که حالت DEBUG
فعال باشه. برای محیط واقعی (production)، از طریق TUI ادمین بسازید: pasarguard tui
تنظیمات دیتابیس
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
SQLALCHEMY_DATABASE_URL | string | - | رشته اتصال به دیتابیس (SQLite، MySQL، MariaDB، PostgreSQL، TimescaleDB) |
مثالهای URL دیتابیس:
# TimescaleDB/PostgreSQL (پیشفرض)
SQLALCHEMY_DATABASE_URL = "postgresql+asyncpg://user:password@localhost/pasarguard"
# MySQL/MariaDB
SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://user:password@localhost/pasarguard"
# SQLite
SQLALCHEMY_DATABASE_URL = "sqlite+aiosqlite:////var/lib/pasarguard/db.sqlite3"
وب سرور UVICORN
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
UVICORN_HOST | string | 0.0.0.0 | آدرس هاستی که وب سرور بهش وصل میشه |
UVICORN_PORT | int | 8000 | شماره پورت برای وب سرور |
UVICORN_SSL_CERTFILE | string | - | مسیر فایل گواهینامه SSL |
UVICORN_SSL_KEYFILE | string | - | مسیر فایل کلید خصوصی SSL |
مثال:
UVICORN_HOST = "0.0.0.0"
UVICORN_PORT = 8000
UVICORN_SSL_CERTFILE = "/var/lib/pasarguard/cert.pem"
UVICORN_SSL_KEYFILE = "/var/lib/pasarguard/key.pem"
احراز هویت و امنیت
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
JWT_ACCESS_TOKEN_EXPIRE_MINUTES | int | 1440 | مدت انقضای توکن JWT به دقیقه (پیشفرض: 24 ساعت) |
مثال:
# توکن بعد از 24 ساعت منقضی میشه
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 1440
# توکن بعد از 7 روز منقضی میشه
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 10080
تنظیمات پنل
متغیر | نوع | پیشفرض | توضیحات |
---|---|---|---|
DOCS | bool | false | فعال/غیرفعال کردن صفحه مستندات API |
DEBUG | bool | false | فعال کردن حالت دیباگ برای لاگهای کامل |
مثال:
DOCS = true
DEBUG = false
مثال کامل از پیکربندی
تنظیمات برای محیط واقعی (Production)
# تنظیمات ادمین
SUDO_USERNAME = "admin"
SUDO_PASSWORD = "your-secure-password"
# دیتابیس (TimescaleDB توصیه میشه)
SQLALCHEMY_DATABASE_URL = "postgresql+asyncpg://pasarguard:password@localhost/pasarguard"
# وب سرور
UVICORN_HOST = "0.0.0.0"
UVICORN_PORT = 8000
UVICORN_SSL_CERTFILE = "/var/lib/pasarguard/cert.pem"
UVICORN_SSL_KEYFILE = "/var/lib/pasarguard/key.pem"
# امنیت
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 1440
# تنظیمات پنل
DOCS = false
DEBUG = false
تنظیمات برای محیط توسعه/تست
# تنظیمات ادمین
SUDO_USERNAME = "admin"
SUDO_PASSWORD = "admin123"
# دیتابیس (SQLite برای تست)
SQLALCHEMY_DATABASE_URL = "sqlite+aiosqlite:////var/lib/pasarguard/db.sqlite3"
# وب سرور
UVICORN_HOST = "127.0.0.1"
UVICORN_PORT = 8000
# امنیت
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 1440
# تنظیمات پنل
DOCS = true
DEBUG = true
مدیریت پیکربندی
مشاهده تنظیمات فعلی
cat /opt/pasarguard/.env
ویرایش تنظیمات
sudo nano /opt/pasarguard/.env
اعمال تغییرات
بعد از تغییر تنظیمات، پنل رو ریاستارت کنید:
pasarguard restart
بررسی تنظیمات
چک کنید که سرویس درست کار میکنه:
pasarguard status
لاگها رو ببینید اگه مشکلی هست:
pasarguard logs
راهاندازی چند نود
برای تنظیم چندین نود:
-
روی هر سرور، PasarGuard Node رو نصب و تنظیم کنید (نگاه کنید به نصب نود)
-
اعتبارنامههای API نود رو روی هر سرور نود تنظیم کنید
-
نودها رو توی رابط پنل اضافه کنید:
- برید به بخش نودها در داشبورد
- روی "اضافه کردن نود" کلیک کنید
- جزئیات اتصال نود رو وارد کنید (آدرس، پورت، API key و...)
- اتصال رو چک کنید
نکات امنیتی
محافظت از اطلاعات دیتابیس
از رمزهای عبور قوی برای اتصال به دیتابیس استفاده کنید:
# ساخت رمز عبور امن
openssl rand -base64 32
استفاده از گواهینامه SSL
همیشه توی محیط واقعی از گواهینامههای SSL معتبر استفاده کنید:
# استفاده از Let's Encrypt
sudo certbot certonly --standalone -d your-domain.com
# آپدیت .env
UVICORN_SSL_CERTFILE = "/etc/letsencrypt/live/your-domain.com/fullchain.pem"
UVICORN_SSL_KEYFILE = "/etc/letsencrypt/live/your-domain.com/privkey.pem"
غیرفعال کردن حالت دیباگ در محیط واقعی
DEBUG = false
DOCS = false