Skip to content
OpenSourceSoftware.ai

GitHub stars

7,205
—Awaiting first sync

Awaiting first sync

No measured star history yet

What is wger?

wger brings workout plans, food logging and body measurements together in one place. It suits people who want to keep their training and health data on a server they control, and small gyms that want a shared system for members. You can use the public instance at wger.de or run your own copy with Docker.

wger is a free workout, nutrition and weight tracker that you can host yourself or use at wger.de. It lets you build workout routines with automatic progression rules, log food from an ingredient database based on Open Food Facts, and record body weight, measurements and progress photos. It has a REST API, apps for Android and iOS, and basic gym management features.

Core capabilities

  • Builds routines with progression rules that raise weight or reps over time.
  • Logs meals and calories using ingredients from Open Food Facts.
  • Tracks body weight, custom measurements and progress photos.

Routines and progression

A routine is a sequence of workout days and rest days, set to repeat each week or to follow a custom cycle. Each day holds exercises and sets, and adding more than one exercise to a set creates a superset. Progression rules, available in the web version, change weight, reps, sets or reps in reserve in later weeks by a fixed amount, a percentage or a reset value. The exercise wiki provides the built-in list of exercises, which users can add to.

  • Workouts
  • Routines
  • Progression
  • Exercises

Nutrition, weight and measurements

Diet plans and calorie logging use an ingredient database from Open Food Facts. Body weight and custom measurements can be tracked over time, and a progress gallery stores photos. The user manual covers syncing with Apple Health and Health Connect and connecting other applications to your wger data. A REST API is available for other tools and automations.

  • Nutrition
  • Open Food Facts
  • Measurements
  • REST API

Run it yourself under AGPL-3.0

The recommended setup is the Docker Compose project in wger-project/docker, which runs the web app with PostgreSQL, Redis, Celery and nginx. Settings such as SECRET_KEY, the JWT keys and SITE_URL go in config/prod.env. Management commands such as sync-exercises and sync-ingredients-bulk copy exercises and ingredients from the main instance. The application code is released under the AGPL-3.0 licence, version 3 or later, while exercise and ingredient data use Creative Commons licences.

  • Self-hosted
  • Docker
  • PostgreSQL
  • AGPL-3.0

Where it fits

Use cases

  1. 01

    Follow a training plan that progresses each week

    Create a routine made of workout days and rest days, scheduled with Fit in week or a custom cycle. Add exercises and sets to each day, then add progression rules that add a fixed amount or a percentage to weight or reps in later weeks. Requirements can hold an increase back until all planned reps and weight were completed in the previous session.

  2. 02

    Track what you eat

    Set up a diet plan and log meals with ingredients from the database, which comes from Open Food Facts. A self-hosted instance keeps its ingredient list up to date with the sync-ingredients-bulk command, which downloads the database from the main wger instance. Ingredients you have added by hand are left alone during the sync.

  3. 03

    Run a fitness tracker for a small gym

    Deploy the wger-project/docker Compose setup, which runs the web app with PostgreSQL, Redis, Celery and nginx on port 80. Give each member their own account and use the basic gym management features to look after them. Change the default admin password and the JWT keys before the server is reachable from the internet.