HomeLab: как устроено сейчас
Эта страница про текущее состояние домашней инфраструктуры.
Я специально не публикую точные адреса, имена хостов и внешние точки. Важны подход и связки.
🎛️ TL;DR
- 2 площадки (дом и участок), связаны site-to-site туннелем.
- Внутри: управляемая L3-маршрутизация, без “магических мостов”.
- Виртуализация: Proxmox cluster (3 ноды).
- Хранилище: ZFS (в т.ч. mirror) + единый storage ID под репликации.
- Мониторинг:
/statusкак NOC-экран (топология + VM-структура). - Публикация сайта: markdown → рендер → индексы → git → deploy.
🧭 Площадки и сеть
Есть два контура:
- 🏠 Дом: основной контур (core-сервисы, гипервизоры, управление)
- 🌲 Участок: отдельный контур (полевые/edge узлы)
Они связаны защищённым туннелем (site-to-site). Логика простая: если узел виден в NOC, он должен быть достижим и предсказуемо маршрутизироваться.
Схема (упрощённо)
[Дом / core LAN] [Участок / edge LAN]
| |
+-----+------+ +----+-----+
| gateway A | | gateway B |
+-----+------+ +----+-----+
| |
+========== WireGuard site-to-site ====+
Принцип: L3 маршрутизация между подсетями.
🧱 Виртуализация и хранилище
База под сервисы: Proxmox cluster.
На момент обновления страницы (по данным NOC):
- нод в кластере: 3
- VM всего: 6, из них running: 4
Схема кластера (упрощённо)
+-------------------+ +-------------------+ +-------------------+
| Proxmox node A | | Proxmox node B | | Proxmox node C |
| (cluster member) | | (cluster member) | | (cluster member) |
+---------+---------+ +---------+---------+ +---------+---------+
| | |
[VMs] [VMs] [VMs]
Storage:
node C: ZFS mirror (2 disks) -> storage_id=tank1
replication depends on matching storage_id across nodes
Критичный сервис: VPN VM + репликация
В кластере есть критичная VM, от которой завязаны админ-доступы (VPN/edge).
Для неё важны:
- диск на ZFS
- регулярная репликация (короткий интервал)
- понятный сценарий восстановления
vpn-gw VM -> tank1 (ZFS mirror) [node C]
|
+-- replication job (every N minutes) --> tank1 on target node
Fail: node C down -> promote dataset -> start VM elsewhere
🖥️ Мониторинг и NOC
/status — это не “список IP”, а рабочий NOC-экран:
- видна топология (дом/участок, магистраль, ветвления)
- видно, где гипервизоры и какие VM на них живут
- можно вручную раскладывать узлы (drag-and-drop) и сохранять раскладку
На момент обновления страницы:
- хостов в мониторинге: 25
- доступно по SSH (где применимо): 8
🧩 Что крутится в HomeLab (в общем виде)
Я стараюсь держать набор сервисов минимальным, но полезным:
- edge/VPN: туннели, маршрутизация, доступы
- виртуализация: VM под сервисы
- мониторинг: NOC + проверки доступности
- медиа-стек (часть инфраструктуры): каталогизация/скачивание/медиасервер
- автоматизация: задачи, которые повторяются (скрипты/оркестрация)
Важно: я не держу “зоопарк”. Любой сервис должен отвечать на вопрос “что он упрощает в эксплуатации”.
🧠 Как устроен этот сайт (как часть HomeLab)
Сайт тоже является частью инфраструктуры: это документация + журнал изменений.
Пайплайн публикации
Markdown (.md)
-> Python renderers (.md -> .html)
-> обновление индексов (posts/notes) + feed + sitemap
-> git add/commit
-> publish.sh
-> reload сервисов (systemd/nginx)
Безопасность
- “опасные” точки (публикация/редактирование) закрыты BasicAuth
- изменения маленькими шагами
- бэкапы и быстрый откат через
.meta/и git
🔜 Куда это едет
- алерты поверх NOC (события → уведомления)
- больше повторяемых проверок (health-check как код)
- меньше ручных действий, больше предсказуемых процедур
MD'