#!/bin/bash # Создаёт эталонный корпус для приёмки memo (TESTING.md §0). # 12-15 заметок в 3 коллекциях, кириллица + латиница + точные значения в каждой папке. set -euo pipefail ROOT="${1:-/root/WORK/memo-e2e}" rm -rf "$ROOT" mkdir -p "$ROOT/infra" "$ROOT/work/jira" "$ROOT/life/books" # ---------- infra ---------- cat > "$ROOT/infra/servers.md" <<'EOF' # Серверы ## Server4 (76.160) Основной Proxmox-хост. Диск sdd — SSD, sda/b/c — HDD, причём sda на SMR-пластинах. Утилиты parted нет: разметку делать через sgdisk или sfdisk. ## Server5 (88.130) Две видеокарты: 3090 занята под Qwen VL и аудио, её не трогать. Эксперименты — только на 5090. ## Server6 (76.109) Здесь живёт powerdns, он же LXC102. Отвечает за внутренние зоны. EOF cat > "$ROOT/infra/hosts.md" <<'EOF' # Адреса внутренних сервисов ## Реестр образов zot слушает на 192.168.88.35:8080, репозиторий приватный. ## Прокси Корпоративные домены ходят через Caddy на 76.132. Отдельный Traefik на 76.195 заворачивает домены вида .xx, а DNS под ним — 76.109. ## Nexus Нексус доступен на 76.117, релизы публикует CI/CD, руками артефакты не заливать. EOF cat > "$ROOT/infra/domains.md" <<'EOF' # Домены и DNS ## Внутренние зоны Основой для DNS и mDNS служит kdns, он же pw.binom.dns. ## LLM-роутер llm.binom.pw работает через Bifrost, виртуальные ключи раздаёт сам роутер. ## Реестр Домашний реестр библиотек — nexus.xx, репозиторий caffeine. EOF cat > "$ROOT/infra/backup.md" <<'EOF' # Резервное копирование ## Postgres Дампы снимаются в custom-формате. При восстановлении pg_restore может выйти мгновенно с кодом ноль и ничего не сделать — проверять, что объекты реально появились. ## Медиа Джоб копирования зеркал для очков идёт через NATS и складывает результат в S3 SeaweedFS. EOF # ---------- work/jira ---------- cat > "$ROOT/work/jira/access.md" <<'EOF' # Доступы ## OTP-прокси Корпоративные ресурсы ходят через OTP, файлы лежат в /root/OTP/. Jira отвечает на jira.mcp.xx. ## TeamCity Сборки живут в teamcity.isb, статусы и логи — только через тот же OTP-прокси. ## Git Клонирование корпоративных репозиториев с bitbucket возможно лишь по HTTPS, git@ не работает. EOF cat > "$ROOT/work/jira/flow.md" <<'EOF' # Рабочий поток ## Задачи от агентов Задача от агента оформляется спекой в отдельном файле, итог работы — комментарий в Vikunja. ## Тикеты Тикет TEST-4173 закрыт после того, как сборка перестала падать на шаге тестов. EOF cat > "$ROOT/work/jira/pitfalls.md" <<'EOF' # Грабли ## Хелм Helm upgrade в k3s теряет values, если передавать их через --set. Восстанавливать из истории релиза. ## TeamCity Если прогон висит больше часа, смотреть лог агента, а не перезапускать сборку слепо. EOF cat > "$ROOT/work/jira/ci.md" <<'EOF' # CI ## Gitea Actions Раннер живёт в LXC105 на 76.112. Сироты процессов podman и unity съедают диск и валят сборку. EOF # ---------- life/books ---------- cat > "$ROOT/life/books/iphuck.md" <<'EOF' # iPhuck 10 ## Про роман Роман Пелевина, 2017 года. Рассказчик — алгоритмический следователь Порфирий Петрович, он же литературный негр, он же полицейская машина. ## Канон Канон Порфирия Петровича лежит в /root/BOOKS/iphuck10/. Тон — высокий штиль, смешанный с сухим канцеляритом. EOF cat > "$ROOT/life/books/audiobooks.md" <<'EOF' # Аудиокниги ## Библиотека Книги хранятся в Audiobookshelf. Карточку чинят вручную, если метаданные подтянулись от другого издания. ## Плеер Для очков RayNeo X2 книги транскодируются в зеркала, аудио идёт отдельными дорожками. EOF cat > "$ROOT/life/books/history.md" <<'EOF' # История ## Античность Первый том заканчивается на правлении Траяна, 117 год нашей эры. EOF cat > "$ROOT/life/books/notes.md" <<'EOF' # Заметки о чтении ## Привычка Читаю по вечерам, отмечаю цитаты в markdown, потом ищу их семантическим поиском. EOF ls -R "$ROOT" echo "OK: $(find "$ROOT" -name '*.md' | wc -l) заметок"