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 wantIn GoalNexa
DeployDocker Compose files for development and production; Postgres, or SQLite for small installs
LoginOpenID Connect single sign-on - Authentik, Keycloak, Microsoft Entra ID, Okta - or passwords
NotificationsReminders and digests through Apprise: ntfy, Telegram, Slack, Discord, email, webhooks
AutomationA REST API with OpenAPI docs, and a check-in URL per metric for scripts, n8n or Home Assistant
AI assistantsA built-in MCP server: Claude, Codex, Cursor and others work against your own instance
Your dataExport everything as JSON; the database is yours

Up in minutes

  • Clone the repo, copy .env.sample to .env, run docker 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 goal with its measurable targets

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.