PasarGuard
Панель

Конфигурация

Настройка панели PasarGuard с помощью переменных окружения и параметров

Обзор конфигурации

Панель PasarGuard настраивается через переменные окружения, хранящиеся в файле .env, расположенном по адресу /opt/pasarguard/.env.

Переменные окружения

Конфигурация администратора

ПеременнаяТипПо умолчаниюОписание
SUDO_USERNAMEstring-Имя пользователя суперпользователя для начальной учетной записи администратора
SUDO_PASSWORDstring-Пароль суперпользователя для начальной учетной записи администратора

SUDO_USERNAME и SUDO_PASSWORD работают только когда включен режим DEBUG. Для продакшена создавайте администраторов через TUI: pasarguard tui

Конфигурация базы данных

ПеременнаяТипПо умолчаниюОписание
SQLALCHEMY_DATABASE_URLstring-Строка подключения к базе данных (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_HOSTstring0.0.0.0Адрес хоста для привязки веб-сервера
UVICORN_PORTint8000Номер порта для веб-сервера
UVICORN_SSL_CERTFILEstring-Путь к файлу SSL-сертификата
UVICORN_SSL_KEYFILEstring-Путь к файлу приватного ключа 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_MINUTESint1440Время истечения JWT-токена в минутах (по умолчанию: 24 часа)

Пример:

# Токен истекает через 24 часа
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 1440

# Токен истекает через 7 дней
JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 10080

Настройки панели

ПеременнаяТипПо умолчаниюОписание
DOCSboolfalseВключить/отключить конечную точку документации API
DEBUGboolfalseВключить режим отладки для подробного логирования

Пример:

DOCS = true
DEBUG = false

Полный пример конфигурации

Настройка для продакшена

# Конфигурация администратора
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

Настройка нескольких узлов

Для настройки нескольких узлов:

  1. Установите и настройте PasarGuard Node на каждом сервере (см. Установка узла)

  2. Настройте учетные данные API узла на каждом сервере узла

  3. Добавьте узлы в интерфейсе панели:

    • Перейдите в раздел "Узлы" на панели управления
    • Нажмите "Добавить узел"
    • Введите данные подключения узла (адрес, порт, 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