🔧 Upgrade steps from 2.2

  • Update python libraries pip3 install -r requirements.txt

  • Migrate database python migrate

  • Update CSS and JS libraries yarn install

  • Compile the CSS yarn build:css:sass

  • Update static files (only production): python3 collectstatic

🚀 Features

🧰 Maintenance

  • Added UUID fields to exercise aliases and comments for better synchronization

🐛 Bug Fixes



🔧 Upgrade steps from 2.1

  • Update python libraries pip3 install -r requirements.txt

  • Migrate database python migrate

  • Update CSS and JS libraries yarn install

  • Compile the CSS yarn build:css:sass

  • Update static files (only production): python3 collectstatic

  • Load new permissions python3 loaddata groups.json categories.json

  • Read the section on celery in this documentation on how to set it up. While at the moment this is not needed and only provides quality of life features, in the future this might change

🚀 Features

  • Improvements to the nutritional plan handling. Users don’t have to setup a detailed plan with meals anymore, instead they can just log their meals #817

  • Allow users to set goals for their nutritional plans. This basically works like the sum of the individual meals, but is simpler and easier to setup #1003

  • Implemented nutrition page with react

  • Added general measurements tracking to the web application #875

  • Added JWT authentication to the REST API (thanks @RohanKaran!) #1047

  • Added images to ingredients. This can now be shown in the nutritional plan, the autocompleter, etc. #653

  • Add a celery queue for longer running or periodic tasks. At the moment this is only used to keep the exercises in sync and download the ingredient images, but other features are planned #1174

  • When scanning a product, fetch the data from the live OFF server if it is not found locally #1012, #1348

  • Added brute protection against brute force login attacks (thanks @RohanKaran!) #1096

  • Reworked the landing page (thanks @12people!) #1112

  • Allow to set the minimum account age for users to contribute exercises (thanks @mohammadrafigh!) #1187

  • Document the API with openAPI, redoc and all the goodies that come from it (better online docs, being able to generate clients, etc.) #1127

  • Allow searching exercises and ingredient in English in addition to the user’s currently selected language #1238

  • More flexible user (sub)locale switching. This specially affected English users that would be shown dates in US format #1245

  • Add a deletion log for exercises. This allows exercises to be marked as deleted by the system. Alternatively a replacement can be set so that when other instances sync the exercises logs and routines are correctly updated #1237

  • Show all the authors of an exercise and any of its child items (translations, images, videos, etc.) #1137

  • Allow users to give meals a description (thanks @mohammadrafigh!) #822

  • Added style field (Foto, 3D, etc.) to exercise image (thanks @LucasSD!) #822

  • Added exercise edit history (thanks @ImTheTom!) #1082

  • Added JWT authentication to rest API (thanks @RohanKaran!) #1134

  • Add support for sub-locales in the application such as en-gb #1275

  • Moved some parts of routine management to react #1328

🧰 Maintenance

  • Improvements to the Open Food Facts product importer. The setup has been simplified with a docker compose, making the process much more streamlined. #1505

  • #1137 (thanks @AdamPetik!)

  • Show last modified datetime of exercises in the API #1387

  • Better handling of exercises without translations #1319

  • Split the dummy generator into individual files #919

  • Update bootstrap to current version #1109

  • Update django to current version #1110

  • Bettler handling of exercises UUIDs (thanks @Gr8ayu) #675

  • Add foreign key to meals on log (thanks @Alig1493) #842

  • Make URL for media, static and login redirect configurable (thanks @novalis111) #1020

  • Configure django axes (thanks @RohanKaran) #1143

  • Add tzdate package to docker base image (thanks @bbkz) #1408

🐛 Bug Fixes

  • Fix issue with django axes and mobile app #1163

  • Correctly format decimal places in numbers according to the user’s locale #1402

  • Fix issue when a user tried to register with an existing email via the app (thanks @JayanthBontha!) #1459

  • Fix bug in the demo entries generator (thanks @JayanthBontha!) #1278

  • Fix issue with password reset links and expired tokens (thanks @RohanKaran!) #1154

  • Fix issue with password reset links and expired tokens (thanks @RohanKaran!) #1287

  • Fix issue that prevented users from resetting their password (thanks @RohanKaran!) #1154

  • Fix import error (thanks @sophiamartelli!) #986

  • Use either TLS or SSL for emails (thanks @bbkz!) #1514

  • Fix bug in the link used in the password reset link #1320

  • Fix bug in the weight log chart #1308



