Compare commits

..

2 Commits

Author SHA1 Message Date
alexbelgium
acfa7ec0fa fix(wger): stop the startup log from naming one database source
wger reads PS_DATABASE_URI before the DJANGO_DB_* variables (settings/main.py
on both 2.6 and 2.7), so a user who sets it through env_vars gets a database
the DJANGO_DB_* defaults have no part in. The informational line asserted
DJANGO_DB_DATABASE unconditionally and printed its value; it now names no
single variable and logs no value, since PS_DATABASE_URI carries credentials.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 06:16:32 +02:00
claude[bot]
c30629aa8b fix(wger): declare the database in the environment for wger 2.7
wger 2.7 removed the implicit sqlite fallback from settings/main.py, so
DJANGO_DB_ENGINE / DJANGO_DB_DATABASE are now mandatory and the add-on
aborted at startup with ImproperlyConfigured. Set them explicitly,
keeping the persistent /data/database.sqlite path.

Closes #3043

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 03:18:59 +00:00
8 changed files with 45 additions and 32 deletions

View File

@@ -1,8 +1,4 @@
## v3.25.1 (2026-09-05)
- Update to latest version from mealie-recipes/mealie (changelog : https://github.com/mealie-recipes/mealie/releases)
- Build the ingress frontend with pnpm and the upstream lockfile: upstream dropped frontend/yarn.lock in v3.24.0, so the previous yarn install resolved dependencies unpinned and the build broke on a vuetify release without "vuetify/labs/rules"
## v3.24.0 (2026-08-29)
- Update to latest version from mealie-recipes/mealie (changelog : https://github.com/mealie-recipes/mealie/releases)

View File

@@ -15,30 +15,24 @@
#################
# Stage 1: Build Frontend with SUB_PATH
# Mirrors upstream docker/Dockerfile: node:24 + pnpm, installing from the
# committed pnpm-lock.yaml. Upstream dropped frontend/yarn.lock in v3.24.0, so a
# yarn install here resolved every dependency fresh and eventually picked a
# vuetify release without "vuetify/labs/rules", breaking "nuxt generate".
FROM node:24 AS frontend-builder
FROM node:22 AS frontend-builder
# Set the SUB_PATH environment variable
ARG SUB_PATH="/mealie/"
ENV SUB_PATH=$SUB_PATH
ENV MEALIE_VERSION="v3.25.1"
RUN npm install --global pnpm@11
ENV MEALIE_VERSION="v3.24.0"
# Clone the Mealie repository to get the frontend source code
WORKDIR /frontend
# hadolint ignore=DL3003
RUN mkdir -p /frontend/tempdir && cd /frontend/tempdir && \
git clone --depth 1 --branch "$MEALIE_VERSION" https://github.com/mealie-recipes/mealie.git . && \
cp -a frontend/. /frontend/ && cd /frontend && rm -rf tempdir && \
pnpm install --frozen-lockfile
git clone --branch "$MEALIE_VERSION" https://github.com/mealie-recipes/mealie.git . && \
cp -rf frontend/* /frontend && cd /frontend && rm -rf tempdir && \
yarn install --prefer-offline --frozen-lockfile --non-interactive --production=false --network-timeout 1000000
# Build the frontend
RUN pnpm generate
RUN yarn generate
# Stage 2: Build the Final Image
FROM hkotel/mealie:latest

View File

@@ -114,4 +114,4 @@ schema:
slug: mealie
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "v3.25.1"
version: "v3.24.0"

View File

@@ -1,11 +1,11 @@
{
"github_beta": "true",
"github_fulltag": "true",
"last_update": "2026-09-05",
"last_update": "2026-08-29",
"paused": "false",
"repository": "alexbelgium/hassio-addons",
"slug": "mealie",
"source": "github",
"upstream_repo": "mealie-recipes/mealie",
"upstream_version": "v3.25.1"
"upstream_version": "v3.24.0"
}

View File

@@ -1,9 +1,7 @@
## 2.6.4 (2026-09-04)
## 2.6.4 (2026-09-05)
- Fix the add-on failing to start on a fresh install with `django.core.exceptions.ImproperlyConfigured: Set the DJANGO_DB_ENGINE environment variable`. The upstream `wger/server` image stopped shipping database defaults, and `settings/main.py` reads `DJANGO_DB_ENGINE` and `DJANGO_DB_DATABASE` with no fallback, so the add-on now sets them explicitly to sqlite at `/data/database.sqlite` — the same location the previous startup rewrite produced, so existing databases keep working.
- Set `DJANGO_PERFORM_MIGRATIONS=True`, as upstream's own docker deployment does, so an existing database gets new migrations applied when the add-on is rebuilt against a newer upstream release.
- Drop the startup rewrite of the database path in the Python settings: upstream no longer hardcodes `/home/wger/db/database.sqlite` anywhere, so the rewrite silently did nothing and only logged a warning.
- ⚠ MAJOR CHANGE : switch to the new config logic from homeassistant. Your configuration file will have migrated from /config/addons_config/wger to a folder only accessible from my Filebrowser addon called /addon_configs/xxx-wger. This avoids the addon to mess with your homeassistant configuration folder, and allows to backup the options. Migration is automatic only for a config.yaml sitting at the default /config/addons_config/wger/config.yaml. If you had pointed CONFIG_LOCATION somewhere else inside the homeassistant config folder, or had a custom script at /homeassistant/addons_autoscripts/wger.sh, move the file to /addon_configs/xxx-wger/ by hand and update the option. Please be sure to update all your links ! For more information, see here : https://developers.home-assistant.io/blog/2023/11/06/public-addon-config/
- Fix the add-on failing to start with `ImproperlyConfigured: Set the DJANGO_DB_ENGINE environment variable`: wger 2.7 removed the implicit sqlite fallback from its settings, so the database is now declared explicitly through `DJANGO_DB_ENGINE` / `DJANGO_DB_DATABASE`, still pointing at the persistent `/data/database.sqlite`
- Replace the misleading "Unable to find Python settings containing database path" warning with an informational message, as wger no longer hardcodes that path
## 2.6.3 (2026-08-01)

View File

@@ -28,17 +28,24 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \
S6_SERVICES_GRACETIME=0
# The upstream image no longer ships database defaults; settings/main.py reads
# DJANGO_DB_ENGINE and DJANGO_DB_DATABASE with no fallback, so they must be set here
ENV SYNC_EXERCISES_ON_STARTUP=True \
DOWNLOAD_EXERCISE_IMAGES_ON_STARTUP=True \
FROM_EMAIL='wger Workout Manager <wger@example.com>' \
DJANGO_DB_ENGINE="django.db.backends.sqlite3" \
DJANGO_DB_DATABASE="/data/database.sqlite" \
DJANGO_PERFORM_MIGRATIONS=True \
DJANGO_MEDIA_ROOT="/data/media" \
DJANGO_STATIC_ROOT="/data/static"
# wger 2.7 dropped the implicit sqlite fallback in settings/main.py, so the
# database has to be declared through the environment or Django aborts with
# "Set the DJANGO_DB_ENGINE environment variable".
# USER/PASSWORD/HOST/PORT are ignored by the sqlite backend; they are set
# because wger 2.6 read them without a default, so both base images boot.
ENV DJANGO_DB_ENGINE="django.db.backends.sqlite3" \
DJANGO_DB_DATABASE="/data/database.sqlite" \
DJANGO_DB_USER="" \
DJANGO_DB_PASSWORD="" \
DJANGO_DB_HOST="" \
DJANGO_DB_PORT="5432"
USER root
RUN echo "wger ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \

View File

@@ -5,13 +5,12 @@ description: manage your personal workouts, weight and diet plans
image: ghcr.io/alexbelgium/wger-{arch}
map:
- share:rw
- addon_config:rw
- homeassistant_config:rw
- config:rw
- ssl:ro
name: Wger
options:
env_vars: []
CONFIG_LOCATION: /config/config.yaml
CONFIG_LOCATION: /config/addons_config/wger/config.yaml
ports:
80/tcp: 9927
ports_description:

View File

@@ -51,6 +51,25 @@ migrate_database() {
fi
}
############################
# Change database location #
############################
echo "... set database path"
mapfile -t SETTINGS_FILES < <(grep -rl --include='*.py' '/home/wger/db/database.sqlite' /home 2> /dev/null || true)
if [ "${#SETTINGS_FILES[@]}" -gt 0 ]; then
for settings_file in "${SETTINGS_FILES[@]}"; do
sed -i "s|/home/wger/db/database.sqlite|/data/database.sqlite|g" "$settings_file"
done
else
# Expected on wger >= 2.7: the settings no longer hardcode a database path,
# it comes from the environment instead. Which variable wins is decided by
# wger, not here: PS_DATABASE_URI takes precedence over the DJANGO_DB_*
# defaults set in the Dockerfile, so no single one is named, and no value
# is logged (PS_DATABASE_URI carries credentials).
bashio::log.info "Settings do not hardcode a database path, the database is taken from the environment"
fi
#####################
# Adapt directories #
#####################