Files
FamilyHUB/README.md
T

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
```