core: каркас сборки, embedder, схема БД, 4 теста
This commit is contained in:
Executable
+141
@@ -0,0 +1,141 @@
|
||||
#!/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) заметок"
|
||||
Reference in New Issue
Block a user