Self-hosted daily standup bot for Slack — open source, Kubernetes-native, free forever.
Morgenruf (German) — "morning call" · Built over a weekend at a Tim Hortons in Toronto 🇨🇦☕
Morgenruf replaces expensive SaaS standup tools with a lightweight, self-hosted bot you fully control. It DMs your team at standup time, collects structured updates, and posts summaries to your channels — with zero vendor lock-in.
| Morgenruf | Geekbot | DailyBot | Standup & Prosper | |
|---|---|---|---|---|
| Self-hosted | ✅ | ❌ | ❌ | ❌ |
| Free forever | ✅ | ❌ | ❌ | ❌ |
| Open source | ✅ MIT | ❌ | ❌ | ❌ |
| Kubernetes / Helm | ✅ | ❌ | ❌ | ❌ |
| Your data, your infra | ✅ | ❌ | ❌ | ❌ |
| AI standup summary | ✅ GPT-4o / Claude | ❌ | ❌ | ❌ |
| MCP server (AI tools) | ✅ | ❌ | ❌ | ❌ |
| Custom questions | ✅ | ✅ | ✅ | ❌ |
| Skip today | ✅ | ✅ | ✅ | ❌ |
| Per-user timezone | ✅ | ✅ | ✅ | ❌ |
| Mood tracking | ✅ | ❌ | ✅ | ❌ |
| Analytics dashboard | ✅ | ✅ | ✅ | ❌ |
| Weekly email digest | ✅ | ✅ | ✅ | ❌ |
| Webhooks | ✅ | ❌ | ❌ | ❌ |
helm repo add morgenruf https://charts.morgenruf.dev
helm repo update
helm upgrade --install morgenruf morgenruf/morgenruf \
--namespace morgenruf --create-namespace \
--set slack.clientId="YOUR_CLIENT_ID" \
--set slack.clientSecret="YOUR_CLIENT_SECRET" \
--set slack.signingSecret="YOUR_SIGNING_SECRET" \
--set externalDatabase.url="postgresql://user:pass@host:5432/morgenruf" \
--set flaskSecretKey="$(openssl rand -hex 32)" \
--set app.url="https://api.your-domain.com"➡️ Full docs at docs.morgenruf.dev
| Repo | Description |
|---|---|
| morgenruf/morgenruf | 🤖 Core bot — Python, Flask, Helm chart |
| morgenruf/docs | 📚 Documentation — docs.morgenruf.dev |
| morgenruf/website | 🌐 Marketing site — morgenruf.dev |
| morgenruf/status | 📡 Status page — status.morgenruf.dev |
| morgenruf/helm-charts | 📦 Helm chart repo — charts.morgenruf.dev |
| morgenruf/aws-deploy | ☁️ One-click AWS & Docker Compose templates |
| morgenruf/e2e-tests | 🧪 Playwright E2E test suite (80 tests) |
MIT License · morgenruf.dev · status · v1.0.0