Документация
Настройка копии проекта
Файл .vibeforge/workspace.json: миграции, команда запуска, лишние файлы, порты и диапазон портов для копии проекта.
Копия проекта — чистый чекаут, поэтому иногда ей нужен один шаг настройки: миграции, генерация, docker. Всё это описывается файлом .vibeforge/workspace.json в корне проекта. Файл лежит в git — значит действует во всех копиях. Все поля необязательные.
{
"setup": "npm run db:migrate && npm run seed",
"run": "npm run dev -w @acme/web",
"archive": "docker compose down -v",
"copy": ["config/local.yml", "certs"],
"copyEnv": true,
"ports": 2,
"portRange": [5200, 5399]
}| Поле | Когда нужно |
|---|---|
| setup | Один раз на новую копию: миграции, генерация, seed, docker. Выполняется заново, если команду поменяли |
| run | Чем поднимать превью, если автоопределения из package.json мало. Кнопка «Запомнить для проекта» в превью пишет сюда же |
| archive | Уборка перед удалением копии сессии и копии эпика — чтобы не висели контейнер или том |
| copy | Файлы и папки, которых нет в git |
| copyEnv | Копировать ли .env* автоматически (по умолчанию да) |
| ports | Сколько портов закрепить за сессией: фронт, api и так далее |
| portRange | Из какого диапазона брать порты, если стандартный занят |
Скрипты видят VIBEFORGE_SESSION_PORT, VIBEFORGE_PORT_1…N, VIBEFORGE_WORKSPACE_PATH, VIBEFORGE_PROJECT_PATH и VIBEFORGE_SESSION_ID. Что произошло — видно в ленте; опечатка в файле не ломает старт (поле игнорируется с предупреждением), а команда из стоп-листа (sudo, rm -rf /, git push) не выполняется вовсе.
Файл, который в копии уже есть, не перезаписывается — правка агента остаётся его правкой. Права файлов сохраняются: chmod 600 останется 600. На своём сервере тот же шаг подготовки задаётся в описании машины.