diff --git a/fireflyiii/CHANGELOG.md b/fireflyiii/CHANGELOG.md index 1d1528f0b..4bd18c2a8 100644 --- a/fireflyiii/CHANGELOG.md +++ b/fireflyiii/CHANGELOG.md @@ -1,10 +1,14 @@ +- Allowed automatic update in hourly, daily or weekly setting from addon options ## 5.6.10 (09-01-2022) + - Update to latest version from firefly-iii/firefly-iii ## 5.6.9 (04-01-2022) + - Update to latest version from firefly-iii/firefly-iii ## 5.6.8 (29-12-2021) + - Update to latest version from firefly-iii/firefly-iii - Initial release diff --git a/fireflyiii/Dockerfile b/fireflyiii/Dockerfile index 6ba05707c..4599f5b7f 100644 --- a/fireflyiii/Dockerfile +++ b/fireflyiii/Dockerfile @@ -34,8 +34,19 @@ FROM ${BUILD_FROM} # Copy local files COPY rootfs/ / +# Modules +ARG MODULES="00-banner.sh 00-global_var.sh 90-config_yaml.sh" + +# Automatic modules download +RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash); fi && \ + if ! command -v curl >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends curl || apk add --no-cache curl); fi && \ + mkdir -p /tmpscripts /etc/cont-init.d && \ + for scripts in $MODULES; do curl -L -f -s "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/zzz_templates/$scripts" -o /tmpscripts/"$scripts"; done && \ + if [ -d /etc/cont-init.d ]; then /bin/cp -rf /tmpscripts/* /etc/cont-init.d/ && chmod -R 755 /etc/cont-init.d; fi && \ + rm -rf /tmpscripts || printf '%s\n' "${MODULES:-}" > /MODULESFILE + # Manual apps -ENV PACKAGES="" +ENV PACKAGES="cron" # Automatic apps & bashio RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash); fi && \ @@ -51,7 +62,7 @@ RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get RUN chmod 777 /entrypoint.sh ENTRYPOINT [ "/usr/bin/env" ] -CMD [ "/entrypoint.sh" ] +CMD [ "/entrypoint.sh" ] ############ # 5 Labels # diff --git a/fireflyiii/Readme.md b/fireflyiii/Readme.md index 963dad6b1..7b1ff6483 100644 --- a/fireflyiii/Readme.md +++ b/fireflyiii/Readme.md @@ -4,7 +4,7 @@ [donation-badge]: https://img.shields.io/badge/Buy%20me%20a%20coffee-%23d32f2f?logo=buy-me-a-coffee&style=flat&logoColor=white -![Supports +![Supports Architecture][aarch64-shield] ![Supports amd64 Architecture][amd64-shield] ![Supports armhf Architecture][armhf-shield] ![Supports armv7 Architecture][armv7-shield] ![Supports smb mounts][smb-shield] @@ -19,7 +19,7 @@ This addon is based on the docker image https://hub.docker.com/r/fireflyiii/core ## Configuration -PLEASE CHANGE YOUR APP_KEY BEFORE FIRST LAUNCH! YOU WON'T BE ABLE AFTERWRADS WITHOUT RESETTING YOUR DATABASE. +PLEASE CHANGE YOUR APP_KEY BEFORE FIRST LAUNCH! YOU WON'T BE ABLE AFTERWRADS WITHOUT RESETTING YOUR DATABASE. Options can be configured through two ways : @@ -34,6 +34,7 @@ Options can be configured through two ways : "DB_DATABASE": "CHANGEME" # only needed if using a remote database "DB_USERNAME": "CHANGEME" # only needed if using a remote database "DB_PASSWORD": "CHANGEME" # only needed if using a remote database +"Updates": hourly|daily|weekly # Sets an automatic update ``` - Config.yaml diff --git a/fireflyiii/config.json b/fireflyiii/config.json index c7cd1d92f..edaacb870 100644 --- a/fireflyiii/config.json +++ b/fireflyiii/config.json @@ -1,27 +1,20 @@ { "apparmor": true, - "arch": [ - "aarch64", - "amd64", - "armv7", - "armhf" - ], + "arch": ["aarch64", "amd64", "armv7", "armhf"], "boot": "auto", "description": "A free and open source personal finance manager", "devices": [], "environment": { - "TRUSTED_PROXIES": "**" + "TRUSTED_PROXIES": "**", + "DB_DATABASE": "/config/addons_config/fireflyiii/database/database.sqlite" }, - "map": [ - "config:rw", - "share:rw", - "ssl" - ], + "map": ["config:rw", "share:rw", "ssl"], "name": "Firefly iii", "options": { "DB_CONNECTION": "sqlite_internal", "APP_KEY": "CHANGEME_32_CHARS_EuC5dfn3LAPzeO", - "CONFIG_LOCATION": "/config/addons_config/fireflyiii/config.yaml" + "CONFIG_LOCATION": "/config/addons_config/fireflyiii/config.yaml", + "Updates": "daily" }, "ports": { "8080/tcp": 3473 @@ -37,12 +30,11 @@ "DB_PORT": "str?", "DB_DATABASE": "str?", "DB_USERNAME": "str?", - "DB_PASSWORD": "str?" + "DB_PASSWORD": "str?", + "Updates": "list(|hourly|daily|weekly)?" }, "slug": "fireflyiii", - "services": [ - "mysql:want" - ], + "services": ["mysql:want"], "upstream": "5.6.10", "url": "https://github.com/alexbelgium/hassio-addons", "version": "5.6.10-2", diff --git a/fireflyiii/rootfs/entrypoint.sh b/fireflyiii/rootfs/entrypoint.sh index 0a4d34c5f..ba3d7c058 100644 --- a/fireflyiii/rootfs/entrypoint.sh +++ b/fireflyiii/rootfs/entrypoint.sh @@ -5,7 +5,7 @@ echo "Starting..." # Starting scripts # #################### -for SCRIPTS in /scripts/*; do +for SCRIPTS in /etc/cont-init.d/*; do [ -e "$SCRIPTS" ] || continue echo "$SCRIPTS: executing" chown "$(id -u)":"$(id -g)" "$SCRIPTS" diff --git a/fireflyiii/rootfs/etc/cont-init.d/00-aaa_dockerfile_backup.sh b/fireflyiii/rootfs/etc/cont-init.d/00-aaa_dockerfile_backup.sh index 1a3fd0934..29a2a88cc 100644 --- a/fireflyiii/rootfs/etc/cont-init.d/00-aaa_dockerfile_backup.sh +++ b/fireflyiii/rootfs/etc/cont-init.d/00-aaa_dockerfile_backup.sh @@ -1,5 +1,22 @@ -#!/bin/bash +#!/bin/bash # If dockerfile failed install manually +if [ -e "/MODULESFILE" ]; then + echo "Executing modules script" + PACKAGES=$(/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends bash || apk add --no-cache bash); fi && + if ! command -v curl >/dev/null 2>/dev/null; then (apt-get update && apt-get install -yqq --no-install-recommends curl || apk add --no-cache curl); fi && + mkdir -p /tmpscripts /etc/cont-init.d && + for scripts in $MODULES; do curl -L -f -s "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/zzz_templates/$scripts" -o /tmpscripts/"$scripts"; done && + if [ -d /etc/cont-init.d ]; then /bin/cp -rf /tmpscripts/* /etc/cont-init.d/ && chmod -R 755 /etc/cont-init.d; fi && + rm -rf /tmpscripts || printf '%s\n' "${MODULES:-}" >/MODULESFILE + ) >/dev/null + +fi + if [ -e "/ENVFILE" ]; then echo "Executing script" PACKAGES=$(]*$/d' /config/addons_config/fireflyiii/APP_KEY # Save if new if [ "$CURRENT" != "$APP_KEY" ]; then -echo "$APP_KEY" >>/config/addons_config/fireflyiii/APP_KEY_BACKUP.txt + echo "$APP_KEY" >>/config/addons_config/fireflyiii/APP_KEY_BACKUP.txt fi ################### @@ -38,6 +38,7 @@ sqlite_internal) bashio::log.info "Using built in sqlite" # Set variable export DB_CONNECTION=sqlite + export DB_DATABASE=/config/addons_config/fireflyiii/database/database.sqlite # Creating database mkdir -p /config/addons_config/fireflyiii/database rm -r /var/www/html/storage/database @@ -53,9 +54,9 @@ mariadb_addon) bashio::log.info "Using MariaDB addon. Requirements : running MariaDB addon. Detecting values..." if ! bashio::services.available 'mysql'; then bashio::log.fatal \ - "Local database access should be provided by the MariaDB addon" + "Local database access should be provided by the MariaDB addon" bashio::exit.nok \ - "Please ensure it is installed and started" + "Please ensure it is installed and started" fi # Use values @@ -76,9 +77,9 @@ mariadb_addon) apt-get clean bashio::log.info "Creating database for Firefly-iii if required" mysql \ - -u "${DB_USERNAME}" -p"${DB_PASSWORD}" \ - -h "${DB_HOST}" -P "${DB_PORT}" \ - -e "CREATE DATABASE IF NOT EXISTS \`firefly\` ;" + -u "${DB_USERNAME}" -p"${DB_PASSWORD}" \ + -h "${DB_HOST}" -P "${DB_PORT}" \ + -e "CREATE DATABASE IF NOT EXISTS \`firefly\` ;" ;; # Use remote @@ -94,8 +95,23 @@ mariadb_addon) esac # Install database -php artisan migrate --seed -php artisan firefly-iii:upgrade-database +bashio::log.info "Updating database" +php artisan migrate --seed >/dev/null +php artisan firefly-iii:upgrade-database >/dev/null + +################ +# CRON OPTIONS # +################ + +# Align update with options +echo "" +FREQUENCY=$(bashio::config 'Updates') +bashio::log.info "$FREQUENCY updates" +echo "" + +# Sets cron // do not delete this message +cp /templates/cronupdate /etc/cron.${FREQUENCY}/ +chmod 775 /etc/cron.${FREQUENCY}/cronupdate ############## # LAUNCH APP # diff --git a/fireflyiii/rootfs/templates/cronupdate b/fireflyiii/rootfs/templates/cronupdate new file mode 100644 index 000000000..681eb63b7 --- /dev/null +++ b/fireflyiii/rootfs/templates/cronupdate @@ -0,0 +1,3 @@ +#!/bin/bash + +/usr/local/bin/php /var/www/html/artisan firefly:cron