# tgit — пример конфигурации. Скопировать в .env и заполнить: `cp .env.example .env`. # .env не коммитится. Секреты помечены (secret). # --- Telegram (#4, #25) --- TELEGRAM_BOT_TOKEN= # (secret) токен от @BotFather ADMIN_IDS= # Telegram ID первых администраторов через запятую LOG_LEVEL=INFO DEMO_INVITE_MAX_USES=50 # демо-QR для показа (#55): сколько человек войдут по одному QR DEMO_INVITE_TTL_HOURS=3 # и сколько часов он живёт TELEGRAM_PROXY_URL= # (secret) http://user:pass@host:port или socks5://… — на RF-сервере Telegram недоступен напрямую # --- База данных --- 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 SOURCECRAFT_UPLOADS_REPO=rogachevegorushka/tgit-uploads # SOURCECRAFT_RUN_URL_TEMPLATE=https://sourcecraft.dev/{repo}/cicd/runs/{run} # --- Git: коммиты в репозиторий загрузок (#7, #9) --- GIT_SSH_KEY_PATH= # путь к приватному deploy-ключу бота (монтируется read-only); # публичная часть — deploy key с правом записи в tgit-uploads GIT_SSH_KEY_B64= # (secret) для Docker: тот же ключ в base64 — base64 -w0 ~/.ssh/tgit_bot_ed25519 GIT_UPLOADS_URL=git@ssh.sourcecraft.dev:rogachevegorushka/tgit-uploads.git # GIT_CLONE_DIR=data/uploads # локальный клон репозитория загрузок (в Docker — volume /data/uploads) # --- CI репозитория загрузок: деплой ждёт зелёный check (#11, ADR-016) --- CI_PROVIDER=none # none — разворачивать сразу после push | gitea — ждать Gitea Actions # CI_API_URL=https://gitea.24studbank.ru CI_TOKEN= # (secret) токен Gitea с чтением репозитория загрузок (его Actions) # CI_REPO=HSE/tgit-uploads # CI_WORKFLOW=check.yml # CI_RUN_TIMEOUT_MINUTES=30 # --- Docker: раздел «Статус» (#14) --- # В Compose задан сам: http://docker-proxy:2375. Без него (make run) «Статус» отвечает «Docker недоступен». # DOCKER_URL= # DOCKER_LABEL=tgit.managed=true # --- Runner: деплой сервисов из репозитория загрузок (#13, infra/runner/) --- # RUNNER_HOST=host.docker.internal # пусто — бот сервисы не разворачивает # RUNNER_USER=tgit-deploy # RUNNER_SSH_KEY_B64= # (secret) base64 ключа, прибитого к tgit-runner в authorized_keys # --- LLM (#17, #52): агент логов --- LLM_PROVIDER=mock # mock | openai_compat; при mock агент логов выключен (#18) # OpenRouter (как в meditron): модель обязана поддерживать structured output (json_schema) # LLM_BASE_URL=https://openrouter.ai/api/v1 # LLM_MODEL=google/gemini-2.5-flash-lite LLM_BASE_URL= LLM_MODEL= LLM_API_KEY= # (secret) или OPENROUTER_API_KEY — то же самое LLM_PROXY_URL= # (secret) http://user:pass@host:port — OpenRouter не пускает IP из РФ; на сервере тот же прокси, что TELEGRAM_PROXY_URL # --- Для Claude Code: трекер (не нужно боту) --- GITEA_URL=https://gitea.24studbank.ru GITEA_REPO=HSE/tgit GITEA_USER= GITEA_TOKEN= # (secret)