Control Server (FastAPI) с WEB UI (Jinja2 + HTMX) и JSON API для группового администрирования устройств RouterOS 7 через REST. - Устройства: список, статус (модель, канал, версии ROS/FW, uptime, доступные обновления), примечания, пароли шифруются (Fernet); фоновый опрос каждые 30 с и быстрое обнаружение недоступности (таймаут соединения 4 с). - Группы устройств и фильтры (устройства, резервные копии). - Резервные копии: .backup и .rsc (show-sensitive) создаются через REST, скачиваются сервером и загружаются в S3 (Yandex Object Storage). - Обновление ROS/FW и выбор канала, групповые операции задачами. - Интерфейс по утверждённому макету: светлая/тёмная темы, окна, шрифты IBM Plex локально. Docker Compose, SQLite в томе, минимальный набор тестов. - Планы и итоги каждого изменения — в docs/changes/. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
1.1 KiB
Bash
30 lines
1.1 KiB
Bash
# База метаданных
|
|
DATABASE_URL=sqlite:///./data/ros_control.db
|
|
|
|
# Ключ Fernet для шифрования паролей устройств:
|
|
# python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
|
|
SECRET_KEY=
|
|
# Секрет подписи cookie-сессии UI
|
|
SESSION_SECRET=change-me
|
|
|
|
# Администратор UI и токен API
|
|
ADMIN_USER=admin
|
|
ADMIN_PASSWORD=change-me
|
|
API_TOKEN=change-me
|
|
|
|
# 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
|
|
|
|
# Ограничение параллельных обращений к устройствам
|
|
MAX_CONCURRENCY=10
|
|
|
|
# Обнаружение недоступности устройств
|
|
ROS_CONNECT_TIMEOUT=4 # секунд на установление соединения
|
|
POLL_INTERVAL=30 # период фонового опроса, секунд (0 — выключить)
|
|
UPDATE_CHECK_INTERVAL=1800 # как часто проверять обновления ROS в опросе, секунд
|