mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 09:14:58 +03:00
Сохранить порядок дополнительных Compose-файлов при обновлении и подключать их помощнику на чтение. Добавить проверки override, постоянных каталогов dev-данных и документацию проекта. Явно задать русский язык в тестах русских подписей.
72 lines
5.6 KiB
Markdown
72 lines
5.6 KiB
Markdown
# Постоянное dev-окружение задачи
|
||
|
||
Обычная основная копия сохраняет прежние `./data` и Docker secret volumes.
|
||
`CHATBALLS_DEV_DATA_DIR` в `compose.dev.yaml` позволяет разместить PostgreSQL,
|
||
Redis и media вне checkout. В production используются прежние именованные тома.
|
||
|
||
Для worktree используйте `scripts/task-dev.ps1`. Он требует имя окружения,
|
||
свободный диапазон из шести портов и абсолютный каталог данных вне всех worktree:
|
||
|
||
```powershell
|
||
./scripts/task-dev.ps1 -Name t-008 -PortBase 18020 -DataDir C:/ChatballsRuntime/t-008
|
||
```
|
||
|
||
Это запуск существующей базы: без `postgres/PG_VERSION` скрипт остановится.
|
||
Он также проверяет наличие исходных secret volumes проекта `t-008`.
|
||
Имя Compose нельзя менять при переносе данных: оно определяет секреты инстанса.
|
||
|
||
Для новой реальной установки владелец явно выбирает `-InitializeDatabase`.
|
||
Запуск выполнит штатные миграции; владельца и организацию создают через обычный
|
||
мастер первого запуска. Скрипт не создаёт пользователей или демонстрационные
|
||
данные. Новая установка не является восстановлением старой базы.
|
||
|
||
Порты: `PortBase` PostgreSQL, `+1` Redis, `+2` backend-app, `+3`
|
||
backend-platform, `+4` frontend, `+5` web-chat. Frontend использует свой
|
||
`backend-app` внутри того же Compose-проекта. Скрипт проверяет настоящий
|
||
`/api/v1/health/ready/` через frontend proxy (БД и Redis).
|
||
|
||
## Перенос существующих данных
|
||
|
||
1. Запишите исходное имя Compose и mount paths через `docker inspect`.
|
||
2. Остановите все сервисы, которые пишут в PostgreSQL, Redis и media.
|
||
3. Сделайте резервную копию и проверьте её; копируйте полный `data`, включая
|
||
PostgreSQL WAL и служебные файлы, в постоянный каталог. Исходник сохраняйте.
|
||
4. Сохраните прежнее имя Compose и все три исходных secret volumes. Не используйте
|
||
`down -v`, не удаляйте тома и не генерируйте новые пароли для существующей базы.
|
||
5. Задайте `CHATBALLS_DEV_DATA_DIR` и пересоздайте соответствующие сервисы штатным
|
||
Compose. Проверьте mount paths, readiness и существующие данные/вход.
|
||
|
||
Если исходная база исчезла вместе с worktree, требуется её резервная копия.
|
||
Восстановление только исходников из Git не возвращает БД и media. Не направляйте
|
||
frontend на другую задачу, чтобы скрыть отсутствие API; общий backend должен
|
||
быть явно согласованной зависимостью с устойчивыми исходниками и данными.
|
||
|
||
`scripts/start.ps1` и `start.sh` предназначены для основной копии, не для
|
||
одноразовых worktree. Слияние задачи не должно удалять каталог, используемый
|
||
Docker как source mount.
|
||
|
||
## Действующее общее окружение T-008 (29 сентября 2026)
|
||
|
||
Frontend T-008 на `http://localhost:5173` явно использует основное окружение:
|
||
API `http://host.docker.internal:8010`, исходники backend из основной копии,
|
||
её существующие `data/postgres`, `data/redis`, `data/media` и исходные секреты.
|
||
Это основная база, а не восстановленная база T-007. Никакие аккаунты и данные
|
||
для этого подключения не создавались. Авторизованные экраны требуют обычного
|
||
входа существующим пользователем основной базы.
|
||
|
||
Постоянный override вне worktree:
|
||
`C:/Users/drmar/AppData/Roaming/Skaro/runtime/70a06986-4881-4d6d-865c-fa6636fc00b4/T-008/compose.shared.yaml`.
|
||
Из worktree T-008 frontend запускается так (без запуска собственного пустого backend):
|
||
|
||
```powershell
|
||
$override = 'C:/Users/drmar/AppData/Roaming/Skaro/runtime/70a06986-4881-4d6d-865c-fa6636fc00b4/T-008/compose.shared.yaml'
|
||
$env:INTERNAL_UI_PORT = '5173'
|
||
docker compose -p t-008 -f compose.yaml -f compose.dev.yaml -f $override up -d --no-deps --no-build frontend
|
||
```
|
||
|
||
Основной frontend отдельно доступен на 5174; Redis основного dev-окружения
|
||
использует host port 16380. При штатном запуске основной копии задайте
|
||
`INTERNAL_UI_PORT=5174` и `REDIS_HOST_PORT=16380`. Старый frontend one-off T-008
|
||
остановлен и сохранён; его ссылка на порт 18010 ведёт в повреждённый T-007.
|
||
Нельзя его запускать одновременно с новым frontend на 5173.
|