4.4 KiB
4.4 KiB
Архитектура домашних сервисов (homelab)
Краткое описание по состоянию настройки Invidious и сопутствующих сервисов.
Сеть и доступ
- Внешний IP: 185.35.193.144
- Домашний сервер (Proxmox): 192.168.1.150 (LAN), доступ:
ssh root@192.168.1.150 - DNS домена katykhin.ru: Beget.com
- Reverse proxy и SSL: Nginx Proxy Manager (NPM) на контейнере 100. Домены: video.katykhin.ru, call.katykhin.ru, home.katykhin.ru, wallos.katykhin.ru, cloud.katykhin.ru, docs.katykhin.ru, immich.katykhin.ru.
Гипервизор
- Proxmox VE. Гости — в основном LXC-контейнеры, одна KVM VM (Immich, ID 200).
- Управление LXC:
pct(напримерpct exec <ID> -- bash). Управление VM:qm. - IP задаётся статически (в конфиге LXC/VM или резерв на роутере). Схема ID = последний октет (100→.100, 101→.101, …, 108→.108, 200→.200).
Ключевые контейнеры и VM
| ID | Назначение | IP | Заметки |
|---|---|---|---|
| 100 | NPM, Homepage, AdGuard, Wallos | 192.168.1.100 | Docker (NPM, Homepage, AdGuard, Wallos). Данные NPM: /opt/docker/nginx-proxy/data. Certbot для Let's Encrypt (в т.ч. DNS-01 через Beget). |
| 101 | Nextcloud | 192.168.1.101 | cloud.katykhin.ru. Docker Compose: Nextcloud + PostgreSQL + Redis, порт 8080. |
| 103 | Gitea + Actions | 192.168.1.103 | 1 core, 2 GB RAM, 15 GB (local-lvm). Gitea + PostgreSQL + act_runner, порты 3000 (HTTP), 2222 (SSH). Только LAN. |
| 104 | Paperless-ngx | 192.168.1.104 | docs.katykhin.ru, порт 8000. |
| 107 | Invidious (Misc) | 192.168.1.107 | video.katykhin.ru. 1 core, 2 GB RAM. Docker Compose: Invidious + Companion + PostgreSQL, порт 3000. |
| 108 | Galene (видеозвонки) | 192.168.1.108 | call.katykhin.ru → 192.168.1.108:8443. |
| 200 | Immich (KVM VM) | 192.168.1.200 | immich.katykhin.ru. Фото, ML на GPU (RTX 4060 Ti). Не LXC. |
Поток запросов (упрощённо)
- Запрос с интернета:
https://video.katykhin.ru→ роутер (порты 80/443 на 185.35.193.144) → проброс на 192.168.1.100. - NPM (контейнер 100) принимает HTTPS, проверяет Host, смотрит proxy_host → upstream: например 192.168.1.107:3000 для video.katykhin.ru, 192.168.1.200:2283 для immich.katykhin.ru и т.д.
- Invidious (контейнер 107) отдаёт страницу и ссылки на стримы; при «без прокси» видео стримится напрямую с YouTube в браузер.
SSL-сертификаты
- Let's Encrypt: через certbot на контейнере 100. Для доменов, где HTTP-01 недоступен, используется DNS-01 (плагин certbot-dns-beget-api, учётные данные Beget в
/root/.secrets/certbot/beget.ini). После выпуска/продления сертификаты копируются в NPM (custom_ssl) и перезагружается nginx в контейнере NPM. - Самоподписные: при необходимости добавляются вручную в NPM (БД + файлы в custom_ssl).
Дополнительно
- Homepage: на контейнере 100, конфиг сервисов в
/opt/docker/homepage/config/services.yaml(ссылки на NPM, Invidious, AdGuard, Immich, Galene и т.д.). - VPS 185.103.253.99 (DE): AmneziaWG для обхода блокировок; маршрутизация выбранных сетей через роутер (WireGuard netcraze_amnezia, 10.8.1.2).
- VPS 147.45.124.117 (US): второй AmneziaWG; на роутере можно добавить второе подключение с тем же адресом 10.8.1.2 и переключать DE/US без смены маршрутов. Подробно: vpn-keenetic-us-second-connection.md.
- Подробнее по контейнерам и доступу: см. containers-context.md.