44 lines
4.2 KiB
Markdown
44 lines
4.2 KiB
Markdown
---
|
||
_last_updated_: 2026-08-23T15:43:31Z
|
||
session_id: mappa-prod-deploy-2026-08-23
|
||
---
|
||
|
||
# Next session handoff
|
||
|
||
## Что сделано в этой сессии (закрыто)
|
||
|
||
### 🟢 #1012 mappa-prod-deploy — инфра-деплой выполнен, передан mappa
|
||
Письмо mappa 15:10Z → взял таску #1012 (ready, notify mappa). Разделение труда подтверждено юзером: **деплой = админ, прод-импорт/verify/read-only/фолбэк/ntfy/MCP = mappa**. Сделано (инфра):
|
||
|
||
1. **БД**: отдельная `mappa` (role + db, owner mappa) на общем `postgres:16` VDS. Креды → **`pass show mappa/full-env`** (в т.ч. `DATABASE_URL` для docker-сети: `postgres://mappa:…@postgres:5432/mappa`).
|
||
2. **Образ**: `registry.kzntsv.site/mappa:0.1.0`. Dockerfile добавлен в репо mappa (commit `56366eb`). ⚠️ Грабли: tsc не копирует `.sql` → `schema.sql` в dist обязателен (COPY в Dockerfile), иначе migrate() падает «schema.sql not found». Образ пересобирался 2×.
|
||
3. **Compose**: source-of-truth `host-stacks/vds-kzntsv/mappa.compose.yml` (commit `8f1b13f3`): mem_limit 512m, restart unless-stopped, сети shared-dbs+proxy, healthcheck wget /health, traefik label → `https://mappa.vds.kzntsv.site`.
|
||
4. **Deploy**: Portainer stack 26 `mappa` (standalone string-mode, endpoint 1; скрипт `.tmp/mappa-portainer-deploy.py` + restart). НЕ ad-hoc compose up (VDS ops rule).
|
||
5. **Verify**: контейнер Up (healthy), `/health` → `{"ok":true,"service":"mappa"}`, `/admin/status` + `/graph/stats` 200, миграции легли (6 таблиц owner=mappa, БД пустая — entities=0).
|
||
6. **Пинг mappa**: письмо `mappa/.agents/inbox/2026-08-23T18-45-00Z-admin-mappa-deployed.md` — доставлено (монитор mappa утащил в `.read/` 18:34). #1012 закрыта (commit `5870b75b`).
|
||
|
||
## Открытые треки
|
||
| Трек | Статус | Entry-point |
|
||
|---|---|---|
|
||
| ~~#1012 mappa-prod-deploy~~ | 🟢 закрыто | — |
|
||
| mappa #985 mappa-deploy | 🔵 blocked-by #1012 → ждёт 🟢 (импорт+verify+read-only+ntfy+MCP за mappa) | письмо-пинг в mappa inbox доставлено; следить за их 🟢 |
|
||
| #803 llm-web-proxy | 🔴 active | next action в STATUS.md (executors/translators из omniroute) |
|
||
| MCP-кэш (meta_status) | 🟡 | synced 2026-08-22 22:19 |
|
||
| legacy agendaJobs (60 «posting»-сирот) | 🟡 | чистка отдельно |
|
||
| fbsPostings.js:73 TypeError | 🟡 | флагнул books |
|
||
| meeting-room merge-conflict (UU) | 🟡 | разрешить → миграция 2 тасок |
|
||
|
||
## Спроси user'а
|
||
- (нет на этом раунде — деплой закрыт по канону, письмо mappa отправлено)
|
||
|
||
## Не делать (guards)
|
||
- Редеплой mappa — только через Portainer (`POST /api/stacks/26/{stop,start}`; JWT как в миграц. скрипте). `docker compose up` по SSH — anti-pattern.
|
||
- Новый тег образа mappa → `docker pull` на VDS ДО restart стека (ловил залипание на старом digest).
|
||
- Не дублировать прод-импорт/ntfy/read-only — это скоуп mappa (#985), не админа.
|
||
- `noreply@snolla.com` — мёртвый ящик, не возвращать в конфиги.
|
||
- Не чистить legacy agendaJobs без отдельного запроса.
|
||
|
||
## Memory updates за сессию
|
||
- Прод-инфра mappa: БД на общем postgres:16 (база+role mappa, креды в pass), стек Portainer 26, endpoint `mappa.vds.kzntsv.site`, образ `registry.kzntsv.site/mappa:0.1.0`, compose в `host-stacks/vds-kzntsv/mappa.compose.yml`. Всё зафиксировано в closing-note #1012.
|
||
- Кандидат в shared-wiki: паттерн «schema.sql не попадает в dist при tsc-сборке — копировать отдельно в Dockerfile» + «Portainer stack не подхватывает новый digest без docker pull». Предложить ingest при желании.
|