Фаза 2 завершена: деплой на TrueNAS, e2e зелений; задокументовано проблеми деплою

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
sages-ds
2026-07-14 17:36:33 +03:00
parent 95e7ca667b
commit 899c4e66e1
2 changed files with 20 additions and 8 deletions
+5 -4
View File
@@ -17,10 +17,11 @@ created: 2026-07-14
## Фаза 2 — Деплой ## Фаза 2 — Деплой
- [ ] Датасет `homeLab/portainer/apps/ai-memory-network` ([[Деплой на TrueNAS]]) - [x] Датасет `homeLab/portainer/apps/ai_memory_network` ([[Деплой на TrueNAS]]) ✅ 2026-07-14
- [ ] Portainer stack: ai-memory-server (порт 8767) + ai-memory-db (PostgreSQL 18, `pgvector/pgvector:pg18`) - [x] Portainer stack: ai-memory-server (порт 8767) + ai-memory-db (PostgreSQL 18, `pgvector/pgvector:pg18`) ✅ 2026-07-14
- [ ] Ініціалізація бази `ai_memory` + `CREATE EXTENSION vector;` - [x] Ініціалізація бази `ai_memory` + `CREATE EXTENSION vector;` (авто-міграції при старті) ✅ 2026-07-14
- [ ] Підключення Claude Code до endpoint, e2e перевірка - [x] e2e перевірка: healthz, auth 401, tools/list, повний цикл project/memory, UTF-8 roundtrip, FTS українською ✅ 2026-07-14
- [ ] Підключення Claude Code до endpoint (`.mcp.json` / mcp add)
## Фаза 3 — Скіли Claude Code ## Фаза 3 — Скіли Claude Code
+15 -4
View File
@@ -27,14 +27,25 @@ created: 2026-07-14
- Repository URL: `http://192.168.0.199:30008/sages/ai-memory-network-mcp-server` - Repository URL: `http://192.168.0.199:30008/sages/ai-memory-network-mcp-server`
- Authentication: увімкнути; username `sages`, password = Gitea API-токен - Authentication: увімкнути; username `sages`, password = Gitea API-токен
- Compose path: `compose.yml`, reference `refs/heads/main` - Compose path: `compose.yml`, reference `refs/heads/main`
- Environment variables: `POSTGRES_PASSWORD`, `API_KEYS` (значення — в Portainer, НЕ в репозиторії) - Environment variables: `POSTGRES_PASSWORD`, `API_KEYS` (значення — в Portainer, НЕ в репозиторії)
- Environment variables (додати дві):
`POSTGRES_PASSWORD = fe7cc9c59c4ce85c6383375d4258f513d0f1872e229e6bb5`
`API_KEYS = amk_477a49815af5b1790e6d35f565f5cc50ccb9a02cf89bf908`
- Порти після деплою: MCP endpoint `http://192.168.0.199:8767/mcp`, healthcheck `/healthz` - Порти після деплою: MCP endpoint `http://192.168.0.199:8767/mcp`, healthcheck `/healthz`
- Redeploy при оновленні коду: кнопка **Pull and redeploy** у стеку - Redeploy при оновленні коду: кнопка **Pull and redeploy** у стеку
## e2e перевірка після деплою ## e2e перевірка після деплою
- [ ] `GET /healthz``{"status":"ok"}` - [x] `GET /healthz``{"status":"ok"}` ✅ 2026-07-14
- [ ] MCP `initialize` + `tools/list` через `/mcp` з Bearer-ключем - [x] MCP `initialize` + `tools/list` через `/mcp` з Bearer-ключем (без ключа → 401) ✅ 2026-07-14
- [ ] `project_create``memory_save``memory_query``project_save_state``project_get_state` - [x] `project_create``memory_save``memory_query``project_save_state``project_get_state` ✅ 2026-07-14
- [x] UTF-8 roundtrip + FTS українською («їжак» знаходиться) ✅ 2026-07-14
## Проблеми деплою та рішення (2026-07-14)
1. **`mkdir /.docker: permission denied` при build у Portainer** — Portainer у TrueNAS Apps працює як uid 568 без writable `$HOME`. Рішення: env `DOCKER_CONFIG=/data/.docker` у конфігурації застосунку Portainer (Apps → portainer → Additional Environment Variables).
2. **`ai-memory-db is unhealthy`, у лозі `mkdir /var/lib/postgresql/18: Permission denied`** — образ postgres:18 ініціалізується від uid 999, а bind-mount створюється Docker'ом як root:root. Рішення: `midclt call --job filesystem.chown` → uid/gid 999 на `db-data`.
3. **Кирилиця псується при тестах через Windows curl**`-d` з argv конвертується через ANSI-кодову сторінку → U+FFFD. Це проблема клієнта, не сервера. Тестувати через node `fetch` або `--data-binary @file`.
4. **Правило sudoers `cli -c "app *"` зламане** — вимагає літеральних лапок в аргументі; треба виправити на `cli -c app\ *` (окрема задача).
Пов'язане: [[Огляд архітектури]], [[Roadmap]] Пов'язане: [[Огляд архітектури]], [[Roadmap]]