130 lines
6.7 KiB
Bash
130 lines
6.7 KiB
Bash
# 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 = утёк календарь, лечится перевыпуском фида.
|
||
# Модели календари даются MCP-руками, а справка конверта раз в день читает
|
||
# тот же ical напрямую - урл фида она берёт из параметра `icsUrl` этих же
|
||
# записей; записи без `icsUrl` остаются рукой, но в справку не попадают.
|
||
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=
|
||
# tailnet-адрес самого dell: контейнер t3code-mcp иначе резолвит `dell` в 127.0.1.1
|
||
T3_DELL_ADDR=
|
||
# Токен 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 <code> --nick <ник> --no-hooks`
|
||
# из клона репы комнаты на любой машине, токен - в ~/.vibegram/config.json
|
||
VIBEGRAM_HUB=
|
||
VIBEGRAM_TOKEN=
|
||
VIBEGRAM_NICK=
|
||
# Репа комнаты (GitHub org/repo) - сервис vibegram-repo держит клон в томе
|
||
# `vibegram`, gateway видит его в /vibegram/<repo> только на чтение
|
||
VIBEGRAM_REPO=
|
||
# Токен GitHub с доступом к репе (приватная); пусто - публичная
|
||
VIBEGRAM_REPO_TOKEN=
|
||
|
||
### Досуг (ежечасный тик мастера, с S13) ######################################
|
||
|
||
# Час активного окна (12:00-03:59) и четыре часа тихого (04:00-11:59) будят
|
||
# мастера инжектом без задания. Повседневный выключатель - строка `досуг: выкл`
|
||
# в `мета/бобер/досуг.md`; здесь - рубильник: `off` снимает джоб совсем.
|
||
# Пусто = включено.
|
||
LEISURE=
|
||
|
||
### Порты хоста и внешний адрес ###############################################
|
||
|
||
PORT_GATEWAY=62990
|
||
# Публичный URL за reverse proxy (см. ./caddy). Пусто для localhost/dev
|
||
PUBLIC_BASE_URL=
|