MCPSERV.CLUB
Wingfit

Wingfit

Self-Hosted

Your personal fitness wingman

Active(70)
291stars
0views
Updated Aug 11, 2025
Wingfit screenshot 1
1 / 5

Overview

Discover what makes Wingfit powerful

Wingfit is a self‑hosted, privacy‑first fitness platform that lets developers build workout plans, track personal records, and ingest smartwatch telemetry. At its core, the application is a single‑page Angular client that communicates with a lightweight FastAPI backend. The API surface exposes CRUD endpoints for workouts, programs, and user metrics, while optional OIDC authentication can be configured via the `config.md` documentation. The entire stack is containerized with Docker Compose, making it trivial to deploy on any Linux host or cloud provider that supports Docker.

Workout Planning

Personal Records (PR) Tracking

Smartwatch Integration

Reporting & Analytics

Overview

Wingfit is a self‑hosted, privacy‑first fitness platform that lets developers build workout plans, track personal records, and ingest smartwatch telemetry. At its core, the application is a single‑page Angular client that communicates with a lightweight FastAPI backend. The API surface exposes CRUD endpoints for workouts, programs, and user metrics, while optional OIDC authentication can be configured via the config.md documentation. The entire stack is containerized with Docker Compose, making it trivial to deploy on any Linux host or cloud provider that supports Docker.

Architecture

LayerTechnologyRationale
FrontendAngular 19 + PrimeNG 19 + Tailwind CSS 4Modern component‑driven UI with minimal bundle size; PrimeNG supplies ready‑made widgets for forms and tables, while Tailwind keeps styling consistent and configurable.
APIFastAPI + SQLModel (SQLAlchemy ORM)FastAPI offers async request handling, automatic OpenAPI generation, and dependency injection. SQLModel provides a type‑safe ORM layer on top of SQLite.
DatabaseSQLite (file‑based)Lightweight, zero‑configuration persistence suitable for small to medium deployments; the schema is defined in SQLModel and migrations are handled via Alembic.
ContainerizationDocker Compose (recommended)A single docker-compose.yml exposes port 8000 and mounts a persistent volume for the SQLite database. The image is hosted on GitHub Container Registry (ghcr.io).

The application follows a client‑server pattern: the Angular SPA consumes the RESTful API, which in turn talks to SQLite. All communication is over HTTPS when deployed behind a reverse proxy, and the backend can be extended with WebSocket endpoints for real‑time workout telemetry if needed.

Core Capabilities

  • Workout Planning – Create, edit, and delete exercises with sets, reps, weight, and rest intervals. Plans can be grouped into programs and scheduled.
  • Personal Records (PR) Tracking – Persist max lifts per exercise; the UI visualizes PR progression over time.
  • Smartwatch Integration – A JSON‑based ingestion endpoint accepts telemetry from devices such as Apple Watch or Garmin; the API normalizes timestamps and maps metrics to existing workout sessions.
  • Reporting & Analytics – Endpoints return aggregated statistics (volume, intensity, progression curves) which the frontend renders with PrimeNG charts.
  • Extensibility – The API follows REST conventions, making it straightforward to build third‑party dashboards or mobile clients. Webhooks can be added by forking the repository and exposing a /webhook route.

Deployment & Infrastructure

Wingfit is designed for zero‑friction self‑hosting:

  • Docker Compose – One command (docker-compose up -d) starts the entire stack. The compose file mounts a storage directory for persistence and exposes port 8000.
  • Docker Run – For minimal setups, a single docker run command is sufficient; the image pulls automatically from GHCR.
  • Scalability – While SQLite limits concurrent writes, the stateless FastAPI layer can be horizontally scaled behind a load balancer if traffic grows. For larger deployments, swapping SQLite for PostgreSQL is trivial by changing the SQLModel connection string.
  • Infrastructure – The application runs on any platform that supports Docker: Raspberry Pi, Home Assistant add‑ons, cloud VMs, or Kubernetes (via Helm chart).

Integration & Extensibility

  • Plugin System – Currently, Wingfit exposes a simple plugin hook: developers can add new endpoints or modify the ORM models by forking and extending app/main.py. Future releases may introduce a formal plugin API.
  • APIs & Webhooks – The OpenAPI spec is auto‑generated; clients can consume it with Swagger UI or any HTTP client. A /webhook endpoint can be configured to push data to external services (e.g., Slack, Grafana).
  • Customization – Tailwind’s configuration file allows theme overrides; PrimeNG themes can be swapped without touching the Angular code. The frontend is fully component‑based, so developers can replace or extend widgets.

Developer Experience

  • Documentation – The repo contains a concise docs/config.md for authentication and environment variables, and the README covers installation. The OpenAPI docs are available at /docs once the backend is running.
  • Community & Support – Issues and pull requests are welcomed; contributors can easily add features. The CC BY‑NC‑SA 4.0 license ensures freedom to modify, but commercial use is disallowed.
  • Testing – While not detailed in the README, FastAPI’s dependency injection makes unit testing straightforward. Angular components can be tested with Karma/Jasmine.

Use Cases

  1. Personal Home Gym – A developer sets up Wingfit on a Raspberry Pi, uses the smartwatch ingestion endpoint to log workouts from an Apple Watch, and visualizes progress on a local display.
  2. Small Coaching Business – Coaches host Wingfit in the cloud, expose a custom domain, and provide clients with a single‑page app to plan sessions while keeping data private.
  3. Research Projects – Data scientists can pull workout metrics via the API, merge them with physiological data from wearables, and run statistical analyses locally.

Advantages

  • Privacy‑First – No telemetry; all data stays on the host.
  • Performance & Simplicity – FastAPI’s async engine and SQLite’s low overhead deliver quick responses for typical fitness workloads.
  • **Lic

Open SourceReady to get started?

Join the community and start self-hosting Wingfit today