58 Commits

Author SHA1 Message Date
Alexandre
d8aa25cd5d Only full words 2026-04-02 19:01:01 +02:00
github-actions
cde0aff431 Github bot : issues linked to readme 2026-04-02 15:59:55 +00:00
github-actions
3f4156ec6a GitHub bot: changelog [nobuild] 2026-04-02 15:40:06 +00:00
Alexandre
928a8466f2 Update version to 3.2.0-8 in config.yaml 2026-04-02 17:37:38 +02:00
Alexandre
a0511bc872 Refactor entrypoint script for direct execution
Replaced sourcing of init scripts with direct bash execution. Removed application readiness check and cleanup logic.
2026-04-02 17:37:22 +02:00
Alexandre
dc51a74be1 Update 32-nginx_ingress.sh 2026-04-02 17:35:34 +02:00
github-actions
01fa96c90e GitHub bot: changelog [nobuild] 2026-04-02 15:04:02 +00:00
Alexandre
d2aee7844a Bump version from 3.2.0-6 to 3.2.0-7 2026-04-02 16:59:19 +02:00
Alexandre
0d5e1d2e0b Merge pull request #2626 from alexbelgium/copilot/fix-grep-option-error
Fix BusyBox grep -Z incompatibility in standalone mode init
2026-04-02 16:58:44 +02:00
Alexandre
dcc5784e1a Update maintainerr/rootfs/ha_entrypoint.sh
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-02 16:58:35 +02:00
copilot-swe-agent[bot]
c5be20a4c3 Fix BusyBox grep -Z incompatibility in 00-banner.sh and fix bash vs source in maintainerr ha_entrypoint.sh
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/76d4cd88-b038-47fa-9de0-71afaf1dd19b

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-04-02 14:23:59 +00:00
github-actions
b5a1b54555 GitHub bot: changelog [nobuild] 2026-04-02 13:21:05 +00:00
Alexandre
dbf3a910c3 Bump version from 3.2.0-5 to 3.2.0-6 2026-04-02 15:18:34 +02:00
Alexandre
e41a3c14c9 Update ha_entrypoint.sh 2026-04-02 15:18:05 +02:00
github-actions
d9b62defba GitHub bot: sanitize (spaces + LF endings) & chmod [nobuild] 2026-04-02 12:16:20 +00:00
Alexandre
bc3d9805e6 Merge pull request #2625 from alexbelgium/copilot/implement-ingress-nginx-layer
Add ingress support to maintainerr addon
2026-04-02 14:15:31 +02:00
copilot-swe-agent[bot]
24d0670843 Fix: source cont-init.d scripts instead of bash to inherit bashio functions
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/88474b87-22ad-4e13-9d5c-8567d0b4098f

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-04-02 12:08:30 +00:00
Alexandre
6fc22476e8 Update maintainerr/rootfs/ha_entrypoint.sh
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-02 14:02:35 +02:00
Alexandre
2a5f2cfb73 Update backend server port in upstream configuration 2026-04-02 12:56:31 +02:00
Alexandre
35e88361d3 Update maintainerr/rootfs/etc/nginx/includes/upstream.conf
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-02 12:55:42 +02:00
Alexandre
fdaed2d031 Update maintainerr/rootfs/ha_entrypoint.sh
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-02 12:54:55 +02:00
copilot-swe-agent[bot]
f70b17b384 Address code review: explicit nginx config path, unused var, consistent capitalization
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/14f6643d-9d4f-4c6d-8993-0dbe4404c35d

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-04-02 09:29:34 +00:00
copilot-swe-agent[bot]
703e5a4172 Add ingress support with nginx reverse proxy for maintainerr addon
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/14f6643d-9d4f-4c6d-8993-0dbe4404c35d

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-04-02 09:28:29 +00:00
github-actions
fabf324ee3 GitHub bot: changelog [nobuild] 2026-04-02 08:51:52 +00:00
Alexandre
9c3ad22217 Update config.yaml 2026-04-02 10:49:55 +02:00
Alexandre
aaa244b460 Merge pull request #2624 from alexbelgium/copilot/fix-addon-unbound-variable
[WIP] Fix unbound variable issue in GitHub Actions workflow
2026-04-02 07:13:03 +02:00
copilot-swe-agent[bot]
332401bb5c fix: move ADDON_LOWER assignment inside while loop to fix unbound variable error
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/fa06596a-da9b-4c3b-a9e0-76b955371d3e

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-04-02 05:12:48 +00:00
copilot-swe-agent[bot]
40602ffc75 Initial plan 2026-04-02 05:12:05 +00:00
Alexandre
291b6a3d55 Fix YAML syntax for DATA_DIR in config.yaml nobuid 2026-04-01 14:34:44 +02:00
github-actions
f23fca2cae GitHub bot: changelog [nobuild] 2026-04-01 11:32:07 +00:00
github-actions
05547b2be6 Github bot : issues linked to readme 2026-04-01 11:29:14 +00:00
Alexandre
5fccc423d9 Merge pull request #2621 from alexbelgium/copilot/fix-openvpn-config-selection
Fix OpenVPN startup failure: bad substitution in verbosity parameter
2026-04-01 13:28:52 +02:00
Alexandre
bc5e425f15 Update config.yaml 2026-04-01 13:28:45 +02:00
Alexandre
e4ac13580a Merge pull request #2623 from alexbelgium/copilot/fix-addon-startup-issue
Fix Maintainerr addon startup failure: symlink contents inside Docker VOLUME instead of replacing it
2026-03-31 22:36:11 +02:00
Alexandre
f289752fa6 Update version to 3.2.0-3 in config.yaml 2026-03-31 22:35:55 +02:00
Alexandre
0b32970717 Update config.yaml 2026-03-31 22:35:41 +02:00
copilot-swe-agent[bot]
9235b23a93 fix: symlink contents inside /opt/data instead of replacing Docker VOLUME
The upstream Maintainerr image declares /opt/data as a Docker VOLUME.
Attempting to rm -rf /opt/data fails with "Resource busy" because mount
points cannot be removed. Instead, we now:
1. Copy seed data from /opt/data to /config (persistent storage)
2. Clear contents inside /opt/data (rm -rf /opt/data/*)
3. Symlink each item in /config back into /opt/data

This ensures the VOLUME directory stays intact while all data is
redirected to persistent storage.

Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/82a46feb-2e9c-4c40-b193-614167e6d5c3

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-03-31 18:55:51 +00:00
copilot-swe-agent[bot]
33654b0aa5 Initial plan 2026-03-31 18:51:06 +00:00
copilot-swe-agent[bot]
385ea4ba04 Fix bad substitution in OpenVPN verbosity parameter: ${$log_level} → ${log_level}
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/d37f963b-d7de-45b8-885a-ae3ecf34eb80

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-03-31 17:08:29 +00:00
copilot-swe-agent[bot]
b019ecff61 Initial plan 2026-03-31 17:03:23 +00:00
Alexandre
75242b5a85 Merge pull request #2620 from alexbelgium/copilot/fix-configuration-loss-after-restart
Fix maintainerr config lost after container restart
2026-03-31 10:54:00 +02:00
copilot-swe-agent[bot]
e907952d81 Fix maintainerr persistence: symlink /opt/data → /config instead of wrong path change
The upstream app hardcodes /opt/data for database and logs. The Docker
VOLUME at /opt/data is not persistent across HA addon updates. Symlink
/opt/data → /config (persistent via addon_config:rw) so hardcoded paths
write to persistent storage. Reverts incorrect /addon_configs path.

Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/35758465-e22e-40d7-81c8-02d05c375a27

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-03-31 08:51:24 +00:00
copilot-swe-agent[bot]
51bb0fdceb Fix maintainerr config lost after restart: use persistent /addon_configs/maintainerr path
The entrypoint was setting DATA_DIR="/config" which is NOT a persistent
path in HA addon containers using addon_config:rw with init: false.
Changed to /addon_configs/maintainerr (the persistent path mapped by
addon_config:rw in config.yaml), matching the pattern used by the
cleanuparr addon.

Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/40b7927f-cd03-4b83-a80a-ad56bd6dce32

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-03-31 08:32:12 +00:00
copilot-swe-agent[bot]
4974eff216 Initial plan 2026-03-31 08:23:02 +00:00
github-actions
20c15bf86a GitHub bot : README updated 2026-03-30 17:19:07 +00:00
Alexandre
3afb0b502b Remove ARMv7 architecture from README
Removed ARMv7 architecture from the README.
2026-03-30 17:12:38 +02:00
Alexandre
b595d806ff Fix variable name for addon comparison in workflow 2026-03-30 16:43:00 +02:00
Alexandre
a5621326f7 Fix existing comment check in workflow YAML 2026-03-30 16:36:48 +02:00
github-actions
d4b1240ebb GitHub bot: changelog [nobuild] 2026-03-30 07:27:32 +00:00
Alexandre
5e6d61b939 Update config.yaml 2026-03-30 09:23:57 +02:00
Alexandre
07d279401b Update build.json 2026-03-30 09:23:52 +02:00
Alexandre
6fa9cec43d Merge pull request #2618 from alexbelgium/copilot/fix-openproject-version-reference
Fix openproject build.json referencing v16 Docker image instead of v17
2026-03-30 09:20:58 +02:00
Alexandre
ae7e4832e5 Update OpenProject version to 17.2.2-2 2026-03-30 09:20:27 +02:00
Alexandre
8c06f5f01a Update Docker image tags to 'latest' 2026-03-30 09:01:47 +02:00
copilot-swe-agent[bot]
08f2e22e1c fix: update openproject Docker base image tag from :16 to :17
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/7be10a75-2278-4f46-aecd-faee6eabc8d7

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-03-30 06:18:23 +00:00
copilot-swe-agent[bot]
5e35ea07c4 Initial plan 2026-03-30 06:14:17 +00:00
github-actions
144fc9c26d Github bot : image compressed 2026-03-29 23:12:45 +00:00
github-actions[bot]
026e1a4fe4 Update stargazer map & cache 2026-03-29 01:21:31 +00:00
142 changed files with 344 additions and 17 deletions

View File

@@ -150,6 +150,7 @@ CrowMaster1,
Curiouserw,United States
CurtRed,
D3F0NC3UR,
D3XX3R,
D3f0,Kenya
DARKNAGAN,France
DDanii,
@@ -778,6 +779,7 @@ aelg305,
afonsojramos,Portugal
agdamsbo,Denmark
ahhl,
ahjcarroll,
ahrens26,
aiccucs,
aicynide,
@@ -1010,6 +1012,7 @@ charithmadhuranga,Sri Lanka
charl3y15,United States
charlestephen,United States
chbmuc,
checkrayns,
chen-ye,United States
chen7hi,
chenweiwei123,
@@ -1239,6 +1242,7 @@ ericyew,
erikLundstedt,Sweden
ernierasta,Czechia
eroldan,
eruvanos,Germany
erwamartin,France
ettoreboy,
euneuneu,
@@ -1442,6 +1446,7 @@ indig0fox,United States
indrajitr,United States
indykoning,
ingoau,Australia
inventor7777,United States
irgendwer112,
irgendwer92,
isobear23,
@@ -1732,6 +1737,7 @@ matte-a,Italy
matth-av,Australia
matthew-hz,
matthewturk,United States
matthiasbalke,Germany
matthiasfaeth,
matthieudevipa,
matthudson670,
@@ -1884,6 +1890,7 @@ noxhirsch,Germany
nperanzi,United States
nstrelow,Germany
nukleuz80,
nunoaleixogoncalves,Portugal
nwithan8,United States
nxnjz,
nyakojiru,Spain
@@ -2032,6 +2039,7 @@ quirbiefe,
qun-media,
r0rqual,United States
rJUUSO,
ranjitrajkumar,Canada
raphael1688,
rapjul,
rascasseuk,
@@ -2369,6 +2377,7 @@ vetcher,
vikavorkin,Israel
vinnyduke,
vlad36N,United States
vlassen,
vortexua,
vova-musin,
vova9,Belarus
@@ -2404,7 +2413,8 @@ wickedst,United Kingdom
wildnet,Poland
wile-e1,Canada
williamcorsel,Netherlands
willnewcombe,
willigenburggihaux,
willnewcombe,United Kingdom
wimb0,
witold-gren,Poland
wonkygecko,United States
@@ -2466,6 +2476,7 @@ ziQzav,
zipp00,
zjw57,China
zking7,
zonekill61,
zonorti,Germany
zr-idt,
zuranthus,Sweden
1 username country
150 Curiouserw United States
151 CurtRed
152 D3F0NC3UR
153 D3XX3R
154 D3f0 Kenya
155 DARKNAGAN France
156 DDanii
779 afonsojramos Portugal
780 agdamsbo Denmark
781 ahhl
782 ahjcarroll
783 ahrens26
784 aiccucs
785 aicynide
1012 charl3y15 United States
1013 charlestephen United States
1014 chbmuc
1015 checkrayns
1016 chen-ye United States
1017 chen7hi
1018 chenweiwei123
1242 erikLundstedt Sweden
1243 ernierasta Czechia
1244 eroldan
1245 eruvanos Germany
1246 erwamartin France
1247 ettoreboy
1248 euneuneu
1446 indrajitr United States
1447 indykoning
1448 ingoau Australia
1449 inventor7777 United States
1450 irgendwer112
1451 irgendwer92
1452 isobear23
1737 matth-av Australia
1738 matthew-hz
1739 matthewturk United States
1740 matthiasbalke Germany
1741 matthiasfaeth
1742 matthieudevipa
1743 matthudson670
1890 nperanzi United States
1891 nstrelow Germany
1892 nukleuz80
1893 nunoaleixogoncalves Portugal
1894 nwithan8 United States
1895 nxnjz
1896 nyakojiru Spain
2039 qun-media
2040 r0rqual United States
2041 rJUUSO
2042 ranjitrajkumar Canada
2043 raphael1688
2044 rapjul
2045 rascasseuk
2377 vikavorkin Israel
2378 vinnyduke
2379 vlad36N United States
2380 vlassen
2381 vortexua
2382 vova-musin
2383 vova9 Belarus
2413 wildnet Poland
2414 wile-e1 Canada
2415 williamcorsel Netherlands
2416 willnewcombe willigenburggihaux
2417 willnewcombe United Kingdom
2418 wimb0
2419 witold-gren Poland
2420 wonkygecko United States
2476 zipp00
2477 zjw57 China
2478 zking7
2479 zonekill61
2480 zonorti Germany
2481 zr-idt
2482 zuranthus Sweden

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 60 KiB

BIN
.github/stats.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -30,9 +30,10 @@ jobs:
TEXT_LOWER="$(printf '%s' "$TEXT" | tr '[:upper:]' '[:lower:]')"
while IFS= read -r addon; do
[ -z "$addon" ] && continue
ADDON_LOWER="$(printf '%s' "$addon" | tr '[:upper:]' '[:lower:]')"
[ -z "$ADDON_LOWER" ] && continue
if [[ "$TEXT_LOWER" == *"$addon"* ]]; then
if [[ " $TEXT_LOWER " == *" $ADDON_LOWER "* ]]; then
user="$(jq -r --arg addon "$addon" '.[$addon]' .github/addon_submitters.json)"
if [ -z "$user" ] || [ "$user" = "null" ]; then
continue
@@ -42,7 +43,7 @@ jobs:
comments_url="https://api.github.com/repos/${REPO}/issues/${ISSUE_NUMBER}/comments"
export GH_TOKEN="${GITHUB_TOKEN}"
existing="$(gh issue view "$ISSUE_NUMBER" --repo "$REPO" --json comments --jq '[.comments[] | select(.body | contains($marker))] | length')"
existing="$(gh issue view "$ISSUE_NUMBER" --repo "$REPO" --json comments | jq --arg marker "$marker" '[.comments[] | select(.body | contains($marker))] | length')"
if [ "$existing" -eq 0 ]; then
body=$(jq -cn --arg marker "$marker" --arg addon "$addon" --arg user "$user" '{body: ($marker + "\nHeads up @" + $user + ": this issue appears to mention `" + $addon + "`.")}')

View File

@@ -69,7 +69,6 @@ If you want to do add the repository manually, please follow the procedure highl
- %%STATS_AMD64%%
- %%STATS_AARCH64%%
- %%STATS_ARMV7%%
### Stars evolution

View File

@@ -17,8 +17,8 @@ if ! bashio::supervisor.ping 2>/dev/null; then
bashio::log.blue "Config source: ENV + /data/options.json"
bashio::log.blue '-----------------------------------------------------------'
cp -rf /usr/local/lib/bashio-standalone.sh /usr/bin/bashio
grep -rlZ "^#!.*bashio" /etc |
while IFS= read -r -d '' f; do
grep -rl "^#!.*bashio" /etc |
while IFS= read -r f; do
grep -qF "source /usr/local/lib/bashio-standalone.sh" "$f" && continue
sed -i '1a source /usr/local/lib/bashio-standalone.sh' "$f"
done

View File

@@ -69,7 +69,6 @@ If you want to do add the repository manually, please follow the procedure highl
- amd64: 65%
- aarch64: 35%
- %%STATS_ARMV7%%
### Stars evolution

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,3 +1,20 @@
## 3.2.0-8 (02-04-2026)
- Minor bugs fixed
## 3.2.0-7 (02-04-2026)
- Minor bugs fixed
## 3.2.0-6 (02-04-2026)
- Minor bugs fixed
## 3.2.0-5 (02-04-2026)
- Add Home Assistant ingress support with nginx reverse proxy
## 3.2.0-4 (02-04-2026)
- Minor bugs fixed
## 3.2.0-3 (2026-03-31)
- Fix addon never starts: symlink contents inside /opt/data instead of replacing the Docker VOLUME directory
## 3.2.0-2 (2026-03-31)
- Fix configuration lost after container restart by symlinking /opt/data to persistent /config directory
## 3.2.0 (2026-03-28)
- Update to latest version from maintainerr/maintainerr (changelog : https://github.com/maintainerr/maintainerr/releases)

View File

@@ -81,6 +81,13 @@ ARG MODULES="00-banner.sh 01-custom_script.sh"
COPY ha_automodules.sh /ha_automodules.sh
RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_automodules.sh
# Manual apps
ENV PACKAGES="nginx"
# Automatic apps & bashio
COPY ha_autoapps.sh /ha_autoapps.sh
RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" && rm /ha_autoapps.sh
################
# 4 Entrypoint #
################

View File

@@ -65,6 +65,8 @@ devices:
- /dev/nvme0
- /dev/nvme1
- /dev/nvme2
environment:
DATA_DIR: "/config"
image: ghcr.io/alexbelgium/maintainerr-{arch}
ingress: true
ingress_stream: true
@@ -87,5 +89,5 @@ schema:
TZ: str?
slug: maintainerr
url: https://github.com/alexbelgium/hassio-addons/tree/master/maintainerr
version: "3.2.0"
version: "3.2.0-8"
webui: "[PROTO:ssl]://[HOST]:[PORT:6246]"

View File

@@ -0,0 +1,21 @@
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
#################
# NGINX SETTING #
#################
declare ingress_interface
declare ingress_port
bashio::log.info "Configuring NGinx for ingress..."
ingress_port=$(bashio::addon.ingress_port)
ingress_interface=$(bashio::addon.ip_address)
ingress_entry=$(bashio::addon.ingress_entry)
sed -i "s/%%port%%/${ingress_port}/g" /etc/nginx/servers/ingress.conf
sed -i "s/%%interface%%/${ingress_interface}/g" /etc/nginx/servers/ingress.conf
sed -i "s|%%ingress_entry%%|${ingress_entry}|g" /etc/nginx/servers/ingress.conf
bashio::log.info "NGinx ingress configured on ${ingress_interface}:${ingress_port}"

View File

@@ -0,0 +1,96 @@
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
font/woff woff;
font/woff2 woff2;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
application/vnd.wap.wmlc wmlc;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}

View File

@@ -0,0 +1,14 @@
proxy_http_version 1.1;
proxy_ignore_client_abort off;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
proxy_max_temp_file_size 0;
proxy_set_header Accept-Encoding "";
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr;

View File

@@ -0,0 +1 @@
resolver 127.0.0.11 ipv6=off;

View File

@@ -0,0 +1,5 @@
server_name $hostname;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;

View File

@@ -0,0 +1,9 @@
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;

View File

@@ -0,0 +1,3 @@
upstream backend {
server 127.0.0.1:6246;
}

View File

@@ -0,0 +1,56 @@
# Run nginx in foreground.
daemon off;
# This is run inside Docker.
user root;
# Pid storage location.
pid /var/run/nginx.pid;
# Set number of worker processes.
worker_processes 1;
# Enables the use of JIT for regular expressions to speed-up their processing.
pcre_jit on;
# Write error log to Hass.io add-on log.
error_log /proc/1/fd/1 error;
# Load allowed environment vars
env HASSIO_TOKEN;
# Load dynamic modules.
include /etc/nginx/modules/*.conf;
# Max num of simultaneous connections by a worker process.
events {
worker_connections 512;
}
http {
include /etc/nginx/includes/mime.types;
log_format hassio '[$time_local] $status '
'$http_x_forwarded_for($remote_addr) '
'$request ($http_user_agent)';
access_log /proc/1/fd/1 hassio;
client_max_body_size 4G;
default_type application/octet-stream;
gzip on;
keepalive_timeout 65;
sendfile on;
server_tokens off;
tcp_nodelay on;
tcp_nopush on;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
include /etc/nginx/includes/resolver.conf;
include /etc/nginx/includes/upstream.conf;
include /etc/nginx/servers/*.conf;
}

View File

@@ -0,0 +1,61 @@
server {
listen %%interface%%:%%port%% default_server;
include /etc/nginx/includes/server_params.conf;
include /etc/nginx/includes/proxy_params.conf;
proxy_buffering off;
gzip_static off;
client_max_body_size 0;
# Based on https://docs.maintainerr.info/ReverseProxy/#nginx-subdomain
location / {
set $app '%%ingress_entry%%';
rewrite ^%%ingress_entry%%/?(.*)$ /$1 break;
proxy_pass http://127.0.0.1:6246;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_hide_header X-Powered-By;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Accept-Encoding "";
proxy_read_timeout 90;
add_header X-Frame-Options "SAMEORIGIN";
add_header 'Referrer-Policy' 'no-referrer';
# Redirect location headers
absolute_redirect off;
proxy_redirect / $app/;
# Sub filters to rewrite URLs in responses
sub_filter_once off;
sub_filter_types *;
# HTML attribute rewrites
sub_filter 'href="/"' 'href="%%ingress_entry%%/"';
sub_filter 'src="/' 'src="%%ingress_entry%%/';
sub_filter 'action="/' 'action="%%ingress_entry%%/';
# API path rewrites
sub_filter '"/api' '"%%ingress_entry%%/api';
sub_filter '`/api' '`%%ingress_entry%%/api';
sub_filter "'/api" "'%%ingress_entry%%/api";
# Vite asset rewrites
sub_filter '"/assets' '"%%ingress_entry%%/assets';
sub_filter '`/assets' '`%%ingress_entry%%/assets';
sub_filter "'/assets" "'%%ingress_entry%%/assets";
# Favicon and static files
sub_filter '"/favicon' '"%%ingress_entry%%/favicon';
sub_filter '"/logo' '"%%ingress_entry%%/logo';
# Root path references in JavaScript
sub_filter '"\/"' '"%%ingress_entry%%\/"';
}
}

View File

@@ -24,11 +24,31 @@ if [ -d /etc/cont-init.d ]; then
fi
# ─── Setup persistent data directory ─────────────────────────────────────────
# /opt/data is a Docker VOLUME in the upstream image and cannot be removed.
# Maintainerr supports the DATA_DIR env var to redirect data storage.
# The upstream app hardcodes /opt/data for its database and logs
# (typeOrmConfig.ts → /opt/data/maintainerr.sqlite, logs → /opt/data/logs/).
# /opt/data is declared as a Docker VOLUME in the upstream image, which is NOT
# persistent across addon updates/reinstalls in HA.
# Redirect /opt/data → /config (persistent via addon_config:rw) with a symlink.
DATA_DIR="/config"
echo "[Maintainerr] Setting up data directory: $DATA_DIR"
mkdir -p "$DATA_DIR"
mkdir -p "$DATA_DIR" "$DATA_DIR/logs"
# Preserve any seed data from the Docker volume before replacing it.
# /opt/data is a Docker VOLUME mount and cannot be removed, so instead of
# replacing the directory with a symlink, we symlink each item inside it.
if [ -d /opt/data ] && [ ! -L /opt/data ]; then
cp -rn /opt/data/. "$DATA_DIR/" 2>/dev/null || true
# Remove contents inside /opt/data (the directory itself stays)
rm -rf /opt/data/*
fi
# Create symlinks for each item in $DATA_DIR inside /opt/data
for item in "$DATA_DIR"/*; do
[ -e "$item" ] || continue
name="$(basename "$item")"
ln -sfn "$item" "/opt/data/$name"
done
# Only chown on first run to avoid slow startup on large directories
if [ ! -f "$DATA_DIR/.initialized" ]; then
chown -R node:node "$DATA_DIR"
@@ -39,3 +59,4 @@ export DATA_DIR
# ─── Start Maintainerr as unprivileged node user ─────────────────────────────
echo "[Maintainerr] Starting application on port ${UI_PORT:-6246}..."
exec gosu node /opt/app/start.sh
exec nginx

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,3 +1,5 @@
## 17.2.2-3 (30-03-2026)
- Minor bugs fixed
## 17.2.2 (2026-03-21)
- Update to latest version from opf/openproject (changelog : https://github.com/opf/openproject/releases)

View File

@@ -1,6 +1,6 @@
{
"build_from": {
"aarch64": "openproject/openproject:16",
"amd64": "openproject/openproject:16"
"aarch64": "openproject/openproject:17",
"amd64": "openproject/openproject:17"
}
}

View File

@@ -34,5 +34,5 @@ schema:
slug: openproject
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/openproject
version: "17.2.2"
version: "17.2.2-3"
webui: "[PROTO:ssl]://[HOST]:[PORT:8080]"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More