Quickstart
Get Operyn running locally and send your first events in under 5 minutes.
Prerequisites
1. Clone and Install
git clone https://github.com/your-org/operyn.git
cd operyn
bun install
2. Configure Environment
bun run setup
Running setup creates your .env file from the example and establishes a symbolic link to it within apps/dashboard, ensuring environment variables are synchronized across the entire monorepo for local development.
Minimum required for the dashboard sign-in (Better Auth):
BETTER_AUTH_SECRET(must be set; use a long random string)BETTER_AUTH_URL(e.g.http://localhost:3000)BETTER_AUTH_TRUSTED_ORIGINS(include your dashboard origin; for local dev you can keep the default)
Optional (only if you want SSO buttons):
GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRETGITHUB_CLIENT_ID/GITHUB_CLIENT_SECRET
Optional (only if you enable billing flows):
STRIPE_SECRET_KEYand relatedSTRIPE_*vars
Optional (Integrations): Configure notification channels (Slack, Discord, Jira, PagerDuty, Datadog, Grafana, Webhook) in the Dashboard at Console → Integrations after startup. See the Notification Channels Setup Guide.
The defaults work for local development. For AI diagnosis features, add an LLM provider key:
# In .env
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-your-key-here
Or leave LLM_PROVIDER=mock to use the built-in simulated AI workflow.
3. Start Infrastructure
bun run infra:up
This starts PostgreSQL, Redis, OpenSearch, Jaeger, Prometheus, and the OpenTelemetry Collector via Docker Compose.
4. Start All Services
bun run dev
This launches the active local stack in watch mode:
| Service | URL |
|---|---|
| Ingestion | http://localhost:3001 |
| Core Platform | http://localhost:3003 |
| Dashboard | http://localhost:3000 |
5. Send Your First Log Event
Open a terminal and send a sample log:
curl -X POST http://localhost:3001/events/logs \
-H "Content-Type: application/json" \
-H "x-organization-id: org_123456789" \
-d '{
"service": "billing-service",
"level": "error",
"message": "Payment gateway timeout after 30s — customer 42 affected",
"metadata": {
"region": "us-east-1",
"env": "prod",
"team": "payments"
}
}'
You should receive:
{
"id": "a1b2c3d4-...",
"queued": true
}
6. Send a Metric
curl -X POST http://localhost:3001/events/metrics \
-H "Content-Type: application/json" \
-H "x-organization-id: org_123456789" \
-d '{
"service": "billing-service",
"name": "http_5xx_rate",
"value": 0.45,
"unit": "percent",
"labels": {
"region": "us-east-1",
"env": "prod"
}
}'
7. View the Dashboard
Open http://localhost:3000 in your browser. If the core platform's detection rules match your events, you'll see an incident appear in the feed.
8. Verify Traces and SPM
Open Jaeger at http://localhost:16686.
- Search tab: verify traces from
operyn-dashboard,core-platform, andingestion-service. - Monitor tab: verify RED metrics (requests, errors, duration) after you generate traffic.
If Monitor is empty, ensure your services are running with the OTEL env defaults and send a few requests to both backend services.
9. Explore the API Docs
The active backend services expose interactive API documentation:
- Ingestion: http://localhost:3001/reference
- Core Platform: http://localhost:3003/reference
What Happens Behind the Scenes
- The Ingestion Service receives your log/metric, validates it against a Zod schema, normalises fields, indexes it into OpenSearch, and enqueues it on BullMQ.
- Core Platform consumes the event from the queue, evaluates it against detection rules (error rate thresholds, anomaly patterns), and decides whether to create or update an incident.
- If an incident is created, the AI workflows inside core-platform analyse the context and produce a root cause hypothesis with suggested fixes.
- Suggested fixes flow into the remediation workflows inside core-platform, which can queue, simulate, or execute actions based on policy.
- The notifications workflows inside core-platform dispatch alerts to configured channels (Slack/Discord/Email/Webhook). Jira ticketing is handled by the incidents module in core-platform using per-org encrypted credentials.
- You see the full timeline on the Dashboard and can approve or reject remediation actions.
Next Steps
- Ingestion API Reference — full endpoint docs for sending events.
- Incidents API Reference — manage incidents, filters, correlation rules, team members, and diagnostic tool runs/resources.
- Remediation API Reference — request, approve/reject, and monitor remediation operations.
- Runbooks API Reference — manage runbook drafts, versions, publish state, and incident links.
- Service Catalog API Reference — map services to ownership, tier, and escalation paths.
- AWS CloudWatch Integration — forward production logs.
- Concepts: Incidents — understand detection, deduplication, and correlation.
- Concepts: Remediation — simulate vs live mode.