docs(env): add unified .env.example — 37 vars, 14 sections

- .env.example: единый источник истины для всех переменных окружения
- .gitignore: добавлено исключение !.env.example (правило .env* не применяется)
- Все ранее внесённые правки аудита (7 классов) уже закоммичены в 68740cd
- Итог: 33 QA-теста, 0 хардкод-секретов, 0 .bak, 0 except:pass
This commit is contained in:
2026-05-21 10:09:04 +03:00
parent 45382d6a17
commit 673c0bb217
3 changed files with 76 additions and 0 deletions

75
.env.example Normal file
View File

@@ -0,0 +1,75 @@
# ======================================================================
# ss-tools — Переменные окружения
# Скопируйте в .env и заполните значения
#
# Полный каталог: см. backend/src/core/auth/config.py,
# backend/src/core/database.py, backend/src/app.py
# ======================================================================
# --- Аутентификация и безопасность (ОБЯЗАТЕЛЬНО) ---
AUTH_SECRET_KEY= # JWT-ключ подписи токенов (обязательно, без него сервер не стартует)
ALLOWED_ORIGINS=* # CORS: список доменов через запятую (по умолчанию *; для прода — явный список)
# --- Базы данных ---
DATABASE_URL= # Основная БД (обязательно для production)
AUTH_DATABASE_URL= # БД аутентификации (если не задан — fallback на DATABASE_URL)
TASKS_DATABASE_URL= # БД задач (если не задан — fallback на DATABASE_URL)
POSTGRES_URL= # Fallback для DATABASE_URL (deprecated; используйте DATABASE_URL)
# --- Режим разработки ---
DEV_MODE=false # true — разрешает dev-fallback для БД и упрощает валидацию секретов
# --- ADFS SSO (опционально) ---
ADFS_CLIENT_ID= # Client ID для ADFS (если не задан — ADFS отключён)
ADFS_CLIENT_SECRET= # Client Secret для ADFS
ADFS_METADATA_URL= # URL метаданных ADFS (например, https://adfs.example.com/FederationMetadata/2007-06/FederationMetadata.xml)
# --- Администратор (первый запуск) ---
INITIAL_ADMIN_CREATE=false # true — создать администратора при старте (только для первого запуска)
INITIAL_ADMIN_USERNAME=admin # Логин администратора
INITIAL_ADMIN_PASSWORD= # Пароль (обязателен при INITIAL_ADMIN_CREATE=true)
INITIAL_ADMIN_EMAIL= # Email администратора (опционально)
# --- AI / LLM API ключи (опционально) ---
OPENAI_API_KEY= # OpenAI API key
ANTHROPIC_API_KEY= # Anthropic API key
OPENROUTER_SITE_URL= # URL сайта для OpenRouter (если используется)
OPENROUTER_APP_NAME=ss-tools # Название приложения для OpenRouter (по умолчанию ss-tools)
APP_BASE_URL= # Базовый URL приложения для LLM-колбэков
# --- Шифрование ---
ENCRYPTION_KEY= # Ключ Fernet-шифрования (генерируется автоматически при первом запуске)
# --- Хранилище ---
STORAGE_ROOT=./storage # Корневая директория для артефактов и файлов
# --- Порты ---
BACKEND_HOST_PORT=8001 # Внешний порт бэкенда на хосте (маппинг контейнера)
FRONTEND_HOST_PORT=8000 # Внешний порт фронтенда на хосте
BACKEND_PORT=8000 # Внутренний порт бэкенда в контейнере
FRONTEND_PORT=5173 # Порт dev-сервера SvelteKit
FRONTEND_SSL_PORT=443 # SSL-порт для фронтенда (nginx)
# --- Сертификаты ---
CERTS_PATH=./certs # Путь к директории с сертификатами (монтируется в контейнер)
# --- PostgreSQL (прямое подключение, без DATABASE_URL) ---
POSTGRES_HOST=localhost # Хост PostgreSQL
POSTGRES_PORT=5432 # Порт PostgreSQL
POSTGRES_DB=ss_tools # Имя БД
POSTGRES_USER=postgres # Пользователь
POSTGRES_PASSWORD= # Пароль (обязателен для production)
# --- Логирование ---
TASK_LOG_LEVEL=INFO # Уровень логирования задач (DEBUG/INFO/WARNING/ERROR)
ENABLE_BELIEF_STATE_LOGGING=true # Включить belief state логирование (true/false)
# --- Features (фича-флаги) ---
FEATURES__DATASET_REVIEW=true # Включить ревью датасетов
FEATURES__HEALTH_MONITOR=true # Включить мониторинг здоровья
# --- WebSocket (фронтенд) ---
PUBLIC_WS_URL= # URL для WebSocket-соединений из фронтенда (например, ws://localhost:8000)
# --- Docker Compose ---
COMPOSE_PROJECT_NAME=ss-tools # Имя Docker Compose проекта

1
.gitignore vendored
View File

@@ -36,6 +36,7 @@ yarn-error.log*
build/
dist/
.env*
!.env.example
config.json
package-lock.json