Конфигурация
Настройка панели PasarGuard с помощью переменных окружения и параметров
Обзор конфигурации
Панель PasarGuard настраивается через переменные окружения, хранящиеся в файле .env, расположенном по адресу /opt/pasarguard/.env.
Переменные окружения
Конфигурация администратора
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
SUDO_USERNAME | string | - | Имя пользователя суперпользователя для начальной учетной записи администратора |
SUDO_PASSWORD | string | - | Пароль суперпользователя для начальной учетной записи администратора |
SUDO_USERNAME и SUDO_PASSWORD работают только при включенном режиме DEBUG. Для production создайте учетную запись владельца через форму настройки в панели, используя pasarguard cli generate-temp-key.
Конфигурация базы данных
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
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_UDS | string | - | Путь Unix socket; если задан, Uvicorn привязывается к socket вместо host/port |
UVICORN_SSL_CERTFILE | string | - | Путь к файлу SSL-сертификата |
UVICORN_SSL_KEYFILE | string | - | Путь к файлу приватного ключа SSL |
UVICORN_SSL_CA_TYPE | string | public | Тип центра сертификации для проверки SSL |
UVICORN_WORKERS | int | 1 | Количество worker-процессов Uvicorn |
UVICORN_LOOP | string | auto | Настройка event loop Uvicorn |
UVICORN_PROXY_HEADERS | bool | false | Доверять proxy headers, включая forwarded IP клиента |
UVICORN_FORWARDED_ALLOW_IPS | string/list | 127.0.0.1 | Доверенные IP прокси для forwarded headers; используйте * только в доверенной приватной сети |
Пример:
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"
UVICORN_PROXY_HEADERS = true
UVICORN_FORWARDED_ALLOW_IPS = "127.0.0.1"Включайте UVICORN_PROXY_HEADERS только если PasarGuard находится за доверенным reverse proxy. Не используйте UVICORN_FORWARDED_ALLOW_IPS = "*" в недоверенной сети.
Аутентификация и безопасность
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
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 | Включить режим отладки для подробного логирования |
ROLE | string | all-in-one | Runtime-роль: backend, node, scheduler или all-in-one |
DASHBOARD_PATH | string | /dashboard/ | URL-путь, по которому доступна панель |
VITE_BASE_API | string | / | Базовый URL API для dashboard |
ALLOWED_ORIGINS | string | * | CORS origins, разделенные запятыми |
Пример:
DOCS = true
DEBUG = falseWireGuard
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
WIREGUARD_ENABLED | bool | true | Включить выделение WireGuard peer IP и вывод WireGuard в подписках |
WIREGUARD_GLOBAL_POOL | CIDR | 10.0.0.0/8 | IPv4 пул для автоматического выделения peer IP и проверки ручных peer IP |
WIREGUARD_RESERVED | CIDR list | 10.0.0.0/31 | IPv4 CIDR диапазоны через запятую, которые нельзя выделять |
Пример:
WIREGUARD_ENABLED = false
WIREGUARD_GLOBAL_POOL = "10.66.0.0/16"
WIREGUARD_RESERVED = "10.66.0.0/31,10.66.0.10/32"Когда WIREGUARD_ENABLED = false, вывод WireGuard в подписках пропускается, а автоматическое выделение peer IP отключается.
Запись Использования
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
DISABLE_RECORDING_NODE_USAGE | bool | false | Отключить запись samples использования узлов |
ENABLE_RECORDING_NODES_STATS | bool | false | Включить подробную запись статистики узлов; доступно только для PostgreSQL/TimescaleDB |
RESET_USER_USAGE_CLEAN_CHART_DATA | bool | false | Удалять историю графиков пользователя при сбросе использования |
Пример:
DISABLE_RECORDING_NODE_USAGE = false
ENABLE_RECORDING_NODES_STATS = true
RESET_USER_USAGE_CLEAN_CHART_DATA = falseПолный пример конфигурации
Настройка для продакшена
# База данных (рекомендуется 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"
UVICORN_PROXY_HEADERS = true
UVICORN_FORWARDED_ALLOW_IPS = "127.0.0.1"
# Безопасность
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 1440
# Настройки панели
DOCS = false
DEBUG = false
# WireGuard
WIREGUARD_ENABLED = true
WIREGUARD_GLOBAL_POOL = "10.0.0.0/8"
WIREGUARD_RESERVED = "10.0.0.0/31"Настройка для разработки/тестирования
# Конфигурация администратора
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-ключ и т.д.)
- Проверьте подключение
Рекомендации по безопасности
Защита учетных данных базы данных
Используйте надежные пароли для подключения к базе данных:
# Генерация безопасного пароля
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