commitd32e3d8fdcMerge:d722e793db959207Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Wed Jun 25 12:52:35 2025 +0100 Merge remote-tracking branch 'origin/l10n_pre-release' into pre-release commitdb959207c1Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:51:52 2025 +0100 New translations activitymandabovepillscomponent.json (Portuguese) commit595256934eAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:50:51 2025 +0100 New translations editactivitymodalcomponent.json (Portuguese) commitc659dcd84fAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:50:46 2025 +0100 New translations activitysummarycomponent.json (Portuguese) commit1f8e699753Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:41 2025 +0100 New translations editactivitymodalcomponent.json (Portuguese) commitc93884c2c7Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:40 2025 +0100 New translations editactivitymodalcomponent.json (German) commit9a59c21a75Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:39 2025 +0100 New translations editactivitymodalcomponent.json (Catalan) commit72ea5b5467Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:38 2025 +0100 New translations editactivitymodalcomponent.json (Spanish) commit7f309e9e32Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:37 2025 +0100 New translations editactivitymodalcomponent.json (French) commit0ed4e9134dAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:36 2025 +0100 New translations activitysummarycomponent.json (Portuguese) commitb22b45f185Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:35 2025 +0100 New translations activitysummarycomponent.json (Dutch) commit78a49d35afAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:34 2025 +0100 New translations activitysummarycomponent.json (German) commitd03f260e75Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:33 2025 +0100 New translations activitysummarycomponent.json (Catalan) commit1203787f8aAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:32 2025 +0100 New translations activitysummarycomponent.json (Spanish) commit9a948aea26Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:31 2025 +0100 New translations activitysummarycomponent.json (French) commitcf2a0e8bddAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Wed Jun 25 12:38:30 2025 +0100 New translations editactivitymodalcomponent.json (Dutch) commitd722e79394Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Wed Jun 25 12:28:40 2025 +0100 Fix Docker image tag & bump frontend version [docker] fix image tag on docker-compose.yml.example [frontend] bump version on frontend commite15f4e89c7Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Wed Jun 25 12:18:17 2025 +0100 Bump dependencies commit319b83ae0fAuthor: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Wed Jun 25 12:10:53 2025 +0100 Add indoor cycling support & fix config/logging issues [backend] fixed invalid default value for JAEGER_ENABLED [backend] added support for activity type indoor_cycling [backend] fixed logging spacing and added docs to logger [docker] fixed logging spacing [docs] added support for activity type indoor_cycling [frontend] added support for activity type indoor_cycling [frontend] re added activityMaxHR to activitySummaryComponent.json commitf3e298300fMerge:c9e006a710668d3eAuthor: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Wed Jun 25 11:20:16 2025 +0100 Merge branch 'docker_immutable_feature' into pre-release commit10668d3ed6Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Wed Jun 25 09:26:34 2025 +0100 Update env.js commitb138f81f1eAuthor: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Tue Jun 24 23:14:58 2025 +0100 Update database.py commit5c7c81f123Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Tue Jun 24 23:03:14 2025 +0100 Refactor env var usage and runtime config for frontend/backend Backend now uses core.config for environment variables with sensible defaults, reducing direct os.environ access and improving robustness. Dockerfile and start.sh were updated to remove hardcoded env vars and generate a runtime env.js for frontend configuration. Frontend code now reads ENDURAIN_HOST from window.env instead of Vite env, enabling runtime configuration. Obsolete .env file was removed, and documentation was updated to fix a typo in JAEGER_PORT. commitbb2ae4f548Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:27 2025 +0100 New translations activitymandabovepillscomponent.json (Portuguese) commit64f438000fAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:26 2025 +0100 New translations activitymandabovepillscomponent.json (German) commit4129e66768Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:25 2025 +0100 New translations activitymandabovepillscomponent.json (Catalan) commit7c37b2c375Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:23 2025 +0100 New translations activitymandabovepillscomponent.json (Spanish) commited236a0ee7Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:22 2025 +0100 New translations activitymandabovepillscomponent.json (French) commit825ef122d7Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:21 2025 +0100 New translations activitysummarycomponent.json (Portuguese) commitd04742caeeAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:20 2025 +0100 New translations activitysummarycomponent.json (Dutch) commit187b56221bAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:19 2025 +0100 New translations activitysummarycomponent.json (German) commit83847a2d0cAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:18 2025 +0100 New translations activitysummarycomponent.json (Catalan) commit8a2417360aAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:17 2025 +0100 New translations activitysummarycomponent.json (Spanish) commit7bf9dfdc66Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:16 2025 +0100 New translations activitysummarycomponent.json (French) commit683b1fd260Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 16:34:15 2025 +0100 New translations activitymandabovepillscomponent.json (Dutch) commitc9e006a757Merge:1a5f5cca6cfe4999Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 16:28:37 2025 +0100 Merge branch 'pr/199' into pre-release commit6cfe4999e1Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 16:27:44 2025 +0100 Add HR Zones chart to mobile, move logic to chartUtils [frontend] moved chart functions to chartUtils file [frontend] added HR Zones Bar Chart to mobile view commite475138d11Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 16:15:42 2025 +0100 Refactor HR Zones chart, clean up ActivitySummary [frontend] moved HR Zones graph away from ActivitySummaryComponent [frontend] removed duplicated translation [frontend] reverted changes on ActivitySummaryComponent since chart was removed [frontend] moved chart to ActivityMandAbovePillsComponent [frontend] small adjustments to BarChart commita7d8418d51Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 15:04:05 2025 +0100 Improve formatting, docstrings & fix activityActivityStreams prop [backend] fixed formatting [backend] changed existing docstrings to be more complete [backend] changed imports to be consistent with rest of the code [frontend] fixed formatting [frontend] set new prop on ActivitySummaryComponent to be not required because it is not always necessary (HomeView) [frontend] fixed issue onMounted on ActivitySummaryComponent when new prop is null commit1a5f5cca86Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 13:52:31 2025 +0100 Fix for docs commit1960c3153aMerge:c895ae0d935a5d43Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 13:37:08 2025 +0100 Merge branch 'pr/203' into pre-release commitc895ae0d83Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 12:33:21 2025 +0100 New translations activitybellowmpillscomponent.json (Dutch) commit5338c95879Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 12:33:20 2025 +0100 New translations activitylapscomponent.json (Dutch) commit7d3930bfbaAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 12:33:19 2025 +0100 New translations generalitems.json (Dutch) commit0838b6cf6eAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:11:34 2025 +0100 New translations activitybellowmpillscomponent.json (Dutch) commit9776b6461aAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:11:31 2025 +0100 New translations activitylapscomponent.json (Dutch) commit8b2b6c6fc8Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:10:23 2025 +0100 New translations stravacallbackview.json (Dutch) commit6acf86fb47Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:10:09 2025 +0100 New translations summaryview.json (Dutch) commit79708f1aa9Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:10:07 2025 +0100 New translations settingsuserprofilezonecomponent.json (Dutch) commit5e93661fa0Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:10:06 2025 +0100 New translations settingsintegrationszonecomponent.json (Dutch) commitbfa7093fc4Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:10:04 2025 +0100 New translations editactivitymodalcomponent.json (Dutch) commit27036db437Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:10:03 2025 +0100 New translations navbarcomponent.json (Dutch) commitc4143435d1Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:09:48 2025 +0100 New translations activityview.json (Dutch) commit8b1cc16bc6Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:09:47 2025 +0100 New translations loginview.json (Dutch) commit3cd447368eAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:09:46 2025 +0100 New translations generalitems.json (Dutch) commitbac2b90b88Merge:d0f850dd13afbe86Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 11:06:59 2025 +0100 Merge remote-tracking branch 'origin/l10n_pre-release' into pre-release commitd0f850dd0eMerge:ed4c87d4426500ffAuthor: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 11:04:10 2025 +0100 Merge branch 'pr/208' into pre-release commit13afbe86aeAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 11:00:40 2025 +0100 New translations gearslistcomponent.json (German) commit59ad9170b0Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Mon Jun 23 10:59:50 2025 +0100 New translations gearview.json (Catalan) commit426500ff2eAuthor: C2gl <97646342+C2gl@users.noreply.github.com> Date: Mon Jun 23 11:59:36 2025 +0200 fixing some typos commited4c87d407Author: João Vitória Silva <8648976+joaovitoriasilva@users.noreply.github.com> Date: Mon Jun 23 10:55:01 2025 +0100 Silence StravaLib token warnings + bump dependencies commit6f24ac158fAuthor: C2gl <97646342+C2gl@users.noreply.github.com> Date: Mon Jun 23 01:10:40 2025 +0200 fully translated commit386e5ae853Author: C2gl <97646342+C2gl@users.noreply.github.com> Date: Mon Jun 23 00:57:42 2025 +0200 done upto strava commit56cb31288dAuthor: C2gl <97646342+C2gl@users.noreply.github.com> Date: Mon Jun 23 00:54:16 2025 +0200 next to translate - gears commit8d3158ef6cAuthor: C2gl <97646342+C2gl@users.noreply.github.com> Date: Mon Jun 23 00:25:31 2025 +0200 initial commit for fork commit935a5d43b5Author: Fredrik Fyksen <fredrik@fyksen.me> Date: Wed Jun 18 15:06:48 2025 +0200 Updated hosting guide commit56a7ff881fAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 21:02:22 2025 +0100 New translations summaryview.json (Dutch) commit9c0acab25aAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 19:35:49 2025 +0100 New translations activityview.json (Dutch) commitbfe8ae1d14Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 19:35:48 2025 +0100 New translations summaryview.json (Dutch) commit0c0a375d1aAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 19:35:47 2025 +0100 New translations activitymandabovepillscomponent.json (Dutch) commit8c4619fc8dAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 19:35:46 2025 +0100 New translations editactivitymodalcomponent.json (Dutch) commit9748f7776fAuthor: Zuhdi <rccheattest2@gmail.com> Date: Tue Jun 17 22:57:52 2025 +0700 feat: change hr zone to bar chart - return transform_activity_streams to get_public_activity_stream_by_type - commitfcad6ea3e5Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:27 2025 +0100 New translations summaryview.json (Dutch) commit515427d89bAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:26 2025 +0100 New translations activitiesview.json (Dutch) commit50a76062f0Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:24 2025 +0100 New translations activitymandabovepillscomponent.json (Dutch) commit95c6b9ef0eAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:23 2025 +0100 New translations searchview.json (Dutch) commit503b943a2eAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:22 2025 +0100 New translations settingsuserprofilezonecomponent.json (Dutch) commitb1884f4fe9Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:21 2025 +0100 New translations settingsintegrationszonecomponent.json (Dutch) commit04c899a3a4Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:20 2025 +0100 New translations gearslistcomponent.json (Dutch) commit5163263b88Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:19 2025 +0100 New translations gearsaddeditgearmodalcomponent.json (Dutch) commitae3943d352Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:18 2025 +0100 New translations editactivitymodalcomponent.json (Dutch) commit01a900b166Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:16 2025 +0100 New translations gearview.json (Dutch) commite1c006fd7eAuthor: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:15 2025 +0100 New translations loginview.json (Dutch) commit1f406e5022Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 14:39:14 2025 +0100 New translations generalitems.json (Dutch) commit9b43447128Author: João Vitória Silva <joao.vitoria.silva@pm.me> Date: Tue Jun 17 12:53:54 2025 +0100 New translations navbarcomponent.json (Dutch) commitc503c35607Author: Zuhdi <rccheattest2@gmail.com> Date: Tue Jun 17 08:01:37 2025 +0700 chore: fix review commit85c8f9410cAuthor: Zuhdi <rccheattest2@gmail.com> Date: Tue Jun 17 07:15:01 2025 +0700 fix: handle when average_heartrate and max_heartrate is null when import from strava commit7e9b3227c4Author: Zuhdi <rccheattest2@gmail.com> Date: Sun Jun 15 11:44:39 2025 +0700 feat: change default value for hrZones commitbd1ec74968Author: Zuhdi <rccheattest2@gmail.com> Date: Sun Jun 15 11:32:40 2025 +0700 feat: show HR based on zone that calculated from user birthdate (if any)
5.3 KiB
Default Credentials
- Username: admin
- Password: admin
Docker Deployment
Endurain provides a Docker image for simplified deployment. To get started, check out the docker-compose.yml.example file in the project repository and adjust it according to your setup. Supported tags are:
- latest: contains the latest released version;
- version, example "v0.3.0": contains the app state available at the time of the version specified;
- development version, example "dev_06092024": contains a development version of the app at the date specified. This is not a stable released and may contain issues and bugs. Please do not open issues if using a version like this unless asked by me.
Supported Environment Variables
Table below shows supported environment variables. Variables marked with optional "No" should be set to avoid errors.
| Environment variable | Default value | Optional | Notes |
|---|---|---|---|
| UID | 1000 | Yes | User ID for mounted volumes. Default is 1000 |
| GID | 1000 | Yes | Group ID for mounted volumes. Default is 1000 |
| TZ | UTC | Yes | Timezone definition. Useful for TZ calculation for activities that do not have coordinates associated, like indoor swim or weight training. If not specified UTC will be used. List of available time zones here. Format Europe/Lisbon expected |
| ENDURAIN_HOST | No default set | No |
Required for internal communication and Strava. For Strava https must be used. Host or local ip (example: http://192.168.1.10:8080 or https://endurain.com) |
| GEOCODES_MAPS_API | No default set | No |
Geocode maps offers a free plan consisting of 1 Request/Second. Registration necessary. |
| DB_TYPE | postgres | Yes | mariadb or postgres |
| DB_HOST | postgres | Yes | mariadb or postgres |
| DB_PORT | 5432 | Yes | 3306 or 5432 |
| DB_USER | endurain | Yes | N/A |
| DB_PASSWORD | No default set | No |
N/A |
| DB_DATABASE | endurain | Yes | N/A |
| SECRET_KEY | No default set | No |
Run openssl rand -hex 32 on a terminal to get a secret |
| FERNET_KEY | No default set | No |
Run python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" on a terminal to get a secret or go to https://fernetkeygen.com. Example output is 7NfMMRSCWcoNDSjqBX8WoYH9nTFk1VdQOdZY13po53Y= |
| ALGORITHM | HS256 | Yes | Currently only HS256 is supported |
| ACCESS_TOKEN_EXPIRE_MINUTES | 15 | Yes | Time in minutes |
| REFRESH_TOKEN_EXPIRE_DAYS | 7 | Yes | Time in days |
| JAEGER_ENABLED | false | Yes | N/A |
| JAEGER_PROTOCOL | http | Yes | N/A |
| JAEGER_HOST | jaeger | Yes | N/A |
| JAEGER_PORT | 4317 | Yes | N/A |
| BEHIND_PROXY | false | Yes | Change to true if behind reverse proxy |
| ENVIRONMENT | production | Yes | "production" and "development" allowed. "development" allows connections from localhost:8080 and localhost:5173 at the CORS level |
Table below shows the obligatory environment variables for mariadb container. You should set them based on what was also set for the Endurain container.
| Environemnt variable | Default value | Optional | Notes |
|---|---|---|---|
| MYSQL_ROOT_PASSWORD | changeme | No |
N/A |
| MYSQL_DATABASE | endurain | No |
N/A |
| MYSQL_USER | endurain | No |
N/A |
| MYSQL_PASSWORD | changeme | No |
N/A |
Table below shows the obligatory environment variables for postgres container. You should set them based on what was also set for the Endurain container.
| Environemnt variable | Default value | Optional | Notes |
|---|---|---|---|
| POSTGRES_PASSWORD | changeme | No |
N/A |
| POSTGRES_DB | endurain | No |
N/A |
| POSTGRES_USER | endurain | No |
N/A |
| PGDATA | /var/lib/postgresql/data/pgdata | No |
N/A |
To check Python backend dependencies used, use poetry file (pyproject.toml).
Frontend dependencies:
- To check npm dependencies used, use npm file (package.json)
- Logo created on Canva
Volumes
Docker image uses a non-root user, so ensure target folders are not owned by root. Non-root user should use UID and GID 1000. It is recommended to configure the following volumes for data persistence:
| Volume | Notes |
|---|---|
<local_path>/endurain/backend/logs:/app/backend/logs |
Log files for the backend |
<local_path>/endurain/backend/config:/app/backend/config |
Necessary for image and activity files persistence on docker image update |
Bulk import and file upload
.fit files are preferred. I noticed that Strava/Garmin Connect process of converting .fit to .gpx introduces additional data to the activity file leading to minor variances in the data, like for example additional meters in distance and elevation gain. Some notes:
- After the files are processed, the files are moved to the processed folder
- GEOCODES API has a limit of 1 Request/Second on the free plan, so if you have a large number of files, it might not be possible to import all in the same action
Image personalization
It is possible (v0.10.0 or higher) to personalize the login image in the login page. To do that, map the server_images directory for image persistence on container updates and:
- Set the image in the server settings zone of the settings page
- A square image is expected. Default one uses 1000px vs 1000px