Конфигурация приложения
Переменные окружения бекенда
Сервер
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
PORT | int | 8080 | Порт HTTP-сервера |
HOST | string | 0.0.0.0 | Хост для привязки сервера |
ENVIRONMENT | string | development | Окружение (development/production) |
DEV_MODE | bool | true | Включение режима разработки |
База данных
Поддерживается два подхода: строка подключения DATABASE_URL или отдельные переменные.
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
DATABASE_URL | string | — | Полная строка подключения к PostgreSQL |
POSTGRES_HOST | string | localhost | Хост PostgreSQL |
POSTGRES_PORT | int | 5432 | Порт PostgreSQL |
POSTGRES_DB | string | slozy_dev | Имя базы данных |
POSTGRES_USER | string | slozy_user | Пользователь |
POSTGRES_PASSWORD | string | — | Пароль |
POSTGRES_SSL_MODE | string | disable | Режим SSL (disable/require/verify-full) |
POSTGRES_MAX_OPEN_CONNS | int | 25 | Максимум открытых соединений |
POSTGRES_MAX_IDLE_CONNS | int | 10 | Максимум idle-соединений |
POSTGRES_CONN_MAX_LIFETIME | duration | 1h | Максимальное время жизни соединения |
POSTGRES_CONN_MAX_IDLETIME | duration | 10m | Максимальное время простоя соединения |
Redis
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
REDIS_HOST | string | localhost | Хост Redis |
REDIS_PORT | int | 6379 | Порт Redis |
REDIS_PASSWORD | string | — | Пароль Redis |
REDIS_DB | int | 0 | Номер базы данных Redis |
REDIS_TLS_ENABLED | bool | false | Включение TLS для Redis |
JWT
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
JWT_SECRET | string | dev_change_me_in_production_min_32_chars | Секретный ключ для подписи токенов |
JWT_EXPIRATION | duration | 8h | Время жизни access-токена |
JWT_REFRESH_EXPIRATION | duration | 168h (7 дней) | Время жизни refresh-токена |
CORS
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
CORS_ENABLED | bool | true | Включение CORS |
CORS_ORIGINS | string | http://localhost:3000,http://localhost:8080 | Разрешённые источники (через запятую) |
Логирование
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
LOG_LEVEL | string | info | Уровень логирования (debug/info/warn/error) |
LOG_FORMAT | string | json | Формат логов (json/text) |
Безопасность
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ENABLE_SECURITY | bool | true | Включение security-мидлваров |
ENABLE_RATE_LIMIT | bool | true | Включение rate limiting |
GLOBAL_RATE_LIMIT | int | 1000 | Глобальный лимит запросов в минуту |
PER_IP_RATE_LIMIT | int | 100 | Лимит запросов на IP в минуту |
ENABLE_IP_WHITELIST | bool | false | Включение IP-вайтлиста |
IP_WHITELIST | string | 127.0.0.1,10.0.0.0/8 | Разрешённые IP и подсети |
Переменные фронтенда
Фронтенд на Vite использует переменные с префиксом VITE_:
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
VITE_API_URL | string | /api/v1 | Базовый путь API (через прокси) |
VITE_API_BASE_URL | string | http://localhost:8080 | Полный URL бекенда для прямых запросов |
VITE_ENV | string | development | Окружение фронтенда |
Пример .env.production
env
# Backend
SERVER_PORT=8080
GIN_MODE=release
DATABASE_URL=postgres://postgres:postgres@postgres-service:5432/slozy_db?sslmode=require
DB_MAX_OPEN_CONNECTIONS=100
DB_MAX_IDLE_CONNECTIONS=10
REDIS_URL=redis://redis-service:6379
REDIS_DB=0
CACHE_ENABLED=true
CACHE_DEFAULT_TTL=300
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
JWT_EXPIRATION=24h
LOG_LEVEL=info
LOG_FORMAT=json
ALLOWED_ORIGINS=https://slozy.net
ENABLE_SECURITY=true
ENABLE_RATE_LIMIT=true
GLOBAL_RATE_LIMIT=1000
PER_IP_RATE_LIMIT=100
# Frontend
VITE_ENV=production
VITE_API_URL=/api/v1
VITE_API_BASE_URL=http://localhost:8080