From 547f1214b4dd57e99031a72fb157fa0fd27ab2b6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Apr 2026 09:09:20 +0000 Subject: [PATCH] fix(fireflyiii): respect user-configured DB credentials when using mariadb_addon When DB_CONNECTION is set to mariadb_addon, the script now checks if the user has explicitly configured DB_USERNAME, DB_PASSWORD, or DB_DATABASE in addon options. If set, those values are used instead of the MariaDB addon service discovery credentials. This fixes authentication failures when the service account doesn't have proper access. Fixes: Firefly III access denied for user 'service' issue Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/7cacda5b-d03e-47c5-b4fc-4cfb4ef2a3dc Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com> --- fireflyiii/CHANGELOG.md | 1 + fireflyiii/README.md | 6 ++--- fireflyiii/rootfs/etc/cont-init.d/99-run.sh | 25 +++++++++++++++++---- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/fireflyiii/CHANGELOG.md b/fireflyiii/CHANGELOG.md index 05e7b8cdd..32c2d0391 100644 --- a/fireflyiii/CHANGELOG.md +++ b/fireflyiii/CHANGELOG.md @@ -1,6 +1,7 @@ ## 6.5.9 (2026-03-28) - Update to latest version from firefly-iii/firefly-iii (changelog : https://github.com/firefly-iii/firefly-iii/releases) +- Fix: mariadb_addon now respects user-configured DB_USERNAME, DB_PASSWORD, and DB_DATABASE options instead of always using service discovery credentials ## 6.5.6 (2026-03-21) - Update to latest version from firefly-iii/firefly-iii (changelog : https://github.com/firefly-iii/firefly-iii/releases) diff --git a/fireflyiii/README.md b/fireflyiii/README.md index 9e474f69e..d467f9796 100644 --- a/fireflyiii/README.md +++ b/fireflyiii/README.md @@ -51,9 +51,9 @@ Configurations can be done through the app webUI, except for the following optio | `DB_CONNECTION` | list | `sqlite_internal` | Database type (sqlite_internal/mariadb_addon/mysql/pgsql) | | `DB_HOST` | str | | Database host (for external databases) | | `DB_PORT` | str | | Database port (for external databases) | -| `DB_DATABASE` | str | | Database name (for external databases) | -| `DB_USERNAME` | str | | Database username (for external databases) | -| `DB_PASSWORD` | str | | Database password (for external databases) | +| `DB_DATABASE` | str | | Database name (defaults to `firefly` for mariadb_addon) | +| `DB_USERNAME` | str | | Database username (overrides MariaDB addon service discovery if set) | +| `DB_PASSWORD` | str | | Database password (overrides MariaDB addon service discovery if set) | | `Updates` | list | | Automatic update schedule (hourly/daily/weekly) | | `silent` | bool | `true` | Silent mode - set to false for debug info | diff --git a/fireflyiii/rootfs/etc/cont-init.d/99-run.sh b/fireflyiii/rootfs/etc/cont-init.d/99-run.sh index a4639e637..5c9ecfb59 100755 --- a/fireflyiii/rootfs/etc/cont-init.d/99-run.sh +++ b/fireflyiii/rootfs/etc/cont-init.d/99-run.sh @@ -90,9 +90,26 @@ case $(bashio::config 'DB_CONNECTION') in DB_CONNECTION=mysql DB_HOST=$(bashio::services "mysql" "host") DB_PORT=$(bashio::services "mysql" "port") - DB_DATABASE=firefly - DB_USERNAME=$(bashio::services "mysql" "username") - DB_PASSWORD=$(bashio::services "mysql" "password") + + # Use user-configured database name if provided, otherwise default to 'firefly' + if bashio::config.has_value "DB_DATABASE"; then + DB_DATABASE=$(bashio::config "DB_DATABASE") + else + DB_DATABASE=firefly + fi + + # Use user-configured credentials if provided, otherwise use service discovery + if bashio::config.has_value "DB_USERNAME"; then + DB_USERNAME=$(bashio::config "DB_USERNAME") + else + DB_USERNAME=$(bashio::services "mysql" "username") + fi + if bashio::config.has_value "DB_PASSWORD"; then + DB_PASSWORD=$(bashio::config "DB_PASSWORD") + else + DB_PASSWORD=$(bashio::services "mysql" "password") + fi + export DB_CONNECTION export DB_HOST && bashio::log.blue "DB_HOST=$DB_HOST" export DB_PORT && bashio::log.blue "DB_PORT=$DB_PORT" @@ -110,7 +127,7 @@ case $(bashio::config 'DB_CONNECTION') in --skip-ssl \ -u "${DB_USERNAME}" -p"${DB_PASSWORD}" \ -h "${DB_HOST}" -P "${DB_PORT}" \ - -e "CREATE DATABASE IF NOT EXISTS \`firefly\`;" + -e "CREATE DATABASE IF NOT EXISTS \`${DB_DATABASE}\`;" ;; # Use remote