# Публикация порта в docker-compose.yml (приложение эти переменные не читает) APP_PORT=8000 # Адрес публикации: 0.0.0.0 — снаружи хоста; 127.0.0.1 — только за reverse-proxy на том же хосте APP_BIND=0.0.0.0 # База метаданных DATABASE_URL=sqlite:///./data/ros_control.db # Ключ Fernet для шифрования паролей устройств (обязателен, валидный ключ Fernet): # python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" SECRET_KEY= # Секрет подписи cookie-сессии UI (обязателен, ≥ 32 символов): # python -c "import secrets; print(secrets.token_urlsafe(32))" SESSION_SECRET= # Secure-флаг cookie сессии (требует HTTPS); включить, когда приложение работает за TLS SESSION_COOKIE_SECURE=false # Администратор UI (пароль обязателен, ≥ 12 символов) и токен API (обязателен, ≥ 32 символов): # python -c "import secrets; print(secrets.token_urlsafe(32))" ADMIN_USER=admin ADMIN_PASSWORD= API_TOKEN= # Без заданных выше значений (или со значением change-me/короче требуемой длины) приложение не запускается — # см. README «Безопасность». # Доверенные прокси (CIDR через запятую): только от них принимается X-Forwarded-For для определения IP клиента # (блокировка входа, журнал). Пусто по умолчанию — заголовок всегда игнорируется, берётся адрес TCP-соединения. TRUSTED_PROXIES= # Yandex Object Storage (S3) S3_ENDPOINT=https://storage.yandexcloud.net S3_REGION=ru-central1 S3_BUCKET= S3_ACCESS_KEY= S3_SECRET_KEY= S3_PREFIX=backups # Кэш списка бакета (страница «Бэкапы», GET /api/v1/backups): секунд без обращения к S3, 0 — выключить кэш BACKUPS_CACHE_TTL=60 # Ограничение параллельных обращений к устройствам MAX_CONCURRENCY=10 # Обнаружение недоступности устройств ROS_CONNECT_TIMEOUT=4 # секунд на установление соединения POLL_INTERVAL=30 # период фонового опроса, секунд (0 — выключить) UPDATE_CHECK_INTERVAL=1800 # как часто проверять обновления ROS в опросе, секунд # Ротация журнала событий: значения по умолчанию (действующие настройки меняются в UI: Журнал → Настройки) EVENTS_RETENTION_DAYS=90 # хранить записи, дней (0 — без ограничения) EVENTS_MAX_ROWS=100000 # максимум записей (0 — без ограничения)