Fittrackee
Fittrackee allows you to track your outdoor activities (workouts) from gpx files and keep your data on your own server. It is a open source and decentralized sport tracking app.
Note
For this guide you should be familiar with the basic concepts of
Python and its package manager pip
License
Fittrackee is open-sourced software licensed under the AGPL license.
Prerequisites
Mandatory Prerequisites for Fittrackee:
Python in the version >3.8.1.
PostgreSQL in the version 11+.
Installation
Install Fittrackee
Set up virtual environment for Python 3.9:
[isabell@stardust ~]$ mkdir -p ~/fittrackee
[isabell@stardust ~]$ cd ~/fittrackee
[isabell@stardust fittrackee]$ python3.9 -m venv fittrackee_venv
[isabell@stardust fittrackee]$ ls
fittrackee_venv
[isabell@stardust ~]$
Activate the virtual environment and install Fittrackee:
[isabell@stardust fittrackee]$ source fittrackee_venv/bin/activate
(fittrackee_venv) [isabell@stardust fittrackee]$ pip3.9 install fittrackee
(fittrackee_venv) [isabell@stardust fittrackee]$
...
[notice] A new release of pip is available: 23.0.1 -> 23.2.1
[notice] To update, run: pip install --upgrade pip
Then install version 1.26.6 of urllib3
because otherwise you will get an error message later when setting up the database.
(fittrackee_venv) [isabell@stardust fittrackee]$ pip3.9 install urllib3==1.26.6
...
Successfully installed urllib3-1.26.6
You can deactivate the virtual environment context like this:
(fittrackee_venv) [isabell@stardust fittrackee]$ deactivate
[isabell@stardust fittrackee]$
Configuration
PostgreSQL
Please follow the PostgreSQL guide to configurate PostgreSQL.
After that create fittrackee database
Web Backends
With web backends you can connect Fittrackee running on port 5000 by default to the frontend to make it accessible from outside. Please follow the instructions Web Backends.
Optional: Redis
We need Redis for task queue (if email sending is enabled and for data export requests) and API rate limits.
Please follow the Redis guide to setup redis with one variation: By default, Redis does not run on a port with us, but provides a Unix socket under /home/$USER/.redis/sock
. Either one has to adjust the configuration of the Fittrackee application or change the Redis configuration from ‘port 0’ to 6379.
Optional: Emails
In order to be able to send e-mails from Fittrackee, you need an e-mail account, which you specify in the next step in the file .env
. Any account can be used for this purpose. If you like, you can create the account directly at Uberspace.
Please follow the mail guide to setup up Emails.
Environment variables for Fittrackee
You need to create the necessary environment variables for Fittrackee. You can use the example file as a guide. Further explanations can be found in the Fittrackee documentation.
Special note: For an installation in our system it is important to customize the variables HOST
and DATABASE_URL
as follows:
export HOST=0.0.0.0
...
export DATABASE_URL=postgresql://fittrackee:fittrackee@localhost:5432/fittrackee
...
Fittrackee
Set up and launch Fittrackee
Start virtual environment:
[isabell@stardust ~]$ cd ~/fittrackee/
[isabell@stardust fittrackee]$ source fittrackee_venv/bin/activate
(fittrackee_venv) [isabell@stardust fittrackee]$
Set environment variables from file .env
:
(fittrackee_venv) [isabell@stardust fittrackee]$ source /PathToYourEnvFile/.env
Initialize database schema:
(fittrackee_venv) [isabell@stardust fittrackee]$ ftcli db upgrade
Note that you must link port 5000 via Web Backends.
Open your domain in web browser and register.
Further information on Fittrackee can be found in Fittrackees documentation.
Supervisord Daemon Setup
Create ~/etc/services.d/fittrackee.ini
with the following content so that the Fittrackee application is automatically activated in the case of a server restart:
program:fittrackee]
command=bash -c 'cd %(ENV_HOME)s/fittrackee/fittrackee_venv/ && source bin/activate && source /PathToYourEnvFile/.env && fittrackee'
autostart=yes
autorestart=yes
startsecs=30
After creating the configuration, tell supervisord to refresh its configuration.
Tested with Fittrackee 0.7.25, Uberspace 7.15.6
Written by: Astrid Günther <https://astrid-guenther.de>