4.1 KiB
Agent Dev Setup
Two commands to spin up the full Autumn stack on a fresh Ubuntu/Debian or macOS machine — no Docker, no Infisical, no Supabase cloud signup, no interactive prompts.
Commands
bun agent:bootstrap — one-time
Installs all system dependencies and downloads required binaries. Safe to re-run; every step is guarded and completes in ~1s if already installed.
Ubuntu/Debian (via apt):
- Adds the official PostgreSQL apt repo (PGDG) for PG18
- Adds the official Redis apt repo for Redis Stack (required for RedisJSON)
- Installs
postgresql-18,redis-stack-server,default-jre-headless - Installs
clickhouse-serverandclickhouse-clientfrom the official ClickHouse apt repo
macOS (via Homebrew — install brew first if you don't have it):
- Installs
postgresql@18,redis-stack,clickhouse,openjdkvia brew
Both:
- Downloads the ElasticMQ jar to
~/.autumn-agent/elasticmq/elasticmq.jarand writes its config - Runs
bun install --frozen-lockfileifnode_modulesis missing
bun dev:agent — every session
Starts all local services, creates the database, writes env files, runs migrations, then starts the dev servers.
- Starts
postgresql,redis-server, andclickhouse-server(viaserviceon Linux,brew serviceson macOS) - Starts ElasticMQ in the background on
:9324(skipped if already running) - Creates the
autumnPostgres database if it does not exist, ensures thepg_trgmextension is enabled - Writes
server/.env(skips if already present) andvite/.envfromvite/.env.example - Runs
bun db:migrate - Launches server
:8080, vite:3000, checkout:3001, and workers viascripts/dev.ts
Static team-wide env vars
Set these in the process environment before running bun dev:agent and they will be written into server/.env on first run:
| Variable | Description |
|---|---|
STRIPE_SANDBOX_SECRET_KEY |
Stripe test-mode secret key |
STRIPE_SANDBOX_WEBHOOK_SECRET |
Stripe test-mode webhook signing secret |
STRIPE_SANDBOX_CLIENT_ID |
Stripe Connect test platform client ID |
STRIPE_LIVE_SECRET_KEY |
Stripe live secret key |
STRIPE_LIVE_WEBHOOK_SECRET |
Stripe live webhook signing secret |
STRIPE_LIVE_CLIENT_ID |
Stripe Connect live platform client ID |
ANTHROPIC_API_KEY |
Anthropic API key |
RESEND_API_KEY |
Resend email API key |
RESEND_DOMAIN |
Resend sending domain |
SVIX_API_KEY |
Svix webhook API key |
POSTHOG_API_KEY |
PostHog project API key |
POSTHOG_HOST |
PostHog instance URL |
Local services and ports
| Service | Port | Notes |
|---|---|---|
| PostgreSQL | 5432 | Database: autumn, user: postgres, password: postgres |
| Redis Stack | 6379 | Used for CACHE_URL and CACHE_URL_US_EAST (RedisJSON required) |
| ElasticMQ | 9324 | Local SQS replacement, queue: autumn.fifo |
| ClickHouse | 8123 | Used for TINYBIRD_CLICKHOUSE_URL |
| Server | 8080 | Autumn API server |
| Vite | 3000 | Frontend dev server |
| Checkout | 3001 | Checkout app dev server |
SQS isolation
Each agent instance gets its own local ElasticMQ. SQS_QUEUE_URL_V2 is always hardcoded to http://localhost:9324/000000000000/autumn.fifo in server/.env — the shared SQS_QUEUE_URL_V2 from the Capy environment is intentionally ignored to prevent agents from consuming a shared queue.
Known limitations
- EventBridge lock-receipt scheduler:
createScheduleanddeleteScheduleare no-ops when running against a local (non-amazonaws.com) queue URL. Lock-receipt expiry will not fire automatically in local dev. - Supabase logo upload: Storage is not configured locally. Logo upload endpoints return 400 — expected.
- Stripe webhooks:
STRIPE_WEBHOOK_URL=http://localhost:8080. Configure a Stripe CLI webhook forwarder separately if you need live webhook testing.
Reset
To regenerate server/.env with fresh secrets:
rm server/.env vite/.env && bun dev:agent
Custom ports
bun dev:agent 8181 3100 # server on :8181, frontend on :3100
If you change ports after server/.env has already been generated, delete it first:
rm server/.env vite/.env && bun dev:agent 8181 3100