Монорепозиторий: client (Vite + React), server (Fastify + Socket.IO + Prisma + PostgreSQL).
- Создайте базу в своём инстансе, например в psql или pgAdmin:
CREATE DATABASE retrogen; - Скопируйте
server/.env.example→server/.envи вDATABASE_URLукажите пользователя, пароль и имя базы (как у вас заведено в PostgreSQL, не обязательно пользовательretrogenиз Docker). - Миграции: из корня
npm run db:deploy(илиnpm run db:migrate). После pull с новыми миграциями — сноваdb:deploy. - Prisma Client:
npm run db:generate(или автоматически передnpm run devчерезpredevвserver). Без этого после миграций мессенджер и другие новые модели дают 500 на API. - Запуск:
npm run dev— клиент http://localhost:5173, API и WebSocket http://localhost:3000.
На Windows иногда на порту 5173 остаётся старый процесс Node (только IPv6 [::1]), а новый Vite слушает 127.0.0.1 — тогда http://localhost:5173 не открывается, а http://127.0.0.1:5173 работает.
Завершите лишний процесс на 5173 (Диспетчер задач → Node.js) или в PowerShell:
Get-NetTCPConnection -LocalPort 5173 -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty OwningProcess -Unique |
ForEach-Object { Stop-Process -Id $_ -Force -ErrorAction SilentlyContinue }Затем снова npm run dev. API через прокси Vite: http://localhost:5173/api/....
Переменные для сервера читаются из server/.env (подхватываются и Prisma CLI при запуске из каталога server, и самим приложением).
Если psql не в PATH, добавьте bin установки PostgreSQL в переменную окружения или подключайтесь через pgAdmin — на работу приложения это не влияет, нужна только корректная строка DATABASE_URL.
- Сборка:
npm run build - Полный стек в контейнерах:
docker compose up --build— приложение на порту 3000, отдельная БД в compose.
Для Docker используется свой DATABASE_URL в compose; для локальной разработки достаточно своего PostgreSQL и server/.env.
См. docs/DEPLOYMENT.md.
Команда и приглашение в GitHub Collaborators: docs/CONTRIBUTORS.md.
- Клонируйте репозиторий, в корне:
npm install. - Скопируйте
server/.env.example→server/.env, при необходимостиclient/.env.example→client/.env(файлы.envв git не попадают). npm run db:deploy, при необходимостиnpm run db:generate, затемnpm run dev.- Перед merge в общую ветку дополняйте
CHANGELOG.md(раздел[Unreleased]) или:
npm run changelog:append -- "Краткое описание для пользователя". - После merge в
mainGitHub Actions сам поднимает 2-ю или 3-ю цифру версии — docs/VERSIONING.md. Тест-стенд: веткаstaging— docs/WORKFLOW.md. Защита веток и PR — docs/GITHUB_BRANCH_PROTECTION.md. Прод (1-я цифра) — docs/ADMIN.md.
Удалённый репозиторий (GitHub / GitLab) создаётся у владельца проекта; после git remote add origin <URL> — git push -u origin main.