Краткая инструкция по запуску локально с docker-compose.yml из репозитория.
- Docker (>=20.10)
- Docker Compose (v2, команда
docker compose)
- Перейти в корневую папку проекта (там где находится docker-compose.yml).
- (Опционально) Создать файл
.envилиdocker-compose.override.ymlдля переопределения секретов/настроек. - Собрать и запустить все сервисы:
docker compose up --build - Просмотреть логи:
docker compose logs -f api - Остановить и удалить контейнеры:
docker compose down
Если нужно пересобрать без кэша:
docker compose build --no-cache
docker compose up -d
- API: http://127.0.0.1:3000
- Frontend (dev сервер): http://127.0.0.1:4173
- Bot invite/server: http://127.0.0.1:5001
- Postgres: 127.0.0.1:5432 (для локальных подключений)
- Swagger http://127.0.0.1:3000/swagger/index.html
По умолчанию привязки в compose сделаны к 127.0.0.1 — если нужен внешний доступ, замените на 0.0.0.0.
Не храните реальные секреты в публичных репозиториях. Рекомендуется использовать .env или секретный менеджер.
Общие переменные для сервиса api:
- MODE — режим запуска (dev/prod).
- PORT — порт приложения (обычно 3000).
- JWT_SECRET — секрет для подписи JWT.
- DB_CONNECTION_STRING — строка подключения к Postgres, формат:
postgres://<user>:<password>@<host>:<port>/<db>?sslmode=disableВ compose используется хостpostgres(имя сервиса). - DB_MIGRATE — если true, при старте выполняются миграции БД.
- BOT_API_BASE — базовый URL для обращения к сервису бота (например
http://bot:5001). - WRAPPER_TLS — true/false, включает/отключает TLS в обёртке (зависит от реализации).
- BOT_TOKEN — токен бота (секрет).
- ROOT_TOKEN — токен суперпользователя/администратора (секрет).
- LLM_AUTH_KEY — ключ доступа к LLM/внешнему API (base64/строка).
- LLM_SCOPE — scope/назначение LLM-ключа (пример: GIGACHAT_API_PERS).
Переменные для postgres (контейнер):
- POSTGRES_USER — имя пользователя БД.
- POSTGRES_PASSWORD — пароль.
- POSTGRES_DB — имя БД.
Переменные для frontend:
- VITE_API_BASE — базовый URL API, который используется фронтендом (для production укажите публичный URL API). При локальном тестировании можно выставить
http://localhost:3000.
Переменные для bot:
- INVITE_SERVER_HOST, INVITE_SERVER_PORT — хост/порт сервера приглашений.
- AGREEMENT_URL — ссылка на соглашение/контент.
- API_BASE_URL — URL API (обычно
http://api:3000внутри сети Docker). - BOT_TOKEN, ROOT_TOKEN — токены (должны совпадать/быть валидными для API).
MODE=prod
PORT=3000
JWT_SECRET=your_jwt_secret
DB_CONNECTION_STRING=postgres://postgres:password@postgres:5432/maxhackathon?sslmode=disable
DB_MIGRATE=true
BOT_API_BASE=http://bot:5001
WRAPPER_TLS=false
BOT_TOKEN=your_bot_token
ROOT_TOKEN=your_root_token
LLM_AUTH_KEY=your_llm_key
LLM_SCOPE=GIGACHAT_API_PERS
VITE_API_BASE=http://localhost:3000
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_db_password
POSTGRES_DB=maxhackathon
Если нужна помощь с генерацией .env или изменением compose под production — скажите, какие значения вы хотите заменить.