Getting Started¶
Цей розділ описує розгортання Power-Safety-UA (Docker Edition).
Вимоги¶
- Docker ≥ 24 та Docker Compose v2.
- Linux-сервер (рекомендовано) або будь-яка машина з Docker.
- Telegram Bot Token та Channel ID (для сповіщень).
- Опціонально: Cloudflare Tunnel для безпечного доступу ззовні.
1. Клонування та конфігурація¶
git clone https://github.com/weby-homelab/Power-Safety-UA.git
cd Power-Safety-UA
cp .env.example .env
Відредагуйте .env і вкажіть мінімум:
TELEGRAM_BOT_TOKEN="123456:ABC-DEF…"
TELEGRAM_CHANNEL_ID="-1001234567890"
SECRET_KEY="згенеруйте_довгий_випадковий_рядок"
Обов'язково встановіть SECRET_KEY
При запуску uvicorn --workers 2 кожен воркер згенерує різний
secret_key, що спричинить періодичні помилки 403. Завжди задавайте
SECRET_KEY у .env або Docker secrets.
2. Запуск¶
Сервіс відкриває порт 5050 (за замовчуванням прив'язаний до 127.0.0.1).
Перевірте працездатність:
3. Зовнішній доступ (Cloudflare Tunnel)¶
Архітектура використовує Cloudflare Tunnel із Zero-Trust та реверс-проксі.
Рекомендується не публікувати порт 5050 напряму в інтернет.
4. Доступ до Адмін-панелі¶
Панель керування доступна за адресою http://127.0.0.1:5050/admin (або через ваш домен/Cloudflare Tunnel).
- Отримання токена:
При першому запуску система автоматично генерує токен адміна. З міркувань безпеки (Zero-Trust Secret Hygiene) у консоль виводиться лише цифровий відбиток (fingerprint), а сам токен надійно зберігається у файлі стануdata/power_monitor_state.json: - Вхід у панель:
Введіть отриманий токен у мобільну Glassmorphism-картку авторизації. Токен зберігається виключно вsessionStorageвашого браузера та передається через заголовокX-Admin-TokenабоAuthorization: Bearer <token>. - Гігієна URL:
Ви можете відкрити панель за посиланням з параметром?t=<TOKEN>або#t=<TOKEN>— система миттєво очистить токен з адресного рядка за допомогоюhistory.replaceState.
Детальна інструкція¶
Повну покрокову інструкцію див. у INSTRUCTIONS_INSTALL.md та INSTRUCTIONS.md.