Getting Started
Prerequisites
| Requirement | Notes |
|---|---|
| Prometheus | With node_exporter for CPU/memory/disk metrics |
| Telegram bot | Create one with @BotFather |
| LLM API key | OpenAI or Anthropic |
| Docker (optional) | For the quickest setup |
Try the demo first
Before setting up with real credentials, see what InfraSigns output looks like:
This runs a full digest cycle with mock Prometheus data and prints the result to stdout.
Quick start with Docker
1. Clone and configure
git clone https://github.com/infrasigns/infrasigns
cd infrasigns
cp config/config.yaml config/local.yaml
2. Edit config/local.yaml
sources:
- name: production
url: http://your-prometheus:9090
llm:
provider: openai
api_key: sk-...
model: gpt-4o-mini
notify:
telegram:
token: "123456:ABC-..."
chat_id: "-100123456789"
digest:
schedule: "0 8 * * *"
3. Start
The stack includes Prometheus and node_exporter. Point your existing services at the bundled Prometheus or configure sources.url to point at your own.
Manual setup
Requires Go 1.26+.
Getting your Telegram chat ID
- Start a chat with your bot or add it to a group
- Send any message
- Open
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates - Find
"chat":{"id":...}in the response — that's yourchat_id
For groups and channels, the ID is negative (e.g. -100123456789).
Verifying the setup
Trigger a digest immediately without waiting for the cron schedule:
# Docker
docker compose exec infrasigns /infrasigns --config /etc/infrasigns/config.yaml
# Manual
./infrasigns --config config/local.yaml
Note
The process starts the scheduler and waits for the next scheduled time. Use Ctrl+C to stop after confirming the config loads correctly.
What's next
- Configuration reference — all available options
- LLM providers — OpenAI vs Anthropic, model recommendations
- Notifications — Telegram setup in detail