03a58cda27
Affected files: .obsidian/plugins/obsidian-linter/data.json 90 Library/HomeLab/Infrastructure — ada-dev.md 99 System/Cache/infra.excalidraw.md.md
120 lines
6.3 KiB
Markdown
120 lines
6.3 KiB
Markdown
---
|
|
status: seed
|
|
type: concept
|
|
tags:
|
|
- homelab
|
|
- infrastructure
|
|
- devops
|
|
created: 2026-05-18
|
|
updated: 2026-06-15
|
|
source: '[[Infrastructure]]'
|
|
aliases:
|
|
- Infrastructure — ada-dev
|
|
---
|
|
|
|
# Infrastructure — ada-dev
|
|
|
|
Заметка фиксирует текущую схему homelab-инфраструктуры `ada-dev`: публичный VPS, домашние узлы, reverse proxy, overlay-сеть и пользовательские сервисы.
|
|
|
|
![[infra.excalidraw.md.md|950]]
|
|
|
|
## Общая схема
|
|
|
|
Инфраструктура состоит из трех ключевых зон:
|
|
|
|
- `Internet` — внешний доступ пользователей.
|
|
- `ru-vps` с белым IP — публичная точка входа.
|
|
- локальные узлы `mini-pc` и `cloud-pc`, связанные с VPS через ZeroTier overlay network.
|
|
|
|
VPS принимает внешний трафик и проксирует его дальше. Домашние сервисы не обязаны напрямую светиться в интернет: доступ к ним можно строить через публичный [[CA и NGINX|Nginx]]/NPM и приватную overlay-сеть.
|
|
|
|
## Узлы
|
|
|
|
### Ru-vps
|
|
|
|
`ru-vps` — публичный сервер с белым IP. На схеме он выполняет роль внешнего шлюза:
|
|
|
|
- `NPM (публичный)` — reverse proxy для публичных доменов и маршрутов;
|
|
- `Nginx (80, 443)` — входная точка HTTP/HTTPS;
|
|
- `ufw` — базовый firewall;
|
|
- `ZeroTier` — связь с домашним сегментом;
|
|
- `Portainer Agent` — управление контейнерной средой через Portainer.
|
|
|
|
Практический смысл VPS — держать наружу только минимальный набор портов и не раскрывать домашнюю сеть напрямую.
|
|
|
|
### Mini-pc
|
|
|
|
`mini-pc` описан как `N150 / 12 GB / 256 GB`. По схеме это небольшой домашний узел для инфраструктурных сервисов:
|
|
|
|
- `AdGuard Home`;
|
|
- `NPM (локальный)`;
|
|
- `Vaultwarden`;
|
|
- `ZeroTier`;
|
|
- `Portainer Agent`.
|
|
|
|
Логика узла: локальная инфраструктура и сервисы, которым полезно быть рядом с домашней сетью.
|
|
|
|
### Cloud-pc
|
|
|
|
`cloud-pc` описан как `i5 / 16 GB / 256 GB + 5 TB`. Это более крупный узел для сервисов и хранения:
|
|
|
|
- `Portainer Server`;
|
|
- `Cockpit`;
|
|
- `Gitea + Registry`;
|
|
- `Gitea Actions Runner`;
|
|
- `Nextcloud`;
|
|
- `SMB/BU/Files (5 TB HDD)`;
|
|
- `ZeroTier`.
|
|
|
|
Логика узла: сервисы разработки, файлы, backup/storage и управление контейнерами.
|
|
|
|
## Сетевой слой
|
|
|
|
ZeroTier используется как overlay-сеть между VPS и домашними узлами. Это позволяет:
|
|
|
|
- проксировать трафик с публичного VPS на локальные сервисы;
|
|
- не открывать сервисные порты домашней сети наружу;
|
|
- держать управление и межузловые соединения в приватном сегменте;
|
|
- упростить маршрутизацию между VPS, `mini-pc` и `cloud-pc`.
|
|
|
|
`ufw` на VPS должен ограничивать внешний периметр. Базовая модель: наружу открыты только необходимые публичные порты, а внутренние сервисы доступны через ZeroTier и reverse proxy.
|
|
|
|
## Reverse proxy
|
|
|
|
На схеме есть два уровня NPM:
|
|
|
|
- `NPM (публичный)` на VPS — отвечает за публичный доступ;
|
|
- `NPM (локальный)` на `mini-pc` — может обслуживать локальные маршруты и внутренние сервисы.
|
|
|
|
Такой подход полезен, если нужно разделить внешний и внутренний контуры. Публичный NPM принимает домены из интернета, локальный NPM может маршрутизировать сервисы внутри homelab.
|
|
|
|
Смежная заметка: [[Nginx Proxy Manager под path]].
|
|
|
|
## Сервисы
|
|
|
|
Ключевые пользовательские сервисы:
|
|
|
|
- `Vaultwarden` — self-hosted password manager;
|
|
- `Gitea + Registry` — Git-сервер и container registry;
|
|
- `Gitea Actions Runner` — CI runner;
|
|
- `Nextcloud` — файловая синхронизация;
|
|
- `SMB/BU/Files` — файловое хранилище и backup на 5 TB HDD;
|
|
- `AdGuard Home` — DNS/ad blocking;
|
|
- `Cockpit` — web-управление сервером;
|
|
- `Portainer Server/Agent` — управление контейнерами.
|
|
|
|
## Замечания по устойчивости
|
|
|
|
- Публичный VPS — критическая точка входа. Если он падает, внешний доступ к сервисам пропадает, даже если домашние узлы живы.
|
|
- ZeroTier — критическая зависимость для связности между VPS и домашними узлами.
|
|
- `cloud-pc` несет сразу несколько ролей: Git, registry, runner, Nextcloud и storage. Для важных данных нужен отдельный backup-контур.
|
|
- `Vaultwarden` стоит держать максимально изолированным: отдельный volume, backup, HTTPS, минимальный доступ к админке.
|
|
|
|
## Связанные заметки
|
|
|
|
- [[CA и NGINX]] — TLS-сертификаты и Nginx как входной HTTP/HTTPS-слой.
|
|
- [[VPN]] — близкая идея приватного сетевого контура.
|
|
- [[Docker - Дополнительные знания]] — контейнерная эксплуатация сервисов.
|
|
- [[Основы - Docker]] — базовая модель контейнеризации.
|
|
- [[DevOps - основы]] — инфраструктура, автоматизация и эксплуатация.
|