Diligence — self-hosted fitness rewards platform with AI coaching. Open-source, MIT licensed.
Find a file
Claude c075eb9257 Stream A: DW brand theme — Instrument Sans + IBM Plex Mono, light/dark mode, all hardcoded colors replaced
- Replace Solar Momentum palette with DiligenceWorks brand identity
- Typography: Outfit → Instrument Sans, Plus Jakarta Sans → IBM Plex Mono (data/stats)
- CSS variables: --orange* → --accent*, new DW blue #2952CC / #6B9BFF
- Dark mode: prefers-color-scheme media query + manual data-theme override
- Border radii: 14/10/20px → 8/6/12px (professional, less playful)
- Font weights: 800/900 → 600/700 (DW uses lighter weights)
- Fixed 30+ hardcoded hex values across 16 files (UI-06)
- Gate banners, progress bars, category chips all use CSS variables
2026-06-21 23:12:25 +00:00
backend Fix all 7 launch blockers from security/QA review 2026-06-16 01:50:09 +00:00
content Add 3-day fast operational protocol (hour-by-hour) 2026-04-16 15:16:24 +00:00
frontend Stream A: DW brand theme — Instrument Sans + IBM Plex Mono, light/dark mode, all hardcoded colors replaced 2026-06-21 23:12:25 +00:00
mcp-connector Fix all 7 launch blockers from security/QA review 2026-06-16 01:50:09 +00:00
.dockerignore Add Windows setup (setup.ps1), expand README with cross-platform install, Claude Desktop example, backup/restore, architecture diagram, .dockerignore 2026-06-16 03:25:03 +00:00
.env.example Fix all 7 launch blockers from security/QA review 2026-06-16 01:50:09 +00:00
.gitignore Deliver Step 1: Backend cleanup — secrets scrubbed, is_admin column, Telegram optional, crypto service, v4-v7 migrations, .env.example, setup.sh 2026-06-15 14:29:53 +00:00
AGENT_GUIDE.md Deliver Steps 3-8: integration config, meal plans, provider registry, MCP connector (14 tools), B2A files, nginx proxy, AGENT_GUIDE, LICENSE 2026-06-15 14:34:09 +00:00
docker-compose.yml Fix all 7 launch blockers from security/QA review 2026-06-16 01:50:09 +00:00
LICENSE Deliver Steps 3-8: integration config, meal plans, provider registry, MCP connector (14 tools), B2A files, nginx proxy, AGENT_GUIDE, LICENSE 2026-06-15 14:34:09 +00:00
README.md README: platform-specific install guides for Windows 11 (WSL2/Hyper-V/BIOS), macOS (Apple Silicon/Intel/Homebrew), Linux 2026-06-16 03:36:06 +00:00
setup.ps1 Add Windows setup (setup.ps1), expand README with cross-platform install, Claude Desktop example, backup/restore, architecture diagram, .dockerignore 2026-06-16 03:25:03 +00:00
setup.sh Fix all 7 launch blockers from security/QA review 2026-06-16 01:50:09 +00:00

Diligence — Self-Hosted Fitness Rewards with AI Agent Support

Points-based fitness accountability app. Log workouts and food, earn points, unlock rewards. Connect any AI agent via MCP for logging, coaching, and meal planning. Self-hosted, open source, zero cloud dependencies.

Built by DiligenceWorks.

Quick Start

Prerequisites

  • Docker Desktop — that's it. No Python, Node.js, or database install needed.
  • Docker Desktop runs natively on Windows 10/11, macOS, and Linux.

Windows 11 Setup

1. Install Docker Desktop

Download from docker.com/products/docker-desktop.

