Files
infra/README.md
T
DmitryandClaude Sonnet 5 d2e1e6876a docs: AI project context (docs/ai) and repository documentation refresh
- docs/ai/: stable, repo-verified context - README, architecture, tech-stack,
  edge-cases, plan (confirmed active work only), migration-tofu (the blue-green
  OpenTofu migration runbook and per-service findings), legacy-warning, links.
- AGENTS.md: slimmed to a working contract that points at docs/ai instead of
  restating it; CLAUDE.md is an adapter that @-includes it.
- README.md, ansible/README.md, ansible/roles/README.md,
  roles/lxc_docker_host/README.md: bring wording in line with the current
  control plane (Makefile entry point, registry, tofu, memoir-bot gone).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uoq5AVK8mkBgg83Mq6o5V
2026-09-03 07:06:10 +03:00

71 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HomeLab Infrastructure
Активная инфраструктура домашней лаборатории управляется через Ansible.
Каноничные инструкции для людей и агентов — в [AGENTS.md](./AGENTS.md).
Стабильный архитектурный контекст и риски — в [docs/ai/](./docs/ai/README.md).
## Быстрый старт
Окружение собрано в Nix, venv не нужен:
```bash
nix develop # или один раз: direnv allow
# Один раз на клон
ansible-galaxy collection install -r ansible/requirements.yml -p ansible/collections
```
Всё управление — через `make` из `ansible/`:
```bash
cd ansible
make help # список целей, начинать отсюда
make check # связность и ожидаемые IP
make status # read-only сводка по всей инфраструктуре
make lint # ansible-lint + yamllint
```
Деплой и обновления:
```bash
make dry-gitea # предпросмотр (--check --diff)
make deploy-gitea # применить
make update-gitea # бэкап -> обновление -> health-check
```
Секреты лежат в `.env` в **корне репозитория**`.gitignore`); его подхватывают
и Ansible, и OpenTofu. Опасные цели требуют `CONFIRM=1`.
## SSH руками
`ansible/ssh_config` — единый источник правды по SSH и для Ansible, и для терминала.
Добавь в `~/.ssh/config`, чтобы заработал `ssh gitea`:
```
Include /home/ada/Documents/Projects/HomeLab/infras/ansible/ssh_config
```
## Структура
- `ansible/` — control plane: `Makefile`, `inventory/`, `playbooks/`, `roles/`, `ssh_config`
- `ansible/inventory/group_vars/all/services.yml` — реестр сервисов (VMID, IP, порты, домены, образы)
- `flake.nix` — dev-окружение
- `.gitea/workflows/lint.yml` — CI: yamllint, ansible-lint, syntax-check
- `docs/ai/` — архитектура, stack, edge cases и legacy boundaries для агентов
- `archive/2026-07-proxmox-migration/` — исторические NixOS/Docker конфиги, только как справка
## Grimmory MCP
`tools/grimmory-mcp/` содержит read-only интеграцию с Grimmory API для OpenCode.
Явно вызываемые sync tools записывают сгенерированные заметки и обложки в Obsidian.
```bash
npm install --prefix tools/grimmory-mcp
npm run configure --prefix tools/grimmory-mcp
npm test --prefix tools/grimmory-mcp
```
Глобальная регистрация MCP в OpenCode выполняется вне этого репозитория. После
настройки используй `/grimmory-sync` для обновления заметок книг в
`90 Library/Books` и обложек в `99 System/Export/Grimmory/Covers`.