diff --git a/seafile/CHANGELOG.md b/seafile/CHANGELOG.md index bbb889c2b..9bca56a89 100644 --- a/seafile/CHANGELOG.md +++ b/seafile/CHANGELOG.md @@ -2,6 +2,9 @@ - Added support for configuring extra environment variables via the `env_vars` add-on option alongside config.yaml. See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details. +## 12.0.15 (18-12-2025) +- Normalize `SERVICE_URL` and `FILE_SERVER_ROOT` values in `conf/seahub_settings.py` based on the add-on configuration to generate valid download links. + ## 12.0.14 (13-09-2025) - Update to latest version from franchetti/seafile-arm diff --git a/seafile/README.md b/seafile/README.md index 3847784a5..13947e27d 100644 --- a/seafile/README.md +++ b/seafile/README.md @@ -64,6 +64,8 @@ Webui can be found at (Seahub) and **File server URL**: The add-on now writes `SERVICE_URL` and `FILE_SERVER_ROOT` directly to `conf/seahub_settings.py`. `SERVICE_URL` uses the `url` option when set (otherwise `SERVER_IP` with port `8000`), while `FILE_SERVER_ROOT` follows the `FILE_SERVER_ROOT` option (defaulting to `http://:8082`). Keep `FILE_SERVER_ROOT` aligned with your accessible file server endpoint so download links resolve correctly. + ### Options | Option | Type | Default | Description | diff --git a/seafile/config.yaml b/seafile/config.yaml index 567ae0378..101336a62 100644 --- a/seafile/config.yaml +++ b/seafile/config.yaml @@ -128,5 +128,5 @@ services: slug: seafile udev: true url: https://github.com/alexbelgium/hassio-addons/tree/master/seafile -version: 12.0.14 +version: 12.0.15 webui: http://[HOST]:[PORT:8000] diff --git a/seafile/rootfs/etc/cont-init.d/99-run.sh b/seafile/rootfs/etc/cont-init.d/99-run.sh index 180dad823..81d31fd9e 100755 --- a/seafile/rootfs/etc/cont-init.d/99-run.sh +++ b/seafile/rootfs/etc/cont-init.d/99-run.sh @@ -65,6 +65,54 @@ sed -i "s|/shared|$DATA_LOCATION|g" /docker_entrypoint.sh sed -i "s|/shared|$DATA_LOCATION|g" /home/seafile/*.sh #sed -i "s=cp -r ./media $DATA_LOCATION/=chown -R seafile:seafile $DATA_LOCATION/* && chmod -R 777 $DATA_LOCATION/media && cp -rnf ./media/. $DATA_LOCATION/media ||true=g" /home/seafile/*.sh +############################################# +# Configure service URL and file server root # +############################################# + +bashio::log.info "Configuring Seafile URLs" + +SERVER_IP_CONFIG=$(bashio::config 'SERVER_IP') +SERVICE_URL_CONFIG=$(bashio::config 'url') +FILE_SERVER_ROOT_CONFIG=$(bashio::config 'FILE_SERVER_ROOT') +FILE_PORT_CONFIG=$(bashio::config 'PORT') + +DEFAULT_HOST=${SERVER_IP_CONFIG:-homeassistant.local} +DEFAULT_FILE_PORT=${FILE_PORT_CONFIG:-8082} + +normalize_url() { + local raw_url="${1%/}" + local default_scheme="$2" + + if [[ -z "${raw_url}" || "${raw_url}" == "null" ]]; then + echo "" + return + fi + + if [[ "${raw_url}" =~ ^https?:// ]]; then + echo "${raw_url}" + else + echo "${default_scheme}://${raw_url}" + fi +} + +SERVICE_URL_VALUE=$(normalize_url "${SERVICE_URL_CONFIG:-${DEFAULT_HOST}:8000}" "http") +FILE_SERVER_ROOT_VALUE=$(normalize_url "${FILE_SERVER_ROOT_CONFIG:-${DEFAULT_HOST}:${DEFAULT_FILE_PORT}}" "http") + +SEAHUB_SETTINGS_FILE="${DATA_LOCATION}/conf/seahub_settings.py" +mkdir -p "$(dirname "${SEAHUB_SETTINGS_FILE}")" +touch "${SEAHUB_SETTINGS_FILE}" + +sed -i '/^SERVICE_URL *=/d' "${SEAHUB_SETTINGS_FILE}" +sed -i '/^FILE_SERVER_ROOT *=/d' "${SEAHUB_SETTINGS_FILE}" + +{ + echo "SERVICE_URL = \"${SERVICE_URL_VALUE}\"" + echo "FILE_SERVER_ROOT = \"${FILE_SERVER_ROOT_VALUE}\"" +} >> "${SEAHUB_SETTINGS_FILE}" + +bashio::log.info "SERVICE_URL set to ${SERVICE_URL_VALUE}" +bashio::log.info "FILE_SERVER_ROOT set to ${FILE_SERVER_ROOT_VALUE}" + ################### # Define database # ################### diff --git a/seafile/updater.json b/seafile/updater.json index d385e56fb..b1147b1ed 100644 --- a/seafile/updater.json +++ b/seafile/updater.json @@ -1,6 +1,6 @@ { "github_fulltag": "true", - "last_update": "13-09-2025", + "last_update": "18-12-2025", "paused": false, "repository": "alexbelgium/hassio-addons", "slug": "seafile",