From 34b1fc86a9846b3bb64cfb89c2f5dc371c4b08db Mon Sep 17 00:00:00 2001 From: "Alexander L." Date: Mon, 28 Jul 2025 08:12:31 +0200 Subject: [PATCH] Update endurain to version v0.13.1 (#3261) --- .../bulk_import/.gitkeep | 0 .../processed/.gitkeep | 0 .../app/{logs => activity_media}/.gitkeep | 0 endurain/data/app/server_images/.gitkeep | 0 endurain/data/logs/.gitkeep | 0 endurain/docker-compose.yml | 8 +-- endurain/hooks/pre-start | 72 +++++++++++++++++++ endurain/umbrel-app.yml | 24 ++++++- 8 files changed, 97 insertions(+), 7 deletions(-) rename endurain/data/app/{files => activity_files}/bulk_import/.gitkeep (100%) rename endurain/data/app/{files => activity_files}/processed/.gitkeep (100%) rename endurain/data/app/{logs => activity_media}/.gitkeep (100%) create mode 100644 endurain/data/app/server_images/.gitkeep create mode 100644 endurain/data/logs/.gitkeep diff --git a/endurain/data/app/files/bulk_import/.gitkeep b/endurain/data/app/activity_files/bulk_import/.gitkeep similarity index 100% rename from endurain/data/app/files/bulk_import/.gitkeep rename to endurain/data/app/activity_files/bulk_import/.gitkeep diff --git a/endurain/data/app/files/processed/.gitkeep b/endurain/data/app/activity_files/processed/.gitkeep similarity index 100% rename from endurain/data/app/files/processed/.gitkeep rename to endurain/data/app/activity_files/processed/.gitkeep diff --git a/endurain/data/app/logs/.gitkeep b/endurain/data/app/activity_media/.gitkeep similarity index 100% rename from endurain/data/app/logs/.gitkeep rename to endurain/data/app/activity_media/.gitkeep diff --git a/endurain/data/app/server_images/.gitkeep b/endurain/data/app/server_images/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/endurain/data/logs/.gitkeep b/endurain/data/logs/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/endurain/docker-compose.yml b/endurain/docker-compose.yml index d14e51a5..37878435 100644 --- a/endurain/docker-compose.yml +++ b/endurain/docker-compose.yml @@ -8,7 +8,7 @@ services: PROXY_AUTH_ADD: "false" app: - image: ghcr.io/joaovitoriasilva/endurain:v0.12.7@sha256:713691f805f8d506514deb2fa757581d436b1f006f31b2eb049cd3831429b6ab + image: ghcr.io/joaovitoriasilva/endurain:v0.13.1@sha256:eba7413268b7634338b678902dbd15e808176cb9c2f422c54ab1c6063ba8c150 environment: UID: "1000" GID: "1000" @@ -21,10 +21,8 @@ services: env_file: - ${APP_DATA_DIR}/settings.env volumes: - - ${APP_DATA_DIR}/data/app/user_images:/app/backend/user_images - - ${APP_DATA_DIR}/data/app/files/bulk_import:/app/backend/files/bulk_import - - ${APP_DATA_DIR}/data/app/files/processed:/app/backend/files/processed - - ${APP_DATA_DIR}/data/app/logs:/app/backend/logs + - ${APP_DATA_DIR}/data/app:/app/backend/data + - ${APP_DATA_DIR}/data/logs:/app/backend/logs depends_on: db: condition: service_healthy diff --git a/endurain/hooks/pre-start b/endurain/hooks/pre-start index 8774289f..d38e523d 100755 --- a/endurain/hooks/pre-start +++ b/endurain/hooks/pre-start @@ -4,6 +4,8 @@ set -euo pipefail # This scripts checks the environment file for placeholder values and replaces them with generated keys or system variables. APP_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")/..")" +APP_DATA_DIR="$APP_DIR/data" +DESIRED_OWNER="1000:1000" ENV_FILE="$APP_DIR/settings.env" # Check if the file exists @@ -39,4 +41,74 @@ else echo "ENDURAIN_HOST is already set. No changes made." fi +set_correct_permissions() { + local -r path="${1}" + + # Check if the path exists (file or directory) + if [[ -e "${path}" ]]; then + owner=$(stat -c "%u:%g" "${path}") + + if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then + chown "${DESIRED_OWNER}" "${path}" + echo "Changed ownership of ${path} to ${DESIRED_OWNER}" + fi + else + echo "Skipping ${path} - path does not exist" + fi +} + +# Handle directory restructuring for version 0.13.0 +restructure_directories() { + local -r app_dir="${APP_DATA_DIR}/app" + + # Check if we need to do the restructuring + if [[ -d "${app_dir}/files" && ! -d "${app_dir}/activity_files" ]]; then + echo "Restructuring directories for Endurain v0.13.0..." + + # Rename files directory to activity_files + if mv "${app_dir}/files" "${app_dir}/activity_files" 2>/dev/null; then + echo "Renamed ${app_dir}/files to ${app_dir}/activity_files" + else + echo "Failed to rename ${app_dir}/files to ${app_dir}/activity_files" + fi + fi + + # Create new directories if they don't exist + mkdir -p "${app_dir}/activity_media" + echo "Created ${app_dir}/activity_media directory" + + mkdir -p "${app_dir}/server_images" + echo "Created ${app_dir}/server_images directory" + + # Move logs directory from app/logs to logs (at root level) + if [[ -d "${app_dir}/logs" && ! -d "${APP_DATA_DIR}/logs" ]]; then + if mv "${app_dir}/logs" "${APP_DATA_DIR}/logs" 2>/dev/null; then + echo "Moved ${app_dir}/logs to ${APP_DATA_DIR}/logs" + else + echo "Failed to move ${app_dir}/logs to ${APP_DATA_DIR}/logs" + fi + elif [[ ! -d "${APP_DATA_DIR}/logs" ]]; then + # Create logs directory if it doesn't exist + mkdir -p "${APP_DATA_DIR}/logs" + echo "Created ${APP_DATA_DIR}/logs directory" + fi +} + +# Perform directory restructuring +if [[ -d "${APP_DATA_DIR}/app" ]]; then + restructure_directories +fi + +# Set permissions recursively on the entire /app directory and its subdirectories +if [[ -d "${APP_DATA_DIR}/app" ]]; then + chown -R "${DESIRED_OWNER}" "${APP_DATA_DIR}/app" + echo "Set recursive ownership of ${APP_DATA_DIR}/app to ${DESIRED_OWNER}" +fi + +# Set permissions recursively on the entire /logs directory and its subdirectories +if [[ -d "${APP_DATA_DIR}/logs" ]]; then + chown -R "${DESIRED_OWNER}" "${APP_DATA_DIR}/logs" + echo "Set recursive ownership of ${APP_DATA_DIR}/logs to ${DESIRED_OWNER}" +fi + exit 0 diff --git a/endurain/umbrel-app.yml b/endurain/umbrel-app.yml index 7f58dc34..990a1e62 100644 --- a/endurain/umbrel-app.yml +++ b/endurain/umbrel-app.yml @@ -3,7 +3,7 @@ id: endurain name: Endurain tagline: Fitness tracking, Open Source, Self-Hosted category: social -version: "0.12.7" +version: "0.13.1" port: 8865 description: >- Endurain is a self-hosted fitness tracking service designed to give users full control over their data and hosting environment. @@ -42,5 +42,25 @@ gallery: defaultUsername: "admin" defaultPassword: "admin" dependencies: [] -releaseNotes: "" +releaseNotes: >- + ⚠️ This update includes database schema changes - consider backing up your database. A relogin is recommended after the update. + + + New features and improvements: + - Gear components and cost tracking + - First day of the week per user + - System notifications + - Add images to activities + - Support for .tcx and .gz files + - Activity private notes + - Indoor walking support + - Windsurf gear type and activity support + - Activity support for stand up paddling and surfing + - Improved bulk import with duplicate detection + - Enhanced profile export and import + - New follower activity view in Home + - Various bug fixes and performance improvements + + + Full release notes can be found at https://github.com/joaovitoriasilva/endurain/releases path: ""