87 lines
2.8 KiB
Markdown
87 lines
2.8 KiB
Markdown
# FamilyHUB
|
|
|
|
## Структура репозитория
|
|
|
|
- `backend/` — текущий Go backend и миграции приложения.
|
|
- `frontend/` — директория под Vue-приложение.
|
|
- `infra/` — docker-compose, Dockerfile'ы и локальные infra-данные для разработки.
|
|
- `docs/` — документация проекта.
|
|
|
|
## Заполнение конфигурации
|
|
|
|
Приложение читает переменные окружения из `.env` (через `godotenv`) и затем из окружения процесса.
|
|
|
|
### 1. Создайте файл `.env` в `backend/`
|
|
|
|
```env
|
|
RUN_MODE=standalone
|
|
DEBUG_MODE=false
|
|
|
|
BOT_TOKEN=123456:telegram-bot-token
|
|
GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/google-credentials.json
|
|
|
|
DB_PATH=sqlite://data/app.db
|
|
API_HOST=localhost
|
|
API_PORT=8000
|
|
API_SECRET=change-me
|
|
|
|
OPEN_API_ENABLED=true
|
|
OPEN_API_ENDPOINT=/openapi
|
|
```
|
|
|
|
### 2. Обязательные переменные по режимам
|
|
|
|
`RUN_MODE` поддерживает значения:
|
|
- `bot`
|
|
- `api`
|
|
- `standalone`
|
|
|
|
Если `RUN_MODE=bot` или `RUN_MODE=standalone`, обязательны:
|
|
- `BOT_TOKEN`
|
|
- `GOOGLE_APPLICATION_CREDENTIALS`
|
|
|
|
Если `RUN_MODE=api` или `RUN_MODE=standalone`, обязательна:
|
|
- `API_SECRET`
|
|
|
|
### 3. Дефолты для API-режима
|
|
|
|
Если не заданы, будут использованы:
|
|
- `DB_PATH=sqlite://data/app.db`
|
|
- `API_HOST=localhost`
|
|
- `API_PORT=8000`
|
|
- `OPEN_API_ENDPOINT=/openapi`
|
|
|
|
### 4. Описание переменных
|
|
|
|
- `RUN_MODE`: режим запуска (`bot`, `api`, `standalone`).
|
|
- `DEBUG_MODE`: `true/false`.
|
|
- `BOT_TOKEN`: токен Telegram-бота.
|
|
- `GOOGLE_APPLICATION_CREDENTIALS`: абсолютный путь к JSON-ключу Google.
|
|
- `DB_PATH`: строка подключения к БД (например `sqlite://data/app.db`).
|
|
- `API_HOST`: хост API.
|
|
- `API_PORT`: порт API.
|
|
- `API_SECRET`: секрет API.
|
|
- `OPEN_API_ENABLED`: включает swagger-ui endpoint (`true/false`).
|
|
- `OPEN_API_ENDPOINT`: путь для OpenAPI endpoint (в конфиге присутствует).
|
|
|
|
### 5. Быстрая проверка перед запуском
|
|
|
|
1. Убедитесь, что `RUN_MODE` выставлен корректно.
|
|
2. Проверьте обязательные переменные для выбранного режима.
|
|
3. Проверьте существование файла `GOOGLE_APPLICATION_CREDENTIALS` (если включен bot).
|
|
4. Убедитесь, что `DB_PATH` валиден и директория для SQLite доступна на запись.
|
|
|
|
### 6. Запуск backend
|
|
|
|
```bash
|
|
cd backend
|
|
go run ./src
|
|
```
|
|
|
|
### 7. Запуск инфраструктуры
|
|
|
|
```bash
|
|
cd infra
|
|
docker compose up -d
|
|
```
|