Nowadays, many are concerned about tracking several aspects of their workout routines, and services like Strava and Garmin come in handy. However, while these services provide the necessary push to track our activities, they also come with trade-offs. They store your data on their servers. Plus, they often require recurring subscriptions to continue enjoying premium services, and in the end, you may not even have full control over your training history.

What if there was a free, self-hosted app to set workout goals, integrate with popular workout services, and manually upload your workout data files in various formats? That’s where Endurain comes in.

What exactly is Endurain?

What it offers

With this fitness platform, you can enjoy the functionality of subscription-based fitness services, but without paying a dime, even for advanced features. It allows you to record, review, and analyze your workouts. However, unlike the other services, Endurain is self-hosted. So, instead of uploading data about your runs, swims, or walks to a company’s cloud server, you can install Endurain on your server or virtual machine. This system ensures that your personal fitness data remains entirely under your control.

After connecting Endurain to fitness platforms like Strava, Garmin Connect, RunnerUp, and more, you can easily create weekly or monthly goals or targets, and your progress will update automatically. Additionally, you can track your activities across key metrics — such as distance, speed, and training volume — over time and see your progress. Furthermore, Endurain supports standard file formats, including GPS Exchange Format (.gpx), Training Center XML (.tcx), and Flexible and Interoperable Data Transfer (.fit). This wide compatibility allows you to import your sessions from virtually any GPS-enabled watch, cycling computer, or swim tracker into your private platform.

Why consider signing up for Endurain?

Privacy, cost control, and flexibility

Screenshot of Endurain profile page

More than ever before, privacy issues are a major concern. While companies often promise that your data is safe and will not be used without your consent, these things can change, often for the worse, so it’s understandable not to trust them completely. Nothing brings more peace of mind than knowing that your data is under your control, and that’s the core of what Endurain gives you. You can decide whether to share your workout sessions with friends or family or keep them private.

Endurain offers flexibility. While commercial apps are entirely controlled by the companies that design them, Endurain is open source. You have the freedom to customize features and add or modify functions as needed. You can also adjust it to focus on the metrics that matter most to you, such as cycling power data, running cadence, or swimming splits.

Setting up Endurain requires effort

Freedom comes with responsibility

Screenshot of Endurain server settings

Of course, a self-hosted tool is quite different from downloading an app from the Store and will require effort to set it up. To get Endurain running, you need a dedicated server or a virtual private server (VPS). This server serves as the central hub, helping you keep track of your fitness data. You will also need Docker, as Endurain is designed to operate efficiently within a Docker container. Why not start by downloading the entire Endurain project and saving it locally? To do this, simply open PowerShell and execute the following command:

git clone https://github.com/joaovitoriasilva/endurain.git

If you get an error message, it likely means Git isn’t installed on your machine. Download Git and install it using the default settings. The default settings ensure that PowerShell recognizes and links to it. At this point, it’s nice to open your Docker application and confirm that “engine running” appears in the bottom-left corner. Next, go into your downloaded Endurain folder with the following command on PowerShell:

cd Endurain

In your Endurain project folder is a crucial file named docker-compose.yml.example. Copy and rename it with the following command:

Copy-Item docker-compose.yml.example docker-compose.yml

After, open it with Notepad with the following command:

notepad docker-compose.yml

Edit the timezone, ports, and database password, and then copy and rename the .env.example file with the following command:

Copy-Item .env.example .env

You can also edit your new .env file with Notepad. These steps are crucial because, by default, Docker Compose identifies configuration files named compose.yml/compose.yaml and .env in the same directory.

Screenshot of edurain project saved locally with env and yml files

Finally, download the Endurain Docker images and run the container using the following command:

docker-compose up -d

Then you can access the Endurain app login page at http://localhost:8080.

Once set up, you have full control over your data, but this control also comes with added responsibility. You will need to back up your data regularly, apply software updates, and maintain basic data security to keep your data protected and recoverable. That said, Endurain’s comprehensive documentation and active online community provide guidance and support, so the process is manageable even if you’re not a system expert.

Is Endurain right for you?

For all its great features, Endurain may still not be ideal for everyone due to the time and effort required to set up and maintain it. Commercial options may serve you better if you’re looking for an app you can install and use immediately. However, for athletes who value privacy and prefer not to have their data shared with third parties, Endurain may be well worth the effort. Additionally, private clubs and coaches who want to operate a shared private platform with their members without relying on external services may equally find Endurain appealing. Be that as it may, Endurain gives you the benefits of self-hosting: you gain control over your data, avoid subscription fees, and can tailor it to meet your specific needs. If those priorities matter to you, Endurain is well worth considering.