Files
INFRASTRUCTURE/README.md
2025-10-26 07:56:42 +00:00

163 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

🧱 Infrastructure Overview --- TCom Embedded Laboratory
=====================================================
🚀 Загальний опис системи
-------------------------
Це домашня Docker-серверна інфраструктура для:
- розробки (Gitea)
- веб-додатків (Flask + Caddy)
- моніторингу (Prometheus + Grafana)
- автоматизації дому (Mosquitto MQTT + Node-RED)
- централізованого управління мережею сервісів
Стек побудований через Docker та керується через CLI.
* * * * *
🗂 Структура розгортання
------------------------
Всі додатки розташовані в:
`~/DOCKER/`
| Сервіс | Каталог | Опис | Статус |
| --- | --- | --- | --- |
| **Caddy** | `~/DOCKER/caddy` | Reverse Proxy + HTTPS | ✅ Працює |
| **myapp1** (Flask) | `~/DOCKER/myapp1` | Демо-веб API | ✅ Працює |
| **Prometheus** | `~/DOCKER/prometheus` | Збір метрик | ✅ Працює |
| **Grafana** | `~/DOCKER/grafana` | Dashboard-система | ✅ Працює |
| **Mosquitto** (MQTT брокер) | `~/DOCKER/mosquitto` | Smart Home MQTT | ✅ Працює |
| **Node-RED** | `~/DOCKER/nodered` | Логіка Smart Home | ✅ Працює |
| **Gitea** | `~/DOCKER/gitea` | Git-сервер | ✅ Працює |
* * * * *
🌐 Мапа сервісів і доменів
--------------------------
| Сервіс | URL | Аутентифікація | Доступ |
| --- | --- | --- | --- |
| Git Server | https://git.tcom.space | ✅ Пароль/2FA | WAN / LAN |
| Flask App | (приклад) https://myapp1.tcom.space | ❌ Нема авторизації | WAN / LAN |
| Grafana | https://grafana.tcom.space | ✅ | WAN / LAN |
| Prometheus | <https://prometheus.tcom.space> | ✅ BasicAuth | WAN / LAN |
| Mosquitto MQTT | `mqtt://192.168.0.3:1883` | ❌ | LAN only |
| Node-RED | http://192.168.0.3:1880 | ❌ | LAN only |
**Caddy** автоматично видає Let's Encrypt сертифікати.
* * * * *
🔒 Політика безпеки
-------------------
Все, що в Інтернет → тільки через Caddy\
✅ Більшість сервісів --- **закриті у LAN/VPN**\
✅ Gitea: реєстрація ❌, OpenID ❌\
✅ Admin-login змінено вручну\
✅ 2FA рекомендовано
* * * * *
🛠 Управління сервісами
-----------------------
### Запустити все
`docker compose up -d`
### Перезапустити один сервіс
`cd ~/DOCKER/<ім'я>
docker compose restart `
### Перегляд логів
`docker logs -f <container>`
### Оновити контейнер
`docker compose pull
docker compose up -d`
* * * * *
💾 Бекап
--------
### Бекап Gitea
`docker exec -u 1000:1000 gitea\
gitea dump --file /data/gitea-backup.zip
docker cp gitea:/data/gitea-backup.zip .`
(зберігає БД + репозиторії + конфіг)
### MQTT та Node-RED
Вміст зберігається у томах Docker:
`~/DOCKER/mosquitto/data
~/DOCKER/nodered/data`
### Пропозиція
🟡 Настроїти **автобекап раз на день**
* * * * *
📈 Моніторинг
-------------
Prometheus → збирає:
- Docker статус
- Системні метрики сервера (CPU/RAM/Temp)
Grafana → показує:
- Кастомні dashboards
- MQTT / Smart Home статистику
➡ Можемо додати **Node Exporter** для ще детальнішого моніторингу.
* * * * *
🔧 План розвитку
----------------
| Етап | Статус |
| --- | --- |
| Docker Core + Reverse Proxy | ✅ Done |
| Smart Home MQTT migrate | ✅ Done |
| Gitea migrate + HTTPS + Security | ✅ Done |
| CI/CD Flask auto deploy | ⏳ Next |
| Docker GUI (Portainer) | ⏳ Next |
| Docker auto upgrade (Watchtower) | ⏳ Next |
| Full monitoring dashboards | ⏳ Next |
* * * * *
👤 Контакти адміністратора
--------------------------
`Тарас (Owner)
ssh tcom@192.168.0.3 (LAN/VPN)`
> Коментар: Вхід SSH з Інтернету заблоковано з міркувань безпеки.
* * * * *
✅ Summary
=========
Готова **хмарна локальна інфраструктура** з Git-сервером та Smart Home, усе **інфраструктурно правильно**, на Docker, із резервним копіюванням та моніторингом.