Files
infra/docs/ai
DmitryandClaude Sonnet 5 05d8c748ab
lint / yamllint + ansible-lint + syntax-check (push) Canceled after 0s
feat: infrastructure dashboard (Homepage) generated from the service registry
playbooks/dashboard.yml deploys Homepage as a second compose stack on the
monitoring LXC (CT 155) next to Uptime Kuma and renders its config from
homelab_services: one tile per service, link to its UI, grouped by Proxmox
node. Adding a service to the registry is enough — no second service list.

- new registry consumer: playbooks/dashboard.yml + playbooks/templates/homepage-*.j2
- homelab_dashboard_* vars in group_vars/all/services.yml (top-level, like
  homelab_reverse_proxy_*); image pinned by digest, floating tag needs an
  explicit -e dashboard_allow_floating_tag=true
- bootstrap-dashboard-pve-token.yml: read-only homepage@pve!dashboard token
  (PVEAuditor) for the Proxmox widget, secret in the root .env as DASHBOARD_PVE_*
- Makefile: dashboard, dry-dashboard, bootstrap-dashboard-token
- container binds the LAN address only (192.168.1.30:8082), not published via Caddy
- docs: architecture.md Monitoring section, plan.md active task, consumer lists

Deployed to CT 155 on 2026-09-03: container healthy, http://192.168.1.30:8082/
returns 200, `make dashboard` idempotent, `make validate` and `make lint` green.
Pending operator steps: `make bootstrap-dashboard-token` (blocked in the agent
session as credential creation) and an Uptime Kuma status page with slug homelab.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KbuZrUoevfBgCpf5DCF4DG
2026-09-03 09:17:16 +03:00
..

AI Context

Назначение

Этот набор документов фиксирует стабильный, подтвержденный репозиторием контекст HomeLab. Он дополняет краткий рабочий контракт в AGENTS.md и не заменяет канонические Ansible inventory/vars или операционные заметки Obsidian.

HomeLab управляется как Ansible-first control plane: Proxmox VE/LXC, сетевой транспорт, сервисы, резервное копирование, обновления и мониторинг описываются в ansible/. Прямые изменения на серверах допустимы только для read-only диагностики или break-glass восстановления с последующим переносом желаемого состояния в Ansible.

Возможности

  • создание и настройка LXC через Proxmox API или pct по SSH;
  • управление сервисами через Docker/systemd и Docker Compose/systemd;
  • OpenVPN-транспорт и SSH ProxyJump через ru-vps;
  • Caddy reverse proxy для публичных сервисов;
  • PBS и offsite restic backups с аудитом свежести;
  • управляемые обновления по схеме backup/audit -> update -> health check;
  • активный Uptime Kuma и сохраненный, но замороженный Prometheus stack;
  • локальный Grimmory MCP с ручной синхронизацией книг в Obsidian.

Форма системы

  • ansible/Makefile является основной ручной точкой входа.
  • ansible/inventory/hosts.yml задает хосты, группы и индивидуальные адреса.
  • ansible/inventory/group_vars/all/services.yml содержит сводный реестр сервисов, но пока программно управляет только генерацией reverse proxy.
  • ansible/playbooks/ содержит операционные entry points, ansible/roles/ - роли.
  • tools/grimmory-mcp/ является отдельным Node.js stdio MCP-процессом.
  • Obsidian vault хранит решения, текущую эксплуатационную картину и журнал работ.

Карта репозитория

Путь Назначение
ansible/Makefile Проверки, deploy, update и защищенные операции
ansible/inventory/ Канонические хосты, группы, общие и host-specific vars
ansible/playbooks/ Операционные Ansible entry points
ansible/roles/ Переиспользуемые роли и сохраненный monitoring stack
ansible/ssh_config SSH users, keys, ports и ProxyJump
.opencode/agents/ Read-only специализированные агенты HomeLab
tools/grimmory-mcp/ Grimmory API и Obsidian sync integration
archive/2026-07-proxmox-migration/ История до Ansible control plane, не active source

Ключевые ограничения

  • Не хранить secrets в Git или Obsidian.
  • Не считать --check --diff полной симуляцией Proxmox provisioning.
  • Не запускать замороженный Prometheus stack без отдельного решения.
  • Не считать generic roles lxc_docker_host и compose_service подключенными к production: активные service playbooks пока остаются источником поведения.
  • Не исправлять обнаруженный технический долг в рамках несвязанной задачи.
  • Не редактировать archive, generated files, installed Galaxy collections или node_modules как active implementation.

Документы

  • architecture.md - observed architecture и data/control flows.
  • tech-stack.md - runtimes, dependencies и команды.
  • edge-cases.md - failure modes, safety gaps и coverage.
  • plan.md - только подтвержденная активная работа.
  • migration-tofu.md - пошаговый план перехода provisioning LXC на OpenTofu по схеме blue-green.
  • legacy-warning.md - границы legacy/frozen/prototype кода.
  • links.md - официальные version-relevant references.