# beaver-agent - единственный .env стека. # Его читают: docker compose (профили, порты, postgres), gateway (env_file) # и config.py (os.environ). Секреты живут только здесь, в git - этот example. # Сгенерировать секрет: openssl rand -hex 32 ### Compose ################################################################### # Какие сервисы поднимать: db (postgres), gateway, obsidian (obsidian-headless), # t3 (t3code-mcp - руки диспетчера на маке и dell), vibegram (клон репы комнаты) COMPOSE_PROFILES=db,gateway,obsidian,t3,vibegram # Ветка/тег beaver-gateway, из которого собирается образ шлюза GATEWAY_REF=main # Dev на маке: gateway собирается из соседнего ../beaver-gateway #COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml ### Postgres ################################################################## POSTGRES_USER=beaver POSTGRES_PASSWORD= POSTGRES_DB=beaver # Порт наружу только через docker-compose.override.yml (пример рядом) #PORT_POSTGRES=5432 ### Gateway: admin и сессии ################################################### # Логин в admin UI; токены для клиентов выпускаются там ADMIN_USER=admin ADMIN_PASS= # Подпись session-cookie admin UI SESSION_SECRET= ### Claude #################################################################### # OAuth-токен подписки для Claude Agent SDK внутри контейнера. # На маке: `claude setup-token` (живёт год). Тратит лимиты подписки как # обычный Claude Code. Отзыв = перевыпуск; утёк - перевыпусти сразу. # Единственный секрет, который доезжает до процесса модели (CLI сам прячет # его от Bash); всё остальное из этого файла адаптер в env модели не пускает. CLAUDE_CODE_OAUTH_TOKEN= ### Telegram (frontend, с S5) ################################################# # @BotFather → токен; там же Bot Settings → Topics → включить в личных чатах TELEGRAM_BOT_TOKEN= # Твой numeric id (@userinfobot). Единственный, кому бот отвечает TELEGRAM_USER_ID= ### Raycast ################################################################### # 64 hex, один раз: python3 -c 'import secrets;print(secrets.token_hex(32))' RAYCAST_DEVICE_ID= # rca_... из десктоп-приложения Raycast (см. raycast-api) RAYCAST_BEARER= ### MCP, к которым ходят агенты ############################################### # Firefly III: адрес и Personal Access Token FIREFLY_BASE_URL= FIREFLY_PAT= # Календари: name=url,name=url (пусто - без календарей). # В url лежит приватный ical-фид (google `/private-<токен>/`, usos `key=`) - # это секрет: утёк url = утёк календарь, лечится перевыпуском фида. CALENDAR_MCPS= # MCP beavergram (telegram-history) BEAVERGRAM_MCP= # MCP msos (таскер рабочих проектов): полный URL с токеном, https://…/mcp?token=… MSOS_MCP= ### t3code (руки диспетчера, с S10) ########################################### # t3code-mcp - сервис compose (профиль t3), машины и allowlist - ./t3code.toml. # На каждой машине: `t3 auth session issue --token-only --ttl 365d --label beaver` T3_MAC_TOKEN= T3_DELL_TOKEN= # Токен gateway со scope `api` (admin → Tokens) - им t3code-mcp шлёт события в /hooks/t3code T3CODE_MCP_GATEWAY_TOKEN= # Ветка/тег t3code-mcp, из которого собирается образ T3CODE_MCP_REF=main ### Komodo (python_tool с перечисленными действиями, с S8) #################### KOMODO_URL= KOMODO_KEY= KOMODO_SECRET= # Алерты Komodo → /hooks/komodo?token=<секрет> (алертер в infra/komodo, Custom # endpoint; Komodo не умеет заголовки). Секрет - существующий Komodo Secret # (тот же, что у healthbot); gateway принимает его bootstrap-токеном со scope api: #BOOTSTRAP_TOKENS=komodo-hook:<значение секрета>:api ### Home Assistant (python_tool, с S12) ######################################## # HA на том же хосте с network_mode: host → host.docker.internal (extra_hosts) HA_URL=http://host.docker.internal:8123 # Профиль → Безопасность → долгоживущие токены HA_TOKEN= ### Вайбграм (комната агентов, с S12) ######################################### # Хаб и токен агента: один раз `vibegram join --nick <ник> --no-hooks` # из клона репы комнаты на любой машине, токен - в ~/.vibegram/config.json VIBEGRAM_HUB=https://vibegram.example.com VIBEGRAM_TOKEN= VIBEGRAM_NICK=beaver-test # Репа комнаты (GitHub org/repo) - сервис vibegram-repo держит клон в томе # `vibegram`, gateway видит его в /vibegram/ только на чтение VIBEGRAM_REPO=org/room # Токен GitHub с доступом к репе (приватная); пусто - публичная VIBEGRAM_REPO_TOKEN= ### Порты хоста и внешний адрес ############################################### PORT_GATEWAY=62990 # Публичный URL за reverse proxy (см. ./caddy). Пусто для localhost/dev PUBLIC_BASE_URL=