Self-hosted
Your goals, on your server
Goals, OKRs and KPIs with a forecast for each one - in your homelab, on your NAS or your VPS. One docker compose up, no vendor account, no telemetry, and it plugs into the login and notifications you already run.
Source-available (PolyForm Shield 1.0.0). No vendor account, no telemetry.
Same idea, plain words
| You want | In GoalNexa |
|---|---|
| Deploy | Docker Compose files for development and production; Postgres, or SQLite for small installs |
| Login | OpenID Connect single sign-on - Authentik, Keycloak, Microsoft Entra ID, Okta - or passwords |
| Notifications | Reminders and digests through Apprise: ntfy, Telegram, Slack, Discord, email, webhooks |
| Automation | A REST API with OpenAPI docs, and a check-in URL per metric for scripts, n8n or Home Assistant |
| AI assistants | A built-in MCP server: Claude, Codex, Cursor and others work against your own instance |
| Your data | Export everything as JSON; the database is yours |
Up in minutes
- Clone the repo, copy
.env.sampleto.env, rundocker compose up. - A first-run page creates the admin account; roles and permissions are already set up.
- A production compose file with Postgres, gunicorn and one-off migrations - and documented upgrades between releases.
Fits the stack you run
- Sign in with the identity provider you already have.
- Get reminders where you read them - ntfy, Telegram, email or a webhook.
- Numbers come in from your own scripts and automations through each metric's check-in URL.

A license you can read
- Source-available under PolyForm Shield 1.0.0: free to run and modify for yourself and your company; you can't resell it as a competing product.
- The code, issues and changelog are on GitHub; CI tests every upgrade from the previous release on Postgres.
- Rather not run it? The hosted version is the same code - see plans.
Run it on your own server tonight.
The README walks through it - Docker is all you need.