João Vitória Silva d15c0ed4fd Add private notes, frontend activity naming & improve notifications
[backend] on activity creation if activity has no average, max and normalized power define it should define it if power is set
[backend] added column private_notes to activity table
[backend] added validation to only retrieve private notes if user is owner of activity
[backend] removed activity name definition from backend
[frontend] added activity name definition done by the frontend
[frontend] fix ele not being showed on cycling activities on activity summary
[frontend] continued notifications logic. Added button to show more notifications if applicable (next page)
2025-07-07 14:56:46 +01:00
2024-12-10 17:35:56 +00:00
2025-06-25 14:22:06 +01:00
2025-07-01 16:11:36 +01:00
2025-06-25 14:22:06 +01:00
2025-06-17 09:25:27 +01:00
2025-05-03 23:07:45 +01:00
2024-08-29 15:36:23 +01:00
2025-06-25 14:22:06 +01:00
2025-05-05 11:56:32 +01:00
2025-02-27 15:03:29 +00:00

Endurain

License GitHub release GitHub stars

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

Endurain Screenshot

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, stravalib and python-garminconnect for Strava and Garmin Connect integration, gpxpy and fitdecode for .gpx and .fit file import respectively
  • Database: MariaDB or PostgreSQL for efficient data management
  • Observability: Jaeger for basic tracing and monitoring
  • Integrations: Supports Strava and Garmin Connect. Manual upload of activities using .gpx 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.

Description
No description provided
Readme AGPL-3.0 152 MiB
Languages
Python 69.4%
Vue 26.2%
JavaScript 3.4%
TypeScript 0.8%