• Python 73.2%
  • Vue 22.8%
  • JavaScript 3%
  • TypeScript 0.8%
Find a file
João Vitória Silva 13baa6c4c0 Fix for #528
Fix for unable to upload any .fit files my Geoid CC600 #528
2026-02-23 16:46:47 +00:00
.github Add comprehensive tests for server_settings and websocket modules 2026-01-07 22:42:18 +00:00
aux_scripts Add script to restore Postgres from backup 2025-12-22 22:54:11 +00:00
backend Fix for #528 2026-02-23 16:46:47 +00:00
docker Derive backend/frontend paths in Docker scripts 2026-02-10 15:28:34 -08:00
docs Update logout to use refresh token and improve docs 2026-01-21 12:46:34 +00:00
frontend/app Squashed commit of the following: 2026-02-23 16:28:16 +00:00
.dockerignore Add .dockerignore and update .gitignore; fix Garmin activities retrieval 2025-05-28 15:51:00 +02:00
.env.example Fix .env comments preventing startup 2026-01-20 07:54:44 -05:00
.gitignore Add tests for identity_providers module and update .gitignore 2025-12-19 11:25:57 +00:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2025-05-03 23:07:45 +01:00
CONTRIBUTING.md Update project links to new GitHub organization 2025-12-12 14:08:19 +00:00
crowdin.yml Reorder and add i18n paths in Crowdin config 2025-12-04 12:23:54 +00:00
docker-compose.yml-multiple-backends.example Update project links to new GitHub organization 2025-12-12 14:08:19 +00:00
docker-compose.yml.example Update project links to new GitHub organization 2025-12-12 14:08:19 +00:00
docker-compose.yml.secrets.example Update project links to new GitHub organization 2025-12-12 14:08:19 +00:00
LICENSE Change license from GPL 3.0 to AGPL 3.0 or later 2024-12-28 21:47:29 +00:00
mkdocs.yml Refactor user session modules and add privacy utils 2026-01-21 09:35:39 +00:00
README.md Add demo environment information to docs and README 2025-12-15 22:24:02 +00:00
ROADMAP.md Update docs and roadmap for features and trademark 2025-12-08 16:02:56 +00:00
screenshot_01.png Update gallery photos with v0.14.0 changes 2025-09-06 18:22:41 +01:00
SECURITY.md Add user IdP linking and MFA setup modals 2025-10-17 16:19:57 +01:00
TRADEMARK.md Update TRADEMARK.md 2025-12-03 22:24:47 +00:00

Endurain

License GitHub release GitHub stars Trademark Policy

A self-hosted fitness tracking service
Visit Endurain's Mastodon profile and Discord server.

Endurain Screenshot

🚀 Try the Demo

Experience Endurain without installation:

Demo URL: https://demo.endurain.com

  • Username: admin
  • Password: admin
  • Reset Schedule: Daily at midnight (Europe/Lisbon timezone)

⚠️ Note: The demo environment resets every day. Do not store important data.

Table of Contents

What is Endurain?

Endurain is a self-hosted fitness tracking service designed to give users full control over their data and hosting environment. It's similar to Strava but focused on privacy and customization. Built with:

  • Frontend: Vue.js, Notivue and Bootstrap CSS
  • Backend: Python FastAPI, Alembic, SQLAlchemy, Apprise, stravalib and python-garminconnect for Strava and Garmin Connect integration, gpxpy, tcxreader and fitdecode for .gpx, .tcx and .fit file import respectively
  • Database: PostgreSQL for efficient data management
  • Observability: Jaeger for basic tracing and monitoring
  • Integrations: Supports Strava and Garmin Connect. Manual upload of activities using .gpx, .tcx and .fit files are also supported

To deploy Endurain, a Docker image is available, and a comprehensive example can be found in the "docker-compose.yml.example" file provided. Configuration is facilitated through environment variables, ensuring flexibility and ease of customization.

For more information please see the Endurain's documentation.

Sponsors

A huge thank you to the project sponsors! Your support helps keep this project going.

Consider sponsoring Endurain on GitHub to ensure continuous development.

Contributing

Contributions are welcomed! Please open an issue to discuss any changes or improvements before submitting a PR. Check out the Contributing Guidelines for more details.

Help Translate

Endurain has multi-language support, and you can help translate it into more languages via Crowdin.

License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.

Trademark Notice

Endurain® is a trademark of João Vitória Silva.

You are welcome to self-host Endurain and use the name and logo, including for personal, educational, research, or community (non-commercial) use.
Commercial use of the Endurain name or logos (such as offering paid hosting, products, or services) is not permitted without prior written permission.

See TRADEMARK.md for full details.

Built with ❤️ from Portugal | Part of the Endurain ecosystem