Archon/.env.example
Rasmus Widing 3026a6445d
Add Archon distribution config and directory structure (#101)
* Add Archon distribution config and directory structure

- Create centralized path resolution in src/utils/archon-paths.ts
- Add YAML configuration system (src/config/) with layered loading
- Update Dockerfile and docker-compose for /.archon/ directory
- Add GHCR publish workflow for multi-arch Docker builds
- Create deploy/ directory with end-user docker-compose
- Add /init command to create .archon structure in repos
- Add docs/configuration.md reference guide
- Update README with Quick Start section
- Add bun run validate script
- Update tests for new path defaults (~/.archon/)

Directory structure:
- Local: ~/.archon/{workspaces,worktrees,config.yaml}
- Docker: /.archon/{workspaces,worktrees}
- Repo: .archon/{commands,workflows,config.yaml}

Legacy WORKSPACE_PATH and WORKTREE_BASE env vars still supported.

* Complete Archon distribution config implementation

- Wire up config system in src/index.ts (Task 3.5)
- Remove legacy WORKSPACE_PATH and WORKTREE_BASE support
- Add logConfig() function to config-loader.ts
- Update docker-compose.yml to use ARCHON_DOCKER env var
- Remove legacy env vars from .env.example
- Update all documentation to reference ARCHON_HOME
- Create scripts/validate-setup.sh for setup validation
- Add setup:check script to package.json
- Create docs/getting-started.md guide
- Create docs/archon-architecture.md technical docs
- Update tests to use ARCHON_HOME instead of legacy vars
- Fix validate.md command template for new paths

All plan phases now complete:
- Phase 1: Archon Directory Structure
- Phase 2: Docker Distribution
- Phase 3: YAML Configuration System
- Phase 4: Developer Experience
- Phase 5: Documentation
2025-12-17 21:45:41 +02:00

96 lines
3.6 KiB
Text

# Database
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/remote_coding_agent
# AI Assistants
# Claude - Choose one:
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...
# OR
# CLAUDE_API_KEY=sk-ant-...
# Codex Authentication (get from ~/.codex/auth.json after running 'codex login')
# Required if using Codex as AI assistant
# On Linux/Mac: cat ~/.codex/auth.json
# On Windows: type %USERPROFILE%\.codex\auth.json
CODEX_ID_TOKEN=eyJ...
CODEX_ACCESS_TOKEN=eyJ...
CODEX_REFRESH_TOKEN=rt_...
CODEX_ACCOUNT_ID=6a6a7ba6-...
# Default AI Assistant (claude | codex)
# Used for new conversations when no codebase specified
DEFAULT_AI_ASSISTANT=claude
# GitHub Token (for GitHub CLI and commands)
GH_TOKEN=ghp_...
GITHUB_TOKEN=ghp_... # Same as GH_TOKEN, used by adapter
# GitHub Webhooks
WEBHOOK_SECRET=your_random_secret_string
# GitHub User Whitelist (optional - comma-separated usernames)
# When set, only listed GitHub users can trigger webhook processing
# When empty/unset, webhooks are processed for all users
# Usernames are case-insensitive (octocat == Octocat)
GITHUB_ALLOWED_USERS=octocat,monalisa
# Platforms - set the tokens for the ones you want to use
# Telegram - <get token from @BotFather>
TELEGRAM_BOT_TOKEN=
# Discord - <get token from Discord Developer Portal>
DISCORD_BOT_TOKEN=
# Slack Bot (Socket Mode)
# Create app at https://api.slack.com/apps - see docs/slack-setup.md
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
# Slack User Whitelist (optional - comma-separated user IDs)
# When set, only listed Slack users can interact with the bot
# When empty/unset, bot responds to all users
# Get user IDs: Slack profile > ... > Copy member ID
SLACK_ALLOWED_USER_IDS=U1234ABCD,W5678EFGH
# Discord User Whitelist (optional - comma-separated user IDs)
# When set, only listed Discord users can interact with the bot
# When empty/unset, bot responds to all users
# Get user IDs in Discord: Settings > Advanced > Developer Mode, then right-click user > Copy ID
DISCORD_ALLOWED_USER_IDS=123456789012345678,987654321098765432
# Telegram User Whitelist (optional - comma-separated user IDs)
# When set, only listed Telegram users can interact with the bot
# When empty/unset, bot responds to all users
# Get your user ID by messaging @userinfobot on Telegram
TELEGRAM_ALLOWED_USER_IDS=123456789,987654321
# Platform Streaming Mode (stream | batch)
TELEGRAM_STREAMING_MODE=stream # stream (default) | batch
DISCORD_STREAMING_MODE=batch # batch (default) | stream
SLACK_STREAMING_MODE=batch # batch (default) | stream
GITHUB_STREAMING_MODE=batch # batch (default) | stream
# Bot Display Name (shown in batch mode "starting" message)
BOT_DISPLAY_NAME=CodingAgent # e.g., "My-bot", "CodeBot", etc.
# GitHub Bot Mention (optional - for @mention detection in GitHub issues/PRs)
# When set, the bot will respond to this mention name instead of the default @remote-agent
# If not set, falls back to BOT_DISPLAY_NAME, then defaults to "remote-agent"
GITHUB_BOT_MENTION=remote-agent
# Optional
PORT=3000
# ============================================
# Archon Directory Configuration (NEW)
# ============================================
# All Archon-managed files go in ~/.archon/ by default
# Override with ARCHON_HOME to use a custom location
# ARCHON_HOME=~/.archon
# Concurrency
MAX_CONCURRENT_CONVERSATIONS=10 # Maximum concurrent AI conversations (default: 10)
# Builtin Command Templates
# Set to 'false' to disable loading the maintained workflow commands
# (plan, implement, commit, review-pr, etc.) that ship with this repo.
# These are updated by the repo maintainers with each release.
LOAD_BUILTIN_COMMANDS=true # true (default) | false