- config: pydantic-settings по подсистемам, ADMIN_IDS через запятую - texts.yaml + валидация при старте (лишний/пропущенный ключ — ошибка сразу) - меню: reply-клавиатура разделов (Участники — только админам), инлайн «Назад»/«Отмена» с редактированием сообщения на месте, /start, /menu, /help - AccessMiddleware (outer) на сообщениях и кнопках: до #25 пускает только ADMIN_IDS, постороннему — одна фраза в сутки, устаревшие кнопки молча гасятся - heartbeat-файл + HEALTHCHECK в Dockerfile; JSON-логи - FSM пока в памяти (фабрика), хранилище в БД — в #5 - тесты на фейковой сессии aiogram через настоящий Dispatcher Refs #4 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 lines
1.4 KiB
Bash
32 lines
1.4 KiB
Bash
# tgit — пример конфигурации. Скопировать в .env и заполнить: `cp .env.example .env`.
|
|
# .env не коммитится. Секреты помечены (secret).
|
|
|
|
# --- Telegram (#4, #25) ---
|
|
TELEGRAM_BOT_TOKEN= # (secret) токен от @BotFather
|
|
ADMIN_IDS= # Telegram ID первых администраторов через запятую
|
|
LOG_LEVEL=INFO
|
|
|
|
# --- База данных ---
|
|
POSTGRES_PASSWORD=tgit # (secret на сервере) пароль Postgres в Compose
|
|
# DATABASE_URL задаётся в docker-compose.yml; для запуска без Docker:
|
|
# DATABASE_URL=postgresql+asyncpg://tgit:tgit@localhost:5432/tgit
|
|
|
|
# --- SourceCraft (#7, #10) ---
|
|
SOURCECRAFT_TOKEN= # (secret) персональный токен API
|
|
UPLOADS_REPO=rogachevegorushka/tgit-uploads
|
|
|
|
# --- Git: коммиты в репозиторий загрузок (#7, #9) ---
|
|
GIT_SSH_KEY_PATH= # путь к приватному deploy-ключу бота (монтируется read-only)
|
|
|
|
# --- LLM (#17) ---
|
|
LLM_PROVIDER=mock # mock | openai_compat
|
|
LLM_BASE_URL=
|
|
LLM_MODEL=
|
|
LLM_API_KEY= # (secret)
|
|
|
|
# --- Для Claude Code: трекер (не нужно боту) ---
|
|
GITEA_URL=https://gitea.24studbank.ru
|
|
GITEA_REPO=HSE/tgit
|
|
GITEA_USER=
|
|
GITEA_TOKEN= # (secret)
|