Quick start
This walks through a self-hosted install: start the server, add a source, add a destination, and see an incident arrive end to end.
1. Start InfraInbox
Section titled “1. Start InfraInbox”docker compose up -dSee Install with Docker Compose for the full setup, including .env and TLS. What you’ll see: docker compose ps shows infrainbox and postgres running.
2. Finish first-run setup
Section titled “2. Finish first-run setup”The server has no user yet, so it prints a one-time link to its own log:
docker compose logs infrainbox | grep 'setup token'The line ends .../setup#token=.... Open it in a browser — the token is single-use and only works while the instance has no administrator yet. Fill in a username, password, your workspace’s name and its time zone (this is what “23:00” means for quiet hours later).
What you’ll see: the dashboard loads, signed in as the new workspace’s administrator.
3. Add a source
Section titled “3. Add a source”Go to Add source. For this walkthrough, pick a generic source (or use the events API directly — see Events API for the full recipe and every field). Name it and create it.
What you’ll see: a key shown once, shaped like iik_src_…, plus the ingest URL. Copy both now — InfraInbox stores only a hash of the key and can’t show it to you again.
4. Send a test event
Section titled “4. Send a test event”curl -X POST https://infrainbox.example.com/v1/events \ -H "Authorization: Bearer iik_src_…" \ -H "Content-Type: application/json" \ -d '{"title": "Backup failed", "severity": "CRITICAL", "dedupKey": "quickstart-test"}'What you’ll see: a 202 response with an eventId and an incidentId — CRITICAL opens an incident by default.
5. Add a destination and put it on the default route
Section titled “5. Add a destination and put it on the default route”Go to Destinations → Add Telegram destination. Paste a bot token from @BotFather, then use Find my chats to pick the chat you want alerts in (message the bot once first, so it has something to find).
Then open Notifications → Routing → Default route and add the Telegram destination to the CRITICAL row, alongside the built-in InfraInbox Push.
What you’ll see: the new destination listed as one of CRITICAL’s destinations.
6. See it arrive
Section titled “6. See it arrive”Send the same test event again (a new dedupKey if you want a fresh incident instead of an occurrence on the last one):
curl -X POST https://infrainbox.example.com/v1/events \ -H "Authorization: Bearer iik_src_…" \ -H "Content-Type: application/json" \ -d '{"title": "Backup failed", "severity": "CRITICAL", "dedupKey": "quickstart-test-2"}'What you’ll see: the incident in the Inbox, and the Telegram message arriving in the chat you picked.
- Core concepts — the vocabulary the rest of this guide uses
- A tour of the dashboard — every screen, what it’s for
- How incidents work — dedup, re-notify, quiet hours and what ack/snooze/resolve actually do