Настройка .env
Этот гайд описывает, какие переменные окружения нужны в ключевых сервисах и как их заполнять для локальной разработки.
Общие правила
- Берём
.env.exampleкак базу и создаём.env. - Не коммитим
.env(только.env.example). - Секреты в dev можно задавать простыми значениями, но в prod должны быть сильные и ротируемые.
apps/api
Файл: apps/api/.env
Минимум для запуска:
DATABASE_URL— строка подключения к Postgres для API.JWT_SECRET— секрет для JWT (длинная строка).JWT_EXPIRES_IN— срок жизни токена (например,7d).CORS_ORIGIN— список разрешённых origin (например,http://localhost:5173).
Дополнительно (если используете):
AI_TUNNEL_API_KEY— ключ для AI‑провайдера.STORAGE_*— параметры хранилища (S3/совместимое).
apps/runtime-backend
Файл: apps/runtime-backend/.env
Минимум для запуска:
DATABASE_URL— preview‑DB (отдельная база/пользователь).PORT— порт сервиса (по умолчанию3001).
Защита сервисных запросов:
RUNTIME_BACKEND_AUTH_TOKEN— токен для runtime‑host (Bearer).
Применение миграций/сидов:
PREVIEW_APPLY_MIGRATIONS=true|falsePREVIEW_APPLY_SEEDS=true|false
Медиа‑прокси (если используется):
MEDIA_PROXY_ENABLED=trueMEDIA_PROXY_ALLOWLIST=*(или список доменов)
apps/runtime-host
Файл: apps/runtime-host/.env
Минимум:
VITE_API_BASE_URL— URL API (http://localhost:3000).VITE_RUNTIME_BACKEND_URL— URL runtime‑backend (http://localhost:3001).
Если включена защита runtime‑backend:
VITE_RUNTIME_BACKEND_TOKEN— тот же токен, что вRUNTIME_BACKEND_AUTH_TOKEN.
Медиа‑режим (optional):
VITE_MEDIA_MODE—direct|normalized|proxyVITE_MEDIA_PROXY_URL— URL прокси (обычноVITE_RUNTIME_BACKEND_URL)
apps/builder-web
Файл: apps/builder-web/.env.development
Минимум:
VITE_API_BASE_URL— URL API (http://localhost:3000).
Медиа‑режим (optional):
VITE_MEDIA_MODE—direct|normalized|proxyVITE_MEDIA_PROXY_URL— URL прокси (например, runtime‑backend).
apps/docs
Файл: apps/docs/.env (опционально)
Обычно не требуется. Если используется внешняя аналитика или интеграции — добавляйте по месту.
Экспортируемые проекты (templates)
В экспортируемом backend:
DATABASE_URL— база в docker‑compose.LOWCODE_APPLY_MIGRATIONS=true|falseLOWCODE_APPLY_SEEDS=true|falseLOWCODE_DB_DIR=/db(в docker‑compose уже задано)
Admin UI:
LOWCODE_ADMIN_ENABLED=trueLOWCODE_ADMIN_TOKEN=...LOWCODE_ADMIN_TABLES=products,orders
Media proxy:
MEDIA_PROXY_ENABLED=trueMEDIA_PROXY_ALLOWLIST=*
Рекомендации для продакшена
- Секреты хранить в менеджере секретов (Vault/SSM/Secrets Manager).
- Токены и JWT‑секреты менять регулярно.
- Ограничивать
CORS_ORIGINиMEDIA_PROXY_ALLOWLIST. - Использовать отдельного пользователя БД для preview/runtime‑backend.