During installation, the installer presents a checkbox: "Use WSL 2 instead of Hyper-V (recommended)". This is checked by default.

  • WSL 2 backend (default): Works on all Windows editions including Home. Lower resource usage, better performance. Requires WSL 2 to be installed first — open PowerShell as Administrator and run wsl --install, then reboot.
  • Hyper-V backend: If WSL 2 causes issues (black screen on reboot, kernel errors, or containers won't start), uncheck the WSL 2 box during installation to use Hyper-V instead. Requires Windows Pro, Enterprise, or Education.

Important: Hardware virtualization must be enabled in your BIOS/UEFI settings (Intel VT-x or AMD-V). This is the most common cause of "Docker won't start" issues. Check your laptop/PC manufacturer's documentation for how to access BIOS settings (usually F2, F12, or Del during boot).

2. Clone and run

Open PowerShell:

git clone https://github.com/diligenceworks/diligence
cd diligence
powershell -ExecutionPolicy Bypass -File setup.ps1
docker compose up -d

Or without the script:

git clone https://github.com/diligenceworks/diligence
cd diligence
copy .env.example .env
# Edit .env and set SECRET_KEY to any random string
docker compose up -d

macOS Setup

1. Install Docker Desktop

Download from docker.com/products/docker-desktop. Make sure you pick the right installer for your chip:

  • Apple Silicon (M1, M2, M3, M4) — download the Apple Silicon .dmg
  • Intel — download the Intel .dmg

To check: Apple menu → About This Mac. Look for "Chip" (Apple Silicon) or "Processor" (Intel).

Drag Docker.app to Applications and launch it. Requires macOS 13 Ventura or later.

Alternatively, install via Homebrew: brew install --cask docker

2. Clone and run

Open Terminal:

git clone https://github.com/diligenceworks/diligence
cd diligence
./setup.sh
docker compose up -d

Linux Setup

Install Docker Engine and Docker Compose via your distro's package manager, or install Docker Desktop for Linux. Then:

git clone https://github.com/diligenceworks/diligence
cd diligence
./setup.sh
docker compose up -d

Open http://localhost and create your account. First user gets admin.

Verify

docker compose ps

You should see 4 containers, all healthy: frontend, backend, mcp-connector, fitness-db.

Features

  • Points economy — earn from workouts, food logging, step goals. Daily gate locks rewards until you earn enough. Weekly reset.
  • Science-based onboarding — PAR-Q+ safety screening, TTM stages of change, BREQ-2 motivation profiling.
  • AI agent integration — 14 MCP tools for logging, coaching, meal planning, and device configuration.
  • Meal plans — AI-generated plans with compliance tracking and points integration.
  • Activity sync — Strava, Polar (OAuth 2.0). Garmin, Fitbit, Withings, WHOOP, Oura configurable in-app.
  • Food search — Open Food Facts (4M+ products) + USDA FoodData Central (400K+ research-grade).
  • Program tracking — 90-day structured programs (StrongLifts, Darebee, etc.) with day-by-day progression.
  • Configurable rewards — you define what's worth earning. Gaming time, screen time, treats — your rules.

Connecting an AI Agent

Point your agent's MCP config at:

Environment URL
Local (development) http://localhost:3001/sse
Behind reverse proxy https://your-domain/mcp

Works with Claude Desktop, Cursor, Windsurf, and any MCP-compatible agent.

Copy the contents of AGENT_GUIDE.md into your agent's system instructions for motivation-aware coaching.

Claude Desktop example

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "diligence": {
      "url": "http://localhost:3001/sse"
    }
  }
}

Then paste the contents of AGENT_GUIDE.md into your Claude Desktop project instructions.

Configuring Integrations

All integrations are configured through the app UI (Settings → Integrations) or through your AI agent. No .env file editing or container restarts needed.

Tell your agent: "I want to connect my Strava" — it will walk you through getting API credentials and store them encrypted.

Data Sovereignty

Diligence is self-hosted software. Your data never leaves your server. No cloud dependency, no vendor lock-in, no telemetry. MIT license — fork it, modify it, keep it forever.

Your fitness data — heart rate, body composition, food intake, GPS traces — is biometric data that deserves sovereignty.

Architecture

┌─────────────────────────────────────────────────┐
│                    nginx                         │
│         (frontend, /api proxy, /mcp proxy)       │
├──────────┬─────────────────┬────────────────────┤
│ React    │   FastAPI        │   MCP Connector    │
│ SPA      │   Backend        │   (14 tools)       │
│          │                  │   port 3001        │
│          ├──────────────────┤                    │
│          │  PostgreSQL 16   │                    │
│          │  (internal only) │                    │
└──────────┴──────────────────┴────────────────────┘

Stack

  • Python 3.12, FastAPI, SQLAlchemy (async)
  • React 18, Vite
  • PostgreSQL 16
  • FastMCP (Streamable HTTP/SSE)
  • Docker Compose

Updating

git pull
docker compose build
docker compose up -d

Database migrations run automatically on startup. Your data is preserved.

Backing Up

Your data lives in the fitness_db_data Docker volume:

docker compose exec fitness-db pg_dump -U fitness fitness_rewards > backup.sql

To restore:

docker compose exec -i fitness-db psql -U fitness fitness_rewards < backup.sql

Contributing

Contributions welcome. Please open an issue to discuss before submitting a PR.

License

MIT — see LICENSE.