163 lines
4.6 KiB
Markdown
163 lines
4.6 KiB
Markdown
🧱 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, із резервним копіюванням та моніторингом. |