Upgrade steps from 2.0:

  • Install ffmpeg if you want to upload videos (consult documentation).

  • Update python libraries pip3 install -r requirements.txt

  • To sync the new exercises:

    • Run migrations python3 migrate

    • delete all exercises not in use python delete-unused-exercises (this will delete all exercises that are currently in the database but are not part of any workout, log, etc. You will be promted before the script does anything)

    • get the new exercises python sync-exercises (Also note that if you don’t perform these steps and directly run a regular sync the worst that can happen is that you might have some duplicate exercises in your installation)

    • get the new images python download-exercise-images

    • get the new videos python download-exercise-videos (please note that this needs more space)

  • Update CSS and JS libraries yarn install

  • Compile the CSS yarn build:css:sass

  • Update static files (only production): python3 collectstatic

  • Load new permissions python3 loaddata groups.json categories.json

🚀 Features:

  • The exercise database has undergone a huge cleanup, combining duplicates and translations, deleting stubs, etc. Refreshed the UI for the exercise overview, detail view and contribution page. It is now easier (or at all possible) to submit, correct and translate the exercises. #1120

  • New gallery where users can upload pictures to track their progress #572

  • Exercises can now have videos. Also many thanks to Goulart for providing 150 videos #970 and releasing them under the CC-BY-SA license.

  • Add templates / centrally managed workouts (thanks @qwert45hi) #639

  • Add comment filed to set for user notes #702

  • Custom measurements such as biceps size or body fat #133

  • Add picture type to exercise images (thanks @LucasSD) #589

  • Add optional relation from nutritional diary to meal (thanks @Alig1493) #819

  • Muscles now have a “common” name, besides their names in Latin (thanks @ImTheTom) #1041

  • Allow to add nutritional plan diary entries for other dates (thanks @ImTheTom) #520

🐛 Bug Fixes:

  • Adding a new workout day no longer needs to be saved twice (thanks @ImTheTom) #974

🧰 Maintenance:

  • Exercise API response is now cached (thanks @ImTheTom) #1033

  • Changes to the REST API:

    • /exercisebaseinfo/ - New endpoint to get exercise information grouped by the base exercise

    • /language/ - Also expose the language ID

    • /exerciseimage/ - exercise was renamed to exercise_base (was pointing there anyway) - New field style

    • /workout/ - comment was renamed to name - field description was added, for longer descriptions

    • /set/ - field comment added, for user notes

    • /nutritiondiary/ - field meal added, optional reference to meal

    • /min-app-version/ - New endpoint indicating minimum required version for flutter app

  • #666, #667, #656 (thanks @jackmulligan-ire), #716



Upgrade steps from 1.9:

  • Update python libraries pip3 install -r requirements.txt

  • Install yarn and sass (e.g. sudo npm install -g yarn sass)

  • Update CSS and JS libraries yarn install

  • Compile the CSS yarn build:css:sass

  • Run migrations python3 migrate

  • Update data python3 loaddata licenses.json languages.json language_config.json

  • Load new ingredients (note that this will overwrite any ingredients that you might have added) wger load-online-fixtures

  • Update static files (only production): python3 collectstatic

  • Subcommands for wger now use dashes in their names (i.e. create-settings instead of create_settings)

🚀 Features:

🐛 Bug Fixes:

🧰 Maintenance:

  • Moved translations to weblate #266

  • Improved docker and docker-compose images #340

  • Updated many libraries to the last version (bootstrap, font awesome, etc.)

  • Use yarn to download CSS/JS libraries

  • Improvements to documentation (e.g. #494)

  • Improved cache handling #246 (thanks @louiCoder)

  • Others: #450 (thanks @Rkamath2), #631 (thanks @harlenesamra), #664 (thanks @calvinrw),



Upgrade steps from 1.8:

  • Django update to 3.x: pip install -r requirements.txt

  • Database upgrade: python migrate

  • Update static files (only production): python collectstatic

New features:

  • Allow users to enter their birthdate instead of just the age (thanks @dtopal) #332

  • Work to ensure that mobile templates are used when appropriate

  • Added optional S3 static asset hosting.

  • Drop Python 2 support.

  • Replaced django-mobile with django-user_agent (and some custom code) This isn’t as slick as django-mobile was, but it unblocks possible Django 2.x support.

  • Update many dependencies to current versions.


  • Improve the look of weight graph (thanks @alokhan) #381

  • Added password validation rules for more security

  • Exercise image downloader checks only accepted exercises (thanks @gmmoraes) #363

  • Use a native data type for the exercises’ UUID (thanks @gmmoraes) #364

  • Increase speed of testsuite by performing the tests in parallel (thanks @Mbarak-Mbigo) wger_vulcan/#6

  • Update screen when adding an exercise to the workout while using set slider (thanks @gmmoraes) #374

  • Work to slim docker image * Download images at startup - If DOWNLOAD_IMGS environmental variable is set to TRUE * Uninstall dev packages

  • Update Ubuntu version used in docker container.

  • Fixed a handful of hard coded static path references to use static taglib

  • Updated tinymce theme for v5.

Other improvements and bugfixes: #336, #359,`#386`_, #443




There have been some changes to the installation procedure. Calling ‘invoke’ on its own has been deprecated, you should use the ‘wger’ command (which accepts the same options). Also, some of these commands have been renamed:

  • start_wger to wger

  • bootstrap_wger to bootstrap

Upgrade steps from 1.7:

  • Django update to 1.9: pip install -r requirements.txt

  • Database upgrade: python migrate

  • Reset cache: python clear-cache --clear-all

  • Due to changes in the JS package management, you have to delete wger/core/static/bower_components and do a python bower install

  • Update static files (only production): python collectstatic

  • Load new the languages fixtures as well as their configuration python loaddata languages and python loaddata language_config

  • New config option in WGER_SETTINGS['TWITTER']. Set this if your instance has its own twitter account.

New languages:

  • Norwegian (many thanks to Kjetil Elde @w00p #304)

  • French (many thanks to all translators)

New features:

  • Big ingredient list in Dutch, many thanks to!

  • Add repetition (minutes, kilometer, etc.) and weight options (kg, lb, plates, until failure) to sets #216 and #217

  • Allow administrators to deactivate the guest user account #330

  • Add option to show the gym name in the header instead of the application name, part of #214

  • Exercise names are now capitalized, making them more consistent #232

  • Much improved landing page (thanks @DeveloperMal) #307

  • Add extended PDF options to schedules as well (thanks @alelevinas ) #272

  • Show trained secondary muscles in workout view (thanks @alokhan ) #282

  • Use the metricsgraphics library to more easily draw charts #188

  • Removed persona (browserID) as a login option, the service is being discontinued #331


  • Check and enforce style guide for JS files #317 (@petervanderdoes)

  • BMI calculator now works with pounds as well (thanks @petervanderdoes) #318

  • Give feedback when autocompleter didn’t find any results #293

  • Make exercise names links to their detail page in training log pages #350

  • Better GUI consistency in modal dialogs (thanks @jstoebel ) #274

  • Cache is cleared when editing muscles (thanks @RyanSept @pythonGeek ) #260

  • Fields in workout log form are no longer required, making it possible to only log weight for certain exercises #334

  • New, more verbose, API endpoint for exercises, (thanks @andela-bmwenda)

  • The dashboard page was improved and made more user friendly #201 (partly)

  • Replace jquery UI’s autocompleter and sortable this reduces the size of JS and CSS #78 and #79

  • Update to D3js v4 #314, #302

  • Remove hard-coded CC licence from documentation and website #247

Other improvements and bugfixes: #25, #243, #279, #275, #270, #258, #257, #263, #269, #296, #297, #303, #311, #312, #313, #322, #324, #325



New translations:

  • Czech (many thanks to Tomáš Z.!)

  • Swedish (many thanks to ywecur!)

New features:

  • Workout PDF can now print the exercises’ images and comments #261

  • Allow login with username or email (thanks @warchildmd) #164`_

  • Correctly use user weight when calculating nutritional plans’ calories (thanks @r-hughes) #210

  • Fix problem with datepicker #192

  • Order of exercises in supersets is not reverted anymore #229

  • Improvements to the gym management:

    • Allow to add contracts to members

    • Visual consistency for lists and actions

    • Vastly reduce the number of database queries in gym member list #144

    • Global list of users for installation #212

    • Allow administrators to restrict user registration #220

    • Refactored and improved code, among others #208

    • Allow gym managers to reset a member’s password #186

  • Better rendering of some form elements #244

  • Improved GUI consistency #149

  • Docker images for easier installation #181

  • Use hostname for submitted exercises (thanks @jamessimas) #159

  • Download js libraries with bowerjs (thanks @tranbenny) #126

  • Improved and more flexible management commands #184

  • Fixed error when importin weight entries from CSV (thanks @r-hughes) #204

  • Fixed problems when building and installing the application on Windows (thanks @romansp) #197

  • Fixed potential Denial Of Service attack (thanks @r-hughes) #238

  • Dummy data generator can not create nutrition plans (thanks @cthare) #241

Other improvements and bugfixes: #279, #275, #270, #258, #257



Bugfix release



New translations:

  • Greek (many thanks to Mark Nicolaou!)

New features:

  • Save planed weight along with the repetitions #119

  • Improvements to the workout calendar #98

  • Allow external access to workouts and other pages to allow for sharing #102, #124

  • Email reminder to regularly enter (body) weight entries #115

  • Allow users to submit corrections to exercises

  • Add day detail view in workout calendar #103

  • Fix bug where the exercises added to a superset did not remain sorted #89

  • Reduce the size of generated HTML code #125

  • Allow users to copy shared workouts from others #127

  • Added breadbrumbs, to make navigation easier #101

  • Add option to delete workout sessions and their logs #156

  • Improve installation, development and maintenance documentation #114

Other improvements and bugfixes: #99, #100, #106, #108, #110, #117, #118, #128, #131, #135, #145, #155



New Translations:

  • Dutch (many thanks to David Machiels!)

  • Portuguese (many thanks to Jefferson Campos!) #97

New features:

  • Add support for gym management #85

    • Gym managers can create and manage gyms

    • Trainers can see the gym’s users and their routines

  • Reduce the amount of CSS and JS libraries by using bootstrap as much as possible #73

  • Improvements to the REST API #75

    • Add read-write access

    • Add live browsing of the API with django rest framework

    • Improve documentation

    • /api/v1 is marked deprecated

  • Show exercise pictures in workout as well

  • Detailed view of exercises and workouts in schedule #86

  • Support for both metric (kg) and imperial (lb) weight units #105

  • Allow the user to delete his account and data #84

  • Add contact field to feedback form

  • Cleanup translation strings #94

  • Python 3 compatibility! #68

Other improvements and bugfixes: #51, #76, #80, #81, #82, #91, #92, #95, #96



New features and bugfixes:

  • Calendar view to more easily check workout logs

  • Add “gym mode” with timer to log the workout while at the gym

  • Add automatic email reminders for new workouts

  • New iCal export to add workouts and schedules e.g. to google calendar

  • New exercise overview, grouped by equipment

  • Add possibility to write comments and rate the workout

  • Simplify form for new exercises

  • Alternative PDF export of workout without table for entering logs

  • Unified way of specifying license of submitted content (exercises, etc.)



New translations:

  • Bulgarian (many thanks to Lyuboslav Petrov!)

  • Russian (many thanks to Inna!)

  • Spanish

New features and bugfixes:

  • Mobile version of website

  • Add images to the exercises

  • Exercises now can list needed equipment (barbell, etc.)

  • BMI calculator

  • Daily calories calculator

  • New management utility for languages

  • Improved performance

  • RESTful API



New features and bugfixes:

  • Added scheduling option for workouts.

  • Open all parts of website to all users, this is done by a custom middleware

  • Regular users can submit exercises and ingredients to be included in the general list

  • Add more ‘human’ units to ingredients like ‘1 cup’ or ‘1 slice’

  • Add nutritional values calculator on the ingredient detail page

  • Several bugfixes

  • Usability improvements



New features and bugfixes:

  • Pin version of app django_browserid due to API changes in 0.8

  • Fix issue with tabs on exercise overview due to API changes in JQuery



New features and bugfixes:

  • Better navigation bar

  • Added descriptions for the exercises (German)

  • New workout logbook, to keep track of your improvements

  • Import your weight logs from a spreadsheet (CSV-Import)

  • Better filtering for weight chart

  • Muscle overview with corresponding exercises

  • Add guest accounts by generating a temporary user

  • Description pages about the software

  • Easier installation process



New features and bugfixes:

  • Add option to copy (duplicate) workouts and nutritional plans

  • Login without an account with Mozilla’s Persona (BrowserID)

  • Better AJAX handling of the modal dialogs, fewer page reloads and redirects

  • Expand the list of ingredients in German

  • Add pagination to the ingredient list

  • Improvements to user page:

    • Add a “reset password” link to the login page

    • Email is now user-editable

  • More natural lines in weight chart with cubic interpolation



Bugfix release



New features and bugfixes:

  • Fix issue with password change

  • Small improvements to UI

  • Categories editable/deletable from the exercise overview page

  • Exercise AJAX search groups by category

  • More tests!

  • Use generic views for editing, creating and deleting objects



Initial release.

New features and bugfixes:

  • Workout manager

  • PDF output for logging progress

  • Initial data with the most popular exercises

  • Simple weight chart

  • Nutrition plan manager

  • Simple PDF output

  • Initial data with nutritional values from the USDA