mirror of
https://github.com/coleam00/Archon
synced 2026-04-21 13:37:41 +00:00
The server's getPort() fallback changed from 3000 to 3090 in the Hono migration (#318), but .env.example, the setup wizard's generated .env, and the JSDoc describing the fallback were not updated — leaving three different sources of truth for "the default PORT." When the wizard writes PORT=3000 to ~/.archon/.env (which the Hono server loads with override: true, while Vite only reads repo-local .env), the two processes can land on different ports silently. That mismatch is the real mechanism behind the failure described in #1152. - .env.example: comment out PORT, document 3090 as the default - packages/cli/src/commands/setup.ts: wizard no longer writes PORT=3000 into the generated .env; fix the "Additional Options" note - packages/cli/src/commands/setup.test.ts: assert no bare PORT= line and the commented default is present - packages/core/src/utils/port-allocation.ts: fix stale JSDoc "default 3000" -> "default 3090" - deploy/.env.example: keep Docker default at 3000 (compose/Caddy target that) but annotate it so users don't copy it for local dev Single source of truth for the local-dev default is now basePort in port-allocation.ts.
74 lines
3 KiB
Text
74 lines
3 KiB
Text
# Remote Coding Agent - Environment Configuration
|
|
# Copy to .env and fill in your values
|
|
|
|
# ============================================
|
|
# Database (Optional — SQLite is the default for local dev)
|
|
# ============================================
|
|
# For local development, omit DATABASE_URL entirely — SQLite at ~/.archon/archon.db
|
|
# is auto-initialized with zero setup.
|
|
#
|
|
# For cloud/production deployments, use a managed PostgreSQL (Supabase, Neon, etc.):
|
|
DATABASE_URL=postgresql://user:password@host:5432/dbname
|
|
|
|
# Or uncomment postgres service in docker-compose.yml and use:
|
|
# DATABASE_URL=postgresql://postgres:postgres@postgres:5432/remote_coding_agent
|
|
|
|
# ============================================
|
|
# Required: AI Assistant (at least one)
|
|
# ============================================
|
|
# Claude (recommended) - Get token: claude setup-token
|
|
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...
|
|
|
|
# Or Codex - Get from ~/.codex/auth.json after: codex login
|
|
# CODEX_ID_TOKEN=...
|
|
# CODEX_ACCESS_TOKEN=...
|
|
# CODEX_REFRESH_TOKEN=...
|
|
# CODEX_ACCOUNT_ID=...
|
|
|
|
# ============================================
|
|
# Required: Platform (at least one)
|
|
# ============================================
|
|
# Telegram - Create bot via @BotFather
|
|
TELEGRAM_BOT_TOKEN=123456789:ABC...
|
|
|
|
# Discord - Create bot at discord.com/developers
|
|
# DISCORD_BOT_TOKEN=...
|
|
|
|
# Slack - Create app at api.slack.com/apps
|
|
# SLACK_BOT_TOKEN=xoxb-...
|
|
# SLACK_APP_TOKEN=xapp-...
|
|
|
|
# GitHub Webhooks
|
|
# GH_TOKEN=ghp_...
|
|
# GITHUB_TOKEN=ghp_...
|
|
# WEBHOOK_SECRET=...
|
|
|
|
# ============================================
|
|
# Optional
|
|
# ============================================
|
|
PORT=3000 # Docker deployment default (the included compose/Caddy configs target :3000). For local dev (no Docker), omit PORT — server and Vite proxy both default to 3090.
|
|
# TELEGRAM_STREAMING_MODE=stream
|
|
# DISCORD_STREAMING_MODE=batch
|
|
|
|
# ============================================
|
|
# Basic Auth (optional — recommended for cloud)
|
|
# ============================================
|
|
# Protects the Web UI and API when exposed to the internet.
|
|
# Webhooks (/webhooks/*) and health check (/api/health) are excluded.
|
|
# Leave empty to disable (e.g. when using IP-based firewall rules instead).
|
|
# To enable:
|
|
# 1. Generate hash: docker run caddy caddy hash-password --plaintext 'YOUR_PASSWORD'
|
|
# 2. Uncomment and fill in (use $$ to escape $ in bcrypt hashes):
|
|
# CADDY_BASIC_AUTH=basicauth @protected { admin $$2a$$14$$REPLACE_WITH_HASH }
|
|
|
|
# ============================================
|
|
# Form Auth (optional — requires --profile auth)
|
|
# ============================================
|
|
# HTML login page via Caddy forward_auth. Alternative to CADDY_BASIC_AUTH.
|
|
# Generate hash: docker run --rm node:22-alpine sh -c \
|
|
# "npm install -g bcryptjs 2>/dev/null; node -e \"require('bcryptjs').hash('PASS',12,(e,h)=>console.log(h))\""
|
|
# Generate secret: docker run --rm node:22-alpine node -e \
|
|
# "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
# AUTH_USERNAME=admin
|
|
# AUTH_PASSWORD_HASH=$2b$12$REPLACE_WITH_HASH
|
|
# COOKIE_SECRET=REPLACE_WITH_64_HEX_CHARS
|