// docs / getting started
Getting Started
Stand up your own adoe instance — the AI-powered L1 on-call agent that ingests monitoring alerts, matches them to SOPs, and remediates automatically. This guide takes you from a fresh clone to a running agent answering health checks.
Prerequisites
- Docker & Docker Compose (the fastest path) — or Python 3.11 and PostgreSQL 16 for a local dev setup.
- An Anthropic API key — the AI decision engine and SOP recommender require it.
- Credentials for whichever monitoring / notification tools you want to connect (you can add these later from the dashboard).
1. Clone & configure
# Clone the repository, then copy the environment template
cp .env.example .env
# Edit .env with your credentials
vim .env
2. Environment variables
All configuration is read from environment variables. The essentials:
| Variable | Description | Required |
|---|---|---|
DATABASE_URL | PostgreSQL connection string | Yes |
ANTHROPIC_API_KEY | Claude API key for AI decisions | Yes |
GITHUB_TOKEN | GitHub token for Actions & code search | For GH Actions |
GITHUB_ORG | Default GitHub organization | For GH Actions |
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_REGION | AWS credentials for the SSM executor | For SSM |
SLACK_WEBHOOK_URL | Slack incoming webhook | For notifications |
DRY_RUN | If true, log actions instead of executing them | No (default: false) |
CONFIDENCE_THRESHOLD | Minimum confidence to auto-execute | No (default: 0.8) |
DRY_RUN=true so the agent logs what it would do without touching your infrastructure. Flip it off once you trust your SOPs. See .env.example in the repo for the full list.3. Run with Docker Compose
# Start all services (app + PostgreSQL)
docker-compose up -d
# Follow the app logs
docker-compose logs -f app
# Confirm it's healthy
curl http://localhost:8000/health
A 200 from /health means the agent is up. The dashboard is served on the same host — open it in a browser and you'll be taken through first-run setup to create your admin account.
4. Point your tools at it
Configure your monitoring systems to POST events to the agent's webhook endpoints:
| Source | Endpoint |
|---|---|
| Splunk | POST http://your-host:8000/webhooks/splunk |
| Sensu | POST http://your-host:8000/webhooks/sensu |
| PagerDuty | POST http://your-host:8000/webhooks/pagerduty |
See the Integration Setup guide for per-tool instructions, auth tokens, and the fields the agent expects from each source.
Local Python dev setup
Prefer to run the app directly?
# Create a virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Start PostgreSQL (if you're not using Docker)
docker run -d --name postgres \
-e POSTGRES_USER=l1agent -e POSTGRES_PASSWORD=l1agent -e POSTGRES_DB=l1agent \
-p 5432:5432 postgres:16-alpine
# Run database migrations
alembic upgrade head
# Start the application with hot reload
uvicorn src.main:app --reload --port 8000
Run the test suite with pytest tests/ -v.
Next steps
- Connect your monitoring stack — Sensu, Splunk, PagerDuty, Grafana, Slack and more.
- Explore the API & webhook reference to send a test alert.
- Author your first SOP so the agent can start remediating automatically.