diff options
Diffstat (limited to 'blog/2023-01-28-self-hosting-wger-workout-manager.org')
-rw-r--r-- | blog/2023-01-28-self-hosting-wger-workout-manager.org | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/blog/2023-01-28-self-hosting-wger-workout-manager.org b/blog/2023-01-28-self-hosting-wger-workout-manager.org deleted file mode 100644 index a4314c3..0000000 --- a/blog/2023-01-28-self-hosting-wger-workout-manager.org +++ /dev/null @@ -1,170 +0,0 @@ -#+title: Self-Hosting Wger Workout Manager -#+date: 2023-01-28 - -** Wger: The Self-Hosted Workout Manager -:PROPERTIES: -:CUSTOM_ID: wger-the-self-hosted-workout-manager -:END: -[[https://wger.de][Wger Workout Manager]] is a fitness tracking tool for -those who enjoy self-hosting their data. You can also register an -account on their main website if you'd prefer to try without -self-hosting. - -*** Features -:PROPERTIES: -:CUSTOM_ID: features -:END: -I didn't see a full listing of features anywhere, so I compiled this -list of my own after installing wger: - -**** Dashboard -:PROPERTIES: -:CUSTOM_ID: dashboard -:END: -- Dashboard view of Workout Schedule, Nutrition Plan, Weight Graph, & - last 5 Weight Logs - -**** Training -:PROPERTIES: -:CUSTOM_ID: training -:END: -- Workout Log -- Workout Schedule -- Calendar (shows weight logs and Bad/Neutral/Good days) -- Gallery (shows images you upload) -- Workout templates -- Public templates -- Exercises - -**** Nutrition -:PROPERTIES: -:CUSTOM_ID: nutrition -:END: -- Nutrition plans -- BMI calculator -- Daily calories calculator -- Ingredient overview - -**** Body Weight -:PROPERTIES: -:CUSTOM_ID: body-weight -:END: -- Weight overview - -*** Documentation -:PROPERTIES: -:CUSTOM_ID: documentation -:END: -In order to self-host wger, I opted to use the Docker version of the -application. You can read the README within the -[[https://github.com/wger-project/docker][wger-project/docker]] project -on GitHub for information and installation instructions. - -*** Installation -:PROPERTIES: -:CUSTOM_ID: installation -:END: -To start the installation, I created a folder for wger and started -creating the three necessary files: - -#+begin_src sh -mkdir ~/wger && mkdir ~/wger/config -touch ~/wger/docker-compose.yml && \ -touch ~/wger/config/prod.env && \ -touch ~/wger/config/nginx.conf -#+end_src - -Once you have the folders and files created, you will need to copy the -contents of the =docker-compose.yml=, =prod.env=, and =nginx.conf= from -the GitHub link above. - -A few notes to explain the changes I made to the default files: - -- I updated the =ALLOW_REGISTRAION= variable in =prod.env= to =False= - after I created an account via my LAN connection, *before* I connected - this app to a publicly-available domain. -- I uncommented and updated =CSRF_TRUSTED_ORIGINS= to be equal to the - public version of this app: =https://wger.example.com=. -- I updated the port within =docker-compose.yml=, within the =nginx= - block. The port I updated this to will be reflected in my nginx - configuration file on the server (NOT the wger nginx.conf file). - -*** Deploy -:PROPERTIES: -:CUSTOM_ID: deploy -:END: -Once all files are created and modified to your needs, simply start the -container. - -#+begin_src sh -docker-compose up -d -#+end_src - -You can now visit the website on your LAN by going to -=localhost:YOUR_PORT= or by the server's IP, if you're not on the same -machine that is running the container. - -If you wish to connect this app to a public domain name, you'll need to -point an =A= DNS record from the domain to your server's public IP. -You'll then need to create a configuration file for whichever web server -or reverse proxy you're using. - -Wger's README suggests the following reverse proxy configuration for -Nginx: - -#+begin_src conf -upstream wger { - # This port should match the port in the `nginx` block of docker-compose.yml - # If the container is running on this same machine, replace this with - # server 127.0.0.1:8080 - server 123.456.789.0:8080; -} - -server { - listen 80; - listen [::]:443 ssl; - listen 443 ssl; - - location / { - proxy_pass http://wger; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_redirect off; - } - - server_name my.domain.example.com; - - ssl_certificate /path/to/https/certificate.crt; - ssl_certificate_key /path/to/https/certificate.key; -} -#+end_src - -** Thoughts on Wger -:PROPERTIES: -:CUSTOM_ID: thoughts-on-wger -:END: -I'm still playing around with the app itself, but it seems to be a solid -all-around workout manager, weight log, and food log. - -I like that the weight log graph is fluid and updates quickly. You can -also import or export data in CSV format if you'd like to move your data -elsewhere. - -The workout manager is slightly odd, as it requires you to enter sets -and reps for each exercise when you enter it into the plan. Then, when -you add a log entry for performing a workout, you then add what you -actually performed, in terms of reps and weight. - -I haven't tried the food log yet and I likely will not, at least for a -while. I have no need for a food log or calorie tracker at the moment. - -*** Screenshot Example -:PROPERTIES: -:CUSTOM_ID: screenshot-example -:END: -You can see an example of a dashboard with placeholder data here: - -#+caption: wger dashboard -[[https://img.cleberg.net/blog/20230128-wger/wger.png]] |