Compare commits

...
Author SHA1 Message Date
Alexandre 429c5907e2 Merge pull request #2599 from yannpub/master nobuild
Adjusted TRANSMISSION_WEB_UI options in config
2026-03-22 18:20:26 +01:00
Alexandre 83c8a53390 Merge pull request #2603 from alexbelgium/copilot/fix-seerr-addon-responsiveness
Add configurable NODE_MEMORY_LIMIT option to Seerr addon
2026-03-22 18:20:09 +01:00
github-actions da144eada7 GitHub bot: changelog 2026-03-22 17:13:25 +00:00
copilot-swe-agent[bot]andalexbelgium d20d1199fe Make NODE_MEMORY_LIMIT a configurable addon option (default 512 MB)
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/c45f9e34-4233-4929-96c9-50c7db39ac6d
2026-03-22 17:12:42 +00:00
github-actions 325419d009 GitHub bot: sanitize (spaces + LF endings) & chmod 2026-03-22 17:08:47 +00:00
AlexandreandCopilot f6750c806a Update seerr/CHANGELOG.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-22 18:08:22 +01:00
Alexandre 452f3490c4 Merge pull request #2601 from litinoveweedle/qbittorrent_vpn_upnp
qBittorrent upnp and firewall for VPN
2026-03-22 18:07:56 +01:00
Alexandre 3a78e99c4b Update version to 5.1.4-18 2026-03-22 18:07:13 +01:00
copilot-swe-agent[bot]andalexbelgium dd0fed1bd8 Fix Seerr OOM crash by setting default Node.js memory limit (512MB)
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/9948a07a-8ef8-4cb0-b0b2-a116cf6fdb18
2026-03-22 16:12:18 +00:00
copilot-swe-agent[bot] 169eeccc28 Initial plan 2026-03-22 16:04:30 +00:00
github-actions[bot] 2203ab4177 Update stargazer map & cache 2026-03-22 03:23:33 +00:00
github-actions[bot] 2e5df8e962 Update stargazer map & cache 2026-03-22 01:20:57 +00:00
github-actions 7c95c4f104 GitHub bot : README updated 2026-03-21 17:06:32 +00:00
litinoveweedle 7af8610a25 qBittorrent upnp and firewall for VPN
This is implementation of the UPnP port opening for qBittorrent running on VPN. Implementation also includes simple firewall for incoming connections.
2026-03-21 15:24:35 +01:00
github-actions ceab896b46 GitHub bot: changelog 2026-03-21 00:46:39 +00:00
alexbelgium 49fa5daa91 Updater bot : zzz_archived_code-server updated to 4.112.0 2026-03-21 01:31:42 +01:00
alexbelgium 9da453855e Updater bot : webtop_kde updated to 4.16-r0-ls93 2026-03-21 01:31:23 +01:00
alexbelgium d64c940500 Updater bot : tdarr updated to 2.64.02 2026-03-21 01:30:30 +01:00
alexbelgium 9cc2633688 Updater bot : sponsorblockcast updated to 0.8.3 2026-03-21 01:30:22 +01:00
alexbelgium 1c45d0d816 Updater bot : sonarr updated to 4.0.17.2952 2026-03-21 01:30:18 +01:00
alexbelgium 56135c39ca Updater bot : social_to_mealie updated to 1.6.1 2026-03-21 01:30:14 +01:00
alexbelgium a5a0862498 Updater bot : scrutiny_fa updated to v1.47.1 2026-03-21 01:30:02 +01:00
alexbelgium 72641aeb6d Updater bot : scrutiny updated to v1.47.1 2026-03-21 01:29:59 +01:00
alexbelgium 28fb23a5ce Updater bot : prowlarr updated to nightly-2.3.4.5308-ls226 2026-03-21 01:29:38 +01:00
alexbelgium 13d1777283 Updater bot : portainer updated to 2.39.1 2026-03-21 01:29:31 +01:00
alexbelgium b856dc37e1 Updater bot : plex updated to 1.43.0.10492-121068a07-ls296 2026-03-21 01:29:27 +01:00
alexbelgium 930629656c Updater bot : openproject updated to 17.2.2 2026-03-21 01:29:19 +01:00
alexbelgium 0bc3fee0f1 Updater bot : nzbget updated to v26.0-ls234 2026-03-21 01:29:12 +01:00
alexbelgium 5c6c3cc94c Updater bot : netalertx_fa updated to 26.3.15 2026-03-21 01:29:06 +01:00
alexbelgium 6643f15cdf Updater bot : netalertx updated to 26.3.15 2026-03-21 01:29:02 +01:00
alexbelgium 13cad45bbf Updater bot : mealie updated to v3.13.1 2026-03-21 01:28:40 +01:00
alexbelgium d3fad638c1 Updater bot : jackett updated to 0.24.1419 2026-03-21 01:28:13 +01:00
alexbelgium 02dd8c9e35 Updater bot : immich_openvino updated to 2.6.1 2026-03-21 01:28:05 +01:00
alexbelgium ef87465f7c Updater bot : immich_noml updated to 2.6.1 2026-03-21 01:28:01 +01:00
alexbelgium 94c02ef68d Updater bot : immich_cuda updated to 2.6.1 2026-03-21 01:27:53 +01:00
alexbelgium ca0659f640 Updater bot : immich updated to 2.6.1 2026-03-21 01:27:49 +01:00
alexbelgium 81db400ff2 Updater bot : flexget updated to 3.19.3 2026-03-21 01:27:29 +01:00
alexbelgium a773cf8ac8 Updater bot : fireflyiii updated to 6.5.6 2026-03-21 01:27:20 +01:00
alexbelgium c710429863 Updater bot : filebrowser updated to 2.62.1 2026-03-21 01:27:12 +01:00
alexbelgium d3169643a8 Updater bot : epicgamesfree updated to debian-2026-03-18 2026-03-21 01:27:08 +01:00
alexbelgium ada1099a0d Updater bot : emby_beta updated to 4.10.0.6 2026-03-21 01:26:57 +01:00
alexbelgium b76b2d969f Updater bot : cloudcommander updated to 19.8.0 2026-03-21 01:26:42 +01:00
alexbelgium cfc4dc7d4a Updater bot : changedetection.io updated to 0.54.6 2026-03-21 01:26:35 +01:00
alexbelgium 51b1efd584 Updater bot : browserless_chrome updated to 2.44.0 2026-03-21 01:26:26 +01:00
alexbelgium 17c9338e72 Updater bot : browser_chromium updated to version-baf94ebf 2026-03-21 01:26:22 +01:00
alexbelgium 39b999d94e Updater bot : browser_brave updated to 1.88.134-ls84 2026-03-21 01:26:12 +01:00
alexbelgium 11f88bc894 Updater bot : birdnet-go updated to nightly-20260315 2026-03-21 01:25:27 +01:00
Alexandre 916672c562 Update config.yaml 2026-03-20 20:31:41 +01:00
Alexandre 474f877e2f Merge pull request #2600 from alexbelgium/copilot/fix-move-netalertx-folder nobuild
Fix daily_README workflow moving netalertx into netalertx_fa
2026-03-20 20:31:10 +01:00
copilot-swe-agent[bot]andalexbelgium 5640de85e9 Restore netalertx/ folder and fix daily_README workflow rename collision
Commit 734a824 was triggered by the daily_README.yaml workflow which
temporarily renames addon folders to their .name for README generation.
Both netalertx and netalertx_fa share name: NetAlertX, causing mv to
move netalertx inside the already-renamed netalertx_fa directory.

Fix: add [ ! -e "$NAME" ] guard to prevent rename when target exists.

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/b23b6b99-d4da-4c4e-926f-4067af6f16a0
2026-03-20 19:27:26 +00:00
copilot-swe-agent[bot] 58d8591dfb Initial plan 2026-03-20 19:23:57 +00:00
github-actions 734a824547 GitHub bot : README updated 2026-03-20 17:14:34 +00:00
Yann 6af5909628 Adjusted TRANSMISSION_WEB_UI options in config
Added transmissionic webUI, moved transmission-web-control to the end - is removed in the current version, but there are discussions ongoing so not removing it for the moment
2026-03-20 15:36:39 +01:00
github-actions aa5d57d18c GitHub bot: changelog 2026-03-20 13:58:18 +00:00
Alexandre 066f4e1feb Update version to 2.43.0-2 in config.yaml 2026-03-20 14:50:29 +01:00
Alexandre eb7939eaaa Update start.sh to load environment variables
Modify start.sh to include environment variable loading.
2026-03-20 14:50:16 +01:00
Alexandre 78c3231b89 Try fix env_vars injection
https://github.com/alexbelgium/hassio-addons/issues/2596
2026-03-20 14:34:04 +01:00
Alexandre c7077fd9d6 Add GLOBAL_VAR_FILES environment variable
Added an environment variable for global variable files.
2026-03-20 14:33:44 +01:00
Alexandre 7816985f22 Add GLOBAL_VAR_FILES to script injection loop 2026-03-20 14:32:44 +01:00
118 changed files with 679 additions and 154 deletions

No files matched your search

+12
View File
@@ -1,5 +1,6 @@
username,country
0ln,
0x468,China
0xf3f,
10tribu,France
1333481,United Kingdom
@@ -242,6 +243,7 @@ Flipsoo,
FloppiTuna,United States
Fluffy-Bunny-23,
Flydiverny,Sweden
FoxLuffy,
FrisianOnline,
Fruckiwacki,
G2740,
@@ -252,6 +254,7 @@ Gangol,
GaryOG,
Germaenace,
Getrio,Italy
Ghost-Sam1222,
GiacoAV,
Giga77,
GleDel,
@@ -463,6 +466,7 @@ MikeVol,
Mikefila,
Milenco,
MilesAheadToo,Portugal
MillenniumStorm,
Miraculix666,
MirekJina,
MiroVerleysen,
@@ -514,6 +518,7 @@ OsipovOV,
Ozzoman30,
P4uLT,France
PCjabber,United States
PINUE,
Pacura,
Panagiotis-Zachos,Greece
Parahassio,
@@ -813,6 +818,7 @@ amcort,
amineSAPFrance,France
amorrigan,
amosyuen,
amussey,United States
an0moly,
ananthb,India
anarkia47,
@@ -1083,6 +1089,7 @@ dadge,
dadler,United States
daf777,
dafunkydan,
damianbochekemk70-star,
dammro,
dan-ee,
dan81andrei,
@@ -1198,6 +1205,7 @@ dzidza,
dzirambola,
e45cream,
eanavalentin,
ebahou,
ebertti,Brazil
ebonyschneider462359,
echauvet,France
@@ -1513,6 +1521,7 @@ joh-kro,
johanbaaij,
john-plowman408a,
john5du,
johnny234234,
johnser,United States
johny-mnemonic,
jojolll,
@@ -1634,6 +1643,7 @@ lguerard,
lhimo,
liangshao200,
lichenophile,
ligunn,
lijingtong666,
lillodipiazza,
linjianxangyu,
@@ -1719,6 +1729,7 @@ math-eaton,United States
mathieudebieuvre,
mattashhall,
matte-a,Italy
matth-av,Australia
matthew-hz,
matthewturk,United States
matthiasfaeth,
@@ -2063,6 +2074,7 @@ rmaeder,Switzerland
rmtsrc,
robertbak,
robertodigisi,Switzerland
rodolfoconcepcion,
roelreijneveld,Netherlands
rogertheriault,Mexico
rojuvi,
1 username country
2 0ln
3 0x468 China
4 0xf3f
5 10tribu France
6 1333481 United Kingdom
243 FloppiTuna United States
244 Fluffy-Bunny-23
245 Flydiverny Sweden
246 FoxLuffy
247 FrisianOnline
248 Fruckiwacki
249 G2740
254 GaryOG
255 Germaenace
256 Getrio Italy
257 Ghost-Sam1222
258 GiacoAV
259 Giga77
260 GleDel
466 Mikefila
467 Milenco
468 MilesAheadToo Portugal
469 MillenniumStorm
470 Miraculix666
471 MirekJina
472 MiroVerleysen
518 Ozzoman30
519 P4uLT France
520 PCjabber United States
521 PINUE
522 Pacura
523 Panagiotis-Zachos Greece
524 Parahassio
818 amineSAPFrance France
819 amorrigan
820 amosyuen
821 amussey United States
822 an0moly
823 ananthb India
824 anarkia47
1089 dadler United States
1090 daf777
1091 dafunkydan
1092 damianbochekemk70-star
1093 dammro
1094 dan-ee
1095 dan81andrei
1205 dzirambola
1206 e45cream
1207 eanavalentin
1208 ebahou
1209 ebertti Brazil
1210 ebonyschneider462359
1211 echauvet France
1521 johanbaaij
1522 john-plowman408a
1523 john5du
1524 johnny234234
1525 johnser United States
1526 johny-mnemonic
1527 jojolll
1643 lhimo
1644 liangshao200
1645 lichenophile
1646 ligunn
1647 lijingtong666
1648 lillodipiazza
1649 linjianxangyu
1729 mathieudebieuvre
1730 mattashhall
1731 matte-a Italy
1732 matth-av Australia
1733 matthew-hz
1734 matthewturk United States
1735 matthiasfaeth
2074 rmtsrc
2075 robertbak
2076 robertodigisi Switzerland
2077 rodolfoconcepcion
2078 roelreijneveld Netherlands
2079 rogertheriault Mexico
2080 rojuvi
Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 331 KiB

+1 -1
View File
@@ -87,7 +87,7 @@ jobs:
IFS='|' read -r CONFIG TYPE <<<"$(get_config "$f")"
if [ -n "$CONFIG" ]; then
NAME="$(get_raw '.name' "$TYPE" "$CONFIG")"
if [ -n "${NAME:-}" ] && [ "$f" != "$NAME" ]; then
if [ -n "${NAME:-}" ] && [ "$f" != "$NAME" ] && [ ! -e "$NAME" ]; then
echo "$f" > "$f/oldname"
mv "$f" "$NAME"
fi
+1 -1
View File
@@ -234,7 +234,7 @@ cp "$ENV_FILE" "$ETC_ENV_FILE"
################################################################################
# Inject into scripts and shells (best-effort)
################################################################################
for f in /etc/services.d/*/run /etc/cont-init.d/*.sh /entrypoint.sh /etc/bash.bashrc; do
for f in /etc/services.d/*/run /etc/cont-init.d/*.sh /entrypoint.sh /etc/bash.bashrc "${GLOBAL_VAR_FILES:-}"; do
[[ -f "$f" ]] && inject_block "$f"
done
+17 -8
View File
@@ -57,13 +57,13 @@ If you want to do add the repository manually, please follow the procedure highl
### Number of addons
- In the repository : 127
- Installed : 116609
- Installed : 125333
### Top 3
1. Filebrowser (21638x)
2. Portainer (13274x)
3. Postgres_17 (4976x)
1. Filebrowser (24134x)
2. Portainer (14344x)
3. Postgres_17 (5248x)
### Architectures used
@@ -324,7 +324,7 @@ If you want to do add the repository manually, please follow the procedure highl
![smb][smb-badge]
![localdisks][localdisks-badge]
&#10003; ![image](https://api.iconify.design/mdi/file-search.svg) [Filebrowser (21638x)](filebrowser/) : filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files
&#10003; ![image](https://api.iconify.design/mdi/file-search.svg) [Filebrowser (24134x)](filebrowser/) : filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files
&emsp;&emsp;![Version](https://img.shields.io/badge/dynamic/yaml?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Ffilebrowser%2Fconfig.yaml)
![Update](https://img.shields.io/badge/dynamic/json?label=Updated&query=%24.last_update&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Ffilebrowser%2Fupdater.json)
@@ -614,7 +614,16 @@ If you want to do add the repository manually, please follow the procedure highl
![smb][smb-badge]
![localdisks][localdisks-badge]
&#10003; ![image](https://api.iconify.design/mdi/wifi-check.svg) [NetAlertX](netalertx_fa/) : 🖧🔍 Centralized network visibility and continuous asset discovery.
&#10003; ![image](https://api.iconify.design/mdi/wifi-check.svg) [NetAlertX](netalertx/) : 🖧🔍 Centralized network visibility and continuous asset discovery.
&emsp;&emsp;![Version](https://img.shields.io/badge/dynamic/yaml?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fnetalertx%2Fconfig.yaml)
![Update](https://img.shields.io/badge/dynamic/json?label=Updated&query=%24.last_update&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fnetalertx%2Fupdater.json)
![aarch64][aarch64-badge]
![amd64][amd64-badge]
![ingress][ingress-badge]
![mqtt][mqtt-badge]
&#10003; ![image](https://api.iconify.design/mdi/wifi-check.svg) [NetAlertX Full Access](netalertx_fa/) : 🖧🔍 Centralized network visibility and continuous asset discovery.
&emsp;&emsp;![Version](https://img.shields.io/badge/dynamic/yaml?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fnetalertx_fa%2Fconfig.yaml)
![Update](https://img.shields.io/badge/dynamic/json?label=Updated&query=%24.last_update&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fnetalertx_fa%2Fupdater.json)
@@ -728,7 +737,7 @@ If you want to do add the repository manually, please follow the procedure highl
![smb][smb-badge]
![localdisks][localdisks-badge]
&#10003; ![image](https://api.iconify.design/mdi/docker.svg) [Portainer (13274x)](portainer/) : Manage your Docker environment with ease
&#10003; ![image](https://api.iconify.design/mdi/docker.svg) [Portainer (14344x)](portainer/) : Manage your Docker environment with ease
&emsp;&emsp;![Version](https://img.shields.io/badge/dynamic/yaml?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fportainer%2Fconfig.yaml)
![Update](https://img.shields.io/badge/dynamic/json?label=Updated&query=%24.last_update&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fportainer%2Fupdater.json)
@@ -736,7 +745,7 @@ If you want to do add the repository manually, please follow the procedure highl
![amd64][amd64-badge]
![ingress][ingress-badge]
&#10003; [Portainer (13274x) Agent](portainer_agent/) : An agent used to manage all the resources in a Swarm cluster
&#10003; [Portainer (14344x) Agent](portainer_agent/) : An agent used to manage all the resources in a Swarm cluster
&emsp;&emsp;![Version](https://img.shields.io/badge/dynamic/yaml?label=Version&query=%24.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fportainer_agent%2Fconfig.yaml)
![Update](https://img.shields.io/badge/dynamic/json?label=Updated&query=%24.last_update&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fportainer_agent%2Fupdater.json)
+3
View File
@@ -1,4 +1,7 @@
## nightly-20260315 (2026-03-21)
- Update to latest version from tphakala/birdnet-go (changelog : https://github.com/tphakala/birdnet-go/releases)
## nightly-20260311 (2026-03-14)
- Update to latest version from tphakala/birdnet-go (changelog : https://github.com/tphakala/birdnet-go/releases)
## nightly-20260118-2 (17-02-2026)
+1 -1
View File
@@ -118,4 +118,4 @@ slug: birdnet-go
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/birdnet-go
usb: true
version: "nightly-20260311"
version: "nightly-20260315"
+2 -2
View File
@@ -2,10 +2,10 @@
"github_beta": true,
"github_fulltag": true,
"github_tagfilter": "nightly",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "birdnet-go",
"source": "github",
"upstream_repo": "tphakala/birdnet-go",
"upstream_version": "nightly-20260311"
"upstream_version": "nightly-20260315"
}
+3
View File
@@ -1,4 +1,7 @@
## 1.88.134-ls84 (2026-03-21)
- Update to latest version from linuxserver/docker-brave (changelog : https://github.com/linuxserver/docker-brave/releases)
## 1.88.130-ls82 (2026-03-14)
- Update to latest version from linuxserver/docker-brave (changelog : https://github.com/linuxserver/docker-brave/releases)
+1 -1
View File
@@ -69,5 +69,5 @@ slug: brave
tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "1.88.130-ls82"
version: "1.88.134-ls84"
video: true
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_fulltag": "true",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "brave",
"source": "github",
"upstream_repo": "linuxserver/docker-brave",
"upstream_version": "1.88.130-ls82"
"upstream_version": "1.88.134-ls84"
}
+2
View File
@@ -47,6 +47,8 @@ RUN \
# Modify commands
RUN sed -i '/no-first-run/a\ --remote-debugging-address=0.0.0.0 --remote-debugging-port=9221 \\' /usr/bin/wrapped-*
ENV GLOBAL_VAR_FILES="/etc/usr/bin/wrapped-chromium"
# Global LSIO modifications
ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_lsio.sh" "/ha_lsio.sh"
ARG CONFIGLOCATION="/config"
+1 -1
View File
@@ -71,5 +71,5 @@ slug: chromium
tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "version-59f04866"
version: "version-baf94ebf"
video: true
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_fulltag": "true",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "chromium",
"source": "github",
"upstream_repo": "linuxserver/docker-chromium",
"upstream_version": "version-59f04866"
"upstream_version": "version-baf94ebf"
}
+5
View File
@@ -1,4 +1,9 @@
## 2.44.0 (2026-03-21)
- Update to latest version from browserless/chrome (changelog : https://github.com/browserless/chrome/releases)
## 2.43.0-2 (20-03-2026)
- Minor bugs fixed
## 2.43.0 (2026-03-14)
- Update to latest version from browserless/chrome (changelog : https://github.com/browserless/chrome/releases)
+2 -1
View File
@@ -70,7 +70,8 @@ RUN chmod 777 /ha_entrypoint.sh
ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/bashio-standalone.sh" "/usr/local/lib/bashio-standalone.sh"
RUN chmod 0755 /usr/local/lib/bashio-standalone.sh
RUN sed -i "2a /./ha_entrypoint.sh" ./scripts/start.sh
RUN sed -i "2a /./ha_entrypoint.sh" ./scripts/start.sh && \
sed -i "3a if [ -f /.env ]; then set -a; . /.env; set +a; fi" ./scripts/start.sh
############
# 5 Labels #
+1 -1
View File
@@ -86,5 +86,5 @@ schema:
slug: browserless_chrome
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/browserless_chrome
version: "2.43.0"
version: "2.44.0"
webui: "[PROTO:ssl]://[HOST]:[PORT:3000]/docs"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_tagfilter": "v",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "browserless_chrome",
"source": "github",
"upstream_repo": "browserless/chrome",
"upstream_version": "2.43.0"
"upstream_version": "2.44.0"
}
+3
View File
@@ -1,4 +1,7 @@
## 0.54.6 (2026-03-21)
- Update to latest version from linuxserver/docker-changedetection.io (changelog : https://github.com/linuxserver/docker-changedetection.io/releases)
## 0.54.5 (2026-03-14)
- Update to latest version from linuxserver/docker-changedetection.io (changelog : https://github.com/linuxserver/docker-changedetection.io/releases)
+1 -1
View File
@@ -34,4 +34,4 @@ schema:
slug: changedetection.io
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/changedetection.io
version: "0.54.5"
version: "0.54.6"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_fulltag": "false",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "changedetection.io",
"source": "github",
"upstream_repo": "linuxserver/docker-changedetection.io",
"upstream_version": "0.54.5"
"upstream_version": "0.54.6"
}
+3
View File
@@ -1,3 +1,6 @@
## 19.8.0 (2026-03-21)
- Update to latest version from coderaiser/cloudcmd (changelog : https://github.com/coderaiser/cloudcmd/releases)
## 19.6.8-4 (07-03-2026)
- Minor bugs fixed
## 19.6.8-3 (06-03-2026)
+1 -1
View File
@@ -104,4 +104,4 @@ schema:
slug: cloudcommander
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/cloudcommander
version: "19.6.8-4"
version: "19.8.0"
+2 -2
View File
@@ -1,8 +1,8 @@
{
"last_update": "2026-02-28",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "cloudcommander",
"source": "github",
"upstream_repo": "coderaiser/cloudcmd",
"upstream_version": "19.6.8"
"upstream_version": "19.8.0"
}
+5
View File
@@ -1,3 +1,8 @@
## streaming your media (beta version) 4.10.0.6 (21-03-2026)
- Minor bugs fixed
## 4.10.0.6 (2026-03-21)
- Update to latest version from linuxserver/docker-emby (changelog : https://github.com/linuxserver/docker-emby/releases)
## streaming your media (beta version) 4.10.0.5 (14-03-2026)
- Minor bugs fixed
+1 -1
View File
@@ -16,7 +16,7 @@
ARG BUILD_FROM
ARG BUILD_VERSION
ARG BUILD_UPSTREAM="4.10.0.5"
ARG BUILD_UPSTREAM="4.10.0.6"
FROM ${BUILD_FROM}
##################
+1 -1
View File
@@ -122,5 +122,5 @@ schema:
slug: emby_nas
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/emby
version: "4.10.0.5"
version: "4.10.0.6"
video: true
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_beta": "true",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "emby",
"source": "github",
"upstream_repo": "linuxserver/docker-emby",
"upstream_version": "4.10.0.5"
"upstream_version": "4.10.0.6"
}
+3
View File
@@ -1,4 +1,7 @@
## debian-2026-03-18 (2026-03-18)
- Update to latest version from charlocharlie/epicgames-freegames
## debian-2026-03-09 (2026-03-09)
- Update to latest version from charlocharlie/epicgames-freegames
+1 -1
View File
@@ -88,5 +88,5 @@ schema:
slug: epicgamesfree
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "debian-2026-03-09"
version: "debian-2026-03-18"
webui: "[PROTO:ssl]://[HOST]:[PORT:3000]"
+2 -2
View File
@@ -2,10 +2,10 @@
"dockerhub_by_date": true,
"dockerhub_list_size": 2,
"github_exclude": "-",
"last_update": "2026-03-09",
"last_update": "2026-03-18",
"repository": "alexbelgium/hassio-addons",
"slug": "epicgamesfree",
"source": "dockerhub",
"upstream_repo": "charlocharlie/epicgames-freegames",
"upstream_version": "debian-2026-03-09"
"upstream_version": "debian-2026-03-18"
}
+3
View File
@@ -1,4 +1,7 @@
## 2.62.1 (2026-03-21)
- Update to latest version from filebrowser/filebrowser (changelog : https://github.com/filebrowser/filebrowser/releases)
## 2.61.2 (2026-03-07)
- Update to latest version from filebrowser/filebrowser (changelog : https://github.com/filebrowser/filebrowser/releases)
+1 -1
View File
@@ -123,4 +123,4 @@ schema:
slug: filebrowser
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "2.61.2"
version: "2.62.1"
+2 -2
View File
@@ -1,10 +1,10 @@
{
"github_beta": "true",
"last_update": "2026-03-07",
"last_update": "2026-03-21",
"paused": false,
"repository": "alexbelgium/hassio-addons",
"slug": "filebrowser",
"source": "github",
"upstream_repo": "filebrowser/filebrowser",
"upstream_version": "2.61.2"
"upstream_version": "2.62.1"
}
+3
View File
@@ -1,4 +1,7 @@
## 6.5.6 (2026-03-21)
- Update to latest version from firefly-iii/firefly-iii (changelog : https://github.com/firefly-iii/firefly-iii/releases)
## 6.5.4 (2026-03-07)
- Update to latest version from firefly-iii/firefly-iii (changelog : https://github.com/firefly-iii/firefly-iii/releases)
+1 -1
View File
@@ -104,5 +104,5 @@ slug: fireflyiii
startup: services
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "6.5.4"
version: "6.5.6"
webui: "[PROTO:ssl]://[HOST]:[PORT:8080]"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_exclude": "develop",
"last_update": "2026-03-07",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "fireflyiii",
"source": "github",
"upstream_repo": "firefly-iii/firefly-iii",
"upstream_version": "6.5.4"
"upstream_version": "6.5.6"
}
+3
View File
@@ -1,4 +1,7 @@
## 3.19.3 (2026-03-21)
- Update to latest version from wiserain/flexget
## 3.19.1 (2026-03-14)
- Update to latest version from wiserain/flexget
+1 -1
View File
@@ -95,5 +95,5 @@ schema:
slug: flexget
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "3.19.1"
version: "3.19.3"
webui: "[PROTO:ssl]://[HOST]:[PORT:5050]"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"dockerhub_list_size": "10",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "flexget",
"source": "dockerhub",
"upstream_repo": "wiserain/flexget",
"upstream_version": "3.19.1"
"upstream_version": "3.19.3"
}
+3
View File
@@ -1,4 +1,7 @@
## 2.6.1 (2026-03-21)
- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases)
## 2.5.6-2 (2026-02-14)
- Add `VIPS_NOVECTOR` add-on option to set `VIPS_NOVECTOR=1` for thumbnail generation workaround on aarch64 (issue #2460)
+1 -1
View File
@@ -143,6 +143,6 @@ slug: immich
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: "2.5.6-2"
version: "2.6.1"
video: true
webui: http://[HOST]:[PORT:8080]
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_beta": "false",
"last_update": "2026-02-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "immich",
"source": "github",
"upstream_repo": "imagegenius/docker-immich",
"upstream_version": "2.5.6"
"upstream_version": "2.6.1"
}
+3
View File
@@ -1,4 +1,7 @@
## 2.6.1 (2026-03-21)
- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases)
## 2.5.6-2 (2026-02-14)
- Add `VIPS_NOVECTOR` add-on option to set `VIPS_NOVECTOR=1` for thumbnail generation workaround on aarch64 (issue #2460)
+1 -1
View File
@@ -141,6 +141,6 @@ slug: immich_cuda
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: "2.5.6-2"
version: "2.6.1"
video: true
webui: http://[HOST]:[PORT:8080]
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_beta": "false",
"last_update": "2026-02-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "immich",
"source": "github",
"upstream_repo": "imagegenius/docker-immich",
"upstream_version": "2.5.6"
"upstream_version": "2.6.1"
}
+3
View File
@@ -1,4 +1,7 @@
## 2.6.1 (2026-03-21)
- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases)
## 2.5.6-2 (2026-02-14)
- Add `VIPS_NOVECTOR` add-on option to set `VIPS_NOVECTOR=1` for thumbnail generation workaround on aarch64 (issue #2460)
+1 -1
View File
@@ -142,6 +142,6 @@ slug: immich_noml
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: "2.5.6-2"
version: "2.6.1"
video: true
webui: http://[HOST]:[PORT:8080]
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_beta": "false",
"last_update": "2026-02-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "immich",
"source": "github",
"upstream_repo": "imagegenius/docker-immich",
"upstream_version": "2.5.6"
"upstream_version": "2.6.1"
}
+3
View File
@@ -1,4 +1,7 @@
## 2.6.1 (2026-03-21)
- Update to latest version from imagegenius/docker-immich (changelog : https://github.com/imagegenius/docker-immich/releases)
## 2.5.6-3 (2026-02-22)
- Increment add-on revision.
+1 -1
View File
@@ -142,6 +142,6 @@ slug: immich_openvino
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: "2.5.6-3"
version: "2.6.1"
video: true
webui: http://[HOST]:[PORT:8080]
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_beta": "false",
"last_update": "2026-02-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "immich",
"source": "github",
"upstream_repo": "imagegenius/docker-immich",
"upstream_version": "2.5.6"
"upstream_version": "2.6.1"
}
+3
View File
@@ -1,4 +1,7 @@
## 0.24.1419 (2026-03-21)
- Update to latest version from linuxserver/docker-jackett (changelog : https://github.com/linuxserver/docker-jackett/releases)
## 0.24.1356 (2026-03-14)
- Update to latest version from linuxserver/docker-jackett (changelog : https://github.com/linuxserver/docker-jackett/releases)
+1 -1
View File
@@ -106,5 +106,5 @@ schema:
slug: jackett_nas
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/jackett
version: "0.24.1356"
version: "0.24.1419"
webui: http://[HOST]:[PORT:9117]
+2 -2
View File
@@ -1,8 +1,8 @@
{
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "jackett",
"source": "github",
"upstream_repo": "linuxserver/docker-jackett",
"upstream_version": "0.24.1356"
"upstream_version": "0.24.1419"
}
+3
View File
@@ -1,4 +1,7 @@
## v3.13.1 (2026-03-21)
- Update to latest version from mealie-recipes/mealie (changelog : https://github.com/mealie-recipes/mealie/releases)
## v3.12.0 (2026-03-14)
- Update to latest version from mealie-recipes/mealie (changelog : https://github.com/mealie-recipes/mealie/releases)
+1 -1
View File
@@ -21,7 +21,7 @@ FROM node:20 AS frontend-builder
ARG SUB_PATH="/mealie/"
ENV SUB_PATH=$SUB_PATH
ENV MEALIE_VERSION="v3.12.0"
ENV MEALIE_VERSION="v3.13.1"
# Clone the Mealie repository to get the frontend source code
WORKDIR /frontend
+1 -1
View File
@@ -114,4 +114,4 @@ schema:
slug: mealie
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "v3.12.0"
version: "v3.13.1"
+2 -2
View File
@@ -1,11 +1,11 @@
{
"github_beta": "true",
"github_fulltag": "true",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"paused": "false",
"repository": "alexbelgium/hassio-addons",
"slug": "mealie",
"source": "github",
"upstream_repo": "mealie-recipes/mealie",
"upstream_version": "v3.12.0"
"upstream_version": "v3.13.1"
}
+3
View File
@@ -1,3 +1,6 @@
## 26.3.15 (2026-03-21)
- Update to latest version from jokob-sk/NetAlertX (changelog : https://github.com/jokob-sk/NetAlertX/releases)
## 26.3.16-6 (19-03-2026)
- Minor bugs fixed
## 26.3.16-5 (19-03-2026)
+1 -1
View File
@@ -42,4 +42,4 @@ slug: netalertx
tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "26.3.16-6"
version: "26.3.15"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"last_update": "2026-03-07",
"last_update": "2026-03-21",
"paused": "false",
"repository": "alexbelgium/hassio-addons",
"slug": "netalertx",
"source": "github",
"upstream_repo": "jokob-sk/NetAlertX",
"upstream_version": "26.3.7"
"upstream_version": "26.3.15"
}
+3
View File
@@ -1,3 +1,6 @@
## 26.3.15 (2026-03-21)
- Update to latest version from jokob-sk/NetAlertX (changelog : https://github.com/jokob-sk/NetAlertX/releases)
## 26.3.16-6 (19-03-2026)
- Minor bugs fixed
+2 -2
View File
@@ -13,7 +13,7 @@ init: false
full_access: true
map:
- addon_config:rw
name: NetAlertX
name: NetAlertX Full Access
panel_icon: mdi:wifi-check
ports:
20211/tcp: 20211
@@ -43,4 +43,4 @@ slug: netalertx_fa
tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "26.3.16-6"
version: "26.3.15"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"last_update": "2026-03-07",
"last_update": "2026-03-21",
"paused": false,
"repository": "alexbelgium/hassio-addons",
"slug": "netalertx_fa",
"source": "github",
"upstream_repo": "jokob-sk/NetAlertX",
"upstream_version": "26.3.7"
"upstream_version": "26.3.15"
}
+3
View File
@@ -1,4 +1,7 @@
## v26.0-ls234 (2026-03-21)
- Update to latest version from linuxserver/docker-nzbget (changelog : https://github.com/linuxserver/docker-nzbget/releases)
## v26.0-ls233 (2026-03-07)
- Update to latest version from linuxserver/docker-nzbget (changelog : https://github.com/linuxserver/docker-nzbget/releases)
+1 -1
View File
@@ -104,4 +104,4 @@ schema:
slug: nzbget
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "v26.0-ls233"
version: "v26.0-ls234"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_fulltag": "true",
"last_update": "2026-03-07",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "nzbget",
"source": "github",
"upstream_repo": "linuxserver/docker-nzbget",
"upstream_version": "v26.0-ls233"
"upstream_version": "v26.0-ls234"
}
+3
View File
@@ -1,4 +1,7 @@
## 17.2.2 (2026-03-21)
- Update to latest version from opf/openproject (changelog : https://github.com/opf/openproject/releases)
## 17.2.0 (2026-03-14)
- Update to latest version from opf/openproject (changelog : https://github.com/opf/openproject/releases)
+1 -1
View File
@@ -34,5 +34,5 @@ schema:
slug: openproject
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/openproject
version: "17.2.0"
version: "17.2.2"
webui: "[PROTO:ssl]://[HOST]:[PORT:8080]"
+2 -2
View File
@@ -1,8 +1,8 @@
{
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "openproject",
"source": "github",
"upstream_repo": "opf/openproject",
"upstream_version": "17.2.0"
"upstream_version": "17.2.2"
}
+3
View File
@@ -1,4 +1,7 @@
## 1.43.0.10492-121068a07-ls296 (2026-03-21)
- Update to latest version from linuxserver/docker-plex (changelog : https://github.com/linuxserver/docker-plex/releases)
## 1.43.0.10492-121068a07-ls295 (2026-03-02)
- Update to latest version from linuxserver/docker-plex (changelog : https://github.com/linuxserver/docker-plex/releases)
+1 -1
View File
@@ -175,6 +175,6 @@ slug: plex_nas
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/plex
usb: true
version: "1.43.0.10492-121068a07-ls295"
version: "1.43.0.10492-121068a07-ls296"
video: true
webui: "[PROTO:ssl]://[HOST]:[PORT:32400]/web"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_fulltag": "true",
"last_update": "2026-03-02",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "plex",
"source": "github",
"upstream_repo": "linuxserver/docker-plex",
"upstream_version": "1.43.0.10492-121068a07-ls295"
"upstream_version": "1.43.0.10492-121068a07-ls296"
}
+3
View File
@@ -1,4 +1,7 @@
## 2.39.1 (2026-03-21)
- Update to latest version from portainer/portainer (changelog : https://github.com/portainer/portainer/releases)
## 2.39.0 (2026-02-28)
- Update to latest version from portainer/portainer (changelog : https://github.com/portainer/portainer/releases)
+1 -1
View File
@@ -31,7 +31,7 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Setup base
ARG BUILD_UPSTREAM="2.39.0"
ARG BUILD_UPSTREAM="2.39.1"
# spellcheck disable=SC2015
# hadolint ignore=SC2015
+1 -1
View File
@@ -42,4 +42,4 @@ schema:
slug: portainer
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "2.39.0"
version: "2.39.1"
+2 -2
View File
@@ -1,9 +1,9 @@
{
"github_havingasset": "true",
"last_update": "2026-02-28",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "portainer",
"source": "github",
"upstream_repo": "portainer/portainer",
"upstream_version": "2.39.0"
"upstream_version": "2.39.1"
}
+3
View File
@@ -1,4 +1,7 @@
## nightly-2.3.4.5308-ls226 (2026-03-21)
- Update to latest version from linuxserver/docker-prowlarr (changelog : https://github.com/linuxserver/docker-prowlarr/releases)
## nightly-2.3.3.5300-ls226 (2026-03-14)
- Update to latest version from linuxserver/docker-prowlarr (changelog : https://github.com/linuxserver/docker-prowlarr/releases)
+1 -1
View File
@@ -110,5 +110,5 @@ schema:
slug: prowlarr
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "nightly-2.3.3.5300-ls226"
version: "nightly-2.3.4.5308-ls226"
webui: "[PROTO:ssl]://[HOST]:[PORT:9696]"
+2 -2
View File
@@ -1,10 +1,10 @@
{
"github_beta": "true",
"github_fulltag": "true",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"repository": "alexbelgium/hassio-addons",
"slug": "prowlarr",
"source": "github",
"upstream_repo": "linuxserver/docker-prowlarr",
"upstream_version": "nightly-2.3.3.5300-ls226"
"upstream_version": "nightly-2.3.4.5308-ls226"
}
+2
View File
@@ -1,3 +1,5 @@
## 5.1.4-18 (22-03-2026)
- Minor bugs fixed
## 5.1.4-17 (17-02-2026)
- Minor bugs fixed
## 5.1.4-16 (16-02-2026)
+1 -1
View File
@@ -113,7 +113,7 @@ RUN chmod 744 /ha_automodules.sh && /ha_automodules.sh "$MODULES" && rm /ha_auto
# && chmod a+x /etc/s6-overlay/s6-rc.d/$SCRIPTSNAME/* ; done; fi
# Manual apps
ARG PACKAGES="ipcalc wireguard-tools"
ARG PACKAGES="ipcalc wireguard-tools libnatpmp iptables ip6tables"
# Automatic apps & bashio
ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_autoapps.sh" "/ha_autoapps.sh"
+2 -1
View File
@@ -131,6 +131,7 @@ schema:
openvpn_enabled: bool?
openvpn_password: str?
openvpn_username: str?
vpn_upnp_enabled: bool?
qbit_manage: bool?
run_duration: str?
silent: bool?
@@ -142,4 +143,4 @@ schema:
slug: qbittorrent
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "5.1.4-17"
version: "5.1.4-18"
+15
View File
@@ -0,0 +1,15 @@
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
set -euo pipefail
if ! bashio::config.true 'openvpn_enabled' && ! bashio::config.true 'wireguard_enabled'; then
# No VPN enabled: remove UPnP service to avoid unnecessary restarts
rm -rf /etc/services.d/vpn-upnp
exit 0
fi
if ! bashio::config.true 'vpn_upnp_enabled'; then
# UPnP not enabled: remove UPnP service to avoid unnecessary restarts
rm -rf /etc/services.d/vpn-upnp
exit 0
fi
@@ -178,7 +178,7 @@ read -r VPN_IP VPN_COUNTRY <<< "${VPN_INFO_OUT}"
bashio::log.info "VPN external IP: ${VPN_IP} (${VPN_COUNTRY})"
while true; do
sleep "${VPN_CHECK_INTERVAL}"
sleep "${VPN_CHECK_INTERVAL}" & wait $!
if ! current_out="$(get_ip_info)"; then
bashio::log.warning "Failed to refresh external IP; keeping previous assumptions."
@@ -0,0 +1,265 @@
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
set -euo pipefail
export PATH="/usr/local/sbin:/usr/local/bin:${PATH}"
VPN_UPNP_INTERVAL="${VPN_UPNP_INTERVAL:-90}"
# -------------------------------
# Helpers
# -------------------------------
declare -A config
config["MySelf"]="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
_parse_config() {
local config_file="$1"
local -A config_keys=(
["UseHttps"]="HTTPS\\\\Enabled"
["Server"]="WebUI\\\\Address"
["Port"]="WebUI\\\\Port"
["User"]="WebUI\\\\Username"
["Pass"]="WebUI\\\\Password"
["Interface"]="Connection\\\\Interface"
["UPnP"]="Connection\\\\UPnP"
["TorrentPort"]="Session\\\\Port"
)
config["UseHttps"]="false"
config["Schema"]="http"
config["Server"]="127.0.0.1"
config["Port"]="8080"
config["User"]="admin"
config["Pass"]="adminadmin"
config["Interface"]=""
config["UPnP"]="false"
config["SID"]=""
config["UPnPPort"]="0"
config["IPv4Gateway"]=""
config["IPv4Enabled"]="false"
config["IPv6Enabled"]="false"
config["TorrentPort"]=$(shuf -i 49152-65535 -n 1)
for key in "${!config_keys[@]}"; do
if ! grep -qP "^\s*${config_keys[$key]}\s*=\s*\S+" "${config_file}"; then
continue
fi
config["${key}"]=$(grep -oP "^\s*${config_keys[$key]}\s*=\s*\K\S+" "${config_file}")
done
if [ "${config["UseHttps"]}" = "true" ]; then
config["Schema"]="https"
else
config["Schema"]="http"
fi
if [ "${config["Server"]}" = "*" ]; then
config["Server"]="127.0.0.1"
fi
if [ "${config["TorrentPort"]}" = "6881" ]; then
bashio::log.debug 'Torrent Port is default (6881), selecting a random port.'
config["TorrentPort"]=$(shuf -i 49152-65535 -n 1)
fi
for key in "${!config[@]}"; do
bashio::log.debug "Config key: $key, value: ${config[$key]}"
done
if [ -z "${config["Server"]}" ] || [ -z "${config["Port"]}" ] || [ -z "${config["User"]}" ] || [ -z "${config["Pass"]}" ] || [ -z "${config["Interface"]}" ]; then
bashio::exit.nok 'qBittorrent WebUI configuration not found or incomplete. Please check your qBittorrent.conf.'
fi
}
_cmd() {
cmd="$1"
bashio::log.debug "Executing command: ${cmd}"
eval "${cmd}"
}
_pnat_get_gw() {
local vpn_if_hex_addr=''
local ipv4
local vpn_if_hex_addr=$(grep ${config["Interface"]} /proc/net/route | awk '$2 == "00000000" { print $3 }')
local local_ipv4=$(ip addr show ${config["Interface"]} | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1)
local local_ipv6=$(ip addr show ${config["Interface"]} | grep 'inet6 ' | awk '{print $2}' | cut -d'/' -f1)
if [ -n "${local_ipv4}" ]; then
config["IPv4Enabled"]="true"
fi
if [ -n "${local_ipv6}" ]; then
config["IPv6Enabled"]="true"
fi
if [ -n "${vpn_if_hex_addr}" ]; then
#shellcheck disable=SC2046
config["IPv4Gateway"]=$(printf "%d." $(echo "${vpn_if_hex_addr}" | sed 's/../0x& /g' | tr ' ' '\n' | tac) | sed 's/\.$/\n/')
return 0
elif [ -n "${local_ipv4}" ]; then
for ipv4 in ${local_ipv4}; do
for n in {1..254}; do
local try_ip="$(echo "${ipv4}" | cut -d'.' -f1-3).${n}"
if [ "${try_ip}" != "${ipv4}" ]; then
if nc -4 -vw1 "${try_ip}" 1 &>/dev/null 2>&1; then
config["IPv4Gateway"]=${try_ip}
return 0
fi
fi
done
done
fi
return 1
}
_pnat_get_port() {
if [ "${config["IPv4Enabled"]}" = "true" ]; then
bashio::log.debug "Attempting to set uPNP port mapping for IPv4 via NAT-PMP"
# shellcheck disable=SC2086
_cmd "timeout 10s natpmpc -g ${config["IPv4Gateway"]} -a 1 0 udp ${config["Interval"]} >/dev/null 2>&1" || return 1
# shellcheck disable=SC2086
if [ "${config["UPnPPort"]}" = "0" ]; then
config["TorrentPort"]="0"
fi
config["UPnPPort"]=$(_cmd "timeout 10s natpmpc -g ${config["IPv4Gateway"]} -a 1 0 tcp ${config["Interval"]} | grep -oP '(?<=Mapped public port.).*(?=.protocol.*)'")
return $?
elif [ "${config["IPv6Enabled"]}" = "true" ]; then
if [ "${config["UPnPPort"]}" = "0" ]; then
config["UPnPPort"]=${config["TorrentPort"]}
config["TorrentPort"]="0"
else
config["UPnPPort"]=${config["TorrentPort"]}
fi
return 0
else
return 1
fi
}
_pnat_set_firewall() {
if [ "${config["IPv4Enabled"]}" = "true" ]; then
_cmd "iptables -F pnat 2>/dev/null" || true
_cmd "iptables -A pnat -p tcp --dport ${config["UPnPPort"]} -j ACCEPT" || return 1
_cmd "iptables -A pnat -p udp --dport ${config["UPnPPort"]} -j ACCEPT" || return 1
fi
if [ "${config["IPv6Enabled"]}" = "true" ]; then
_cmd "ip6tables -F pnat 2>/dev/null" || true
_cmd "ip6tables -A pnat -p tcp --dport ${config["UPnPPort"]} -j ACCEPT" || return 1
_cmd "ip6tables -A pnat -p udp --dport ${config["UPnPPort"]} -j ACCEPT" || return 1
fi
}
# --- qBittorrent Specific Logic ---
_qbt_login() {
config["SID"]=$(_cmd "curl -s -k -i --header \"Referer: ${config["Schema"]}://${config["Server"]}:${config["Port"]}\" --data \"username=${config["User"]}\" --data-urlencode \"password=${config["Pass"]}\" \"${config["Schema"]}://${config["Server"]}:${config["Port"]}/api/v2/auth/login\" | grep -oP '(?!set-cookie:.)SID=.*(?=\;.HttpOnly\;)'")
return $?
}
_qbt_set_port() {
_cmd "curl -s -k -i --header \"Referer: ${config["Schema"]}://${config["Server"]}:${config["Port"]}\" --cookie \"${config["SID"]}\" --data-urlencode \"json={\\\"listen_port\\\":${config["UPnPPort"]},\\\"random_port\\\":false,\\\"upnp\\\":false}\" \"${config["Schema"]}://${config["Server"]}:${config["Port"]}/api/v2/app/setPreferences\" >/dev/null 2>&1"
return $?
}
_qbt_get_port() {
config["TorrentPort"]=$(_cmd "curl -s -k -i --header \"Referer: ${config["Schema"]}://${config["Server"]}:${config["Port"]}\" --cookie \"${config["SID"]}\" \"${config["Schema"]}://${config["Server"]}:${config["Port"]}/api/v2/app/preferences\" | grep -oP '(?<=\"listen_port\"\\:)(\\d{1,5})'")
return $?
}
_qbt_check_sid() {
if _cmd "curl -s -k --header \"Referer: ${config["Schema"]}://${config["Server"]}:${config["Port"]}\" --cookie \"${config["SID"]}\" \"${config["Schema"]}://${config["Server"]}:${config["Port"]}/api/v2/app/version\" | grep -qi forbidden"; then
return 1
else
return 0
fi
}
_qbt_isreachable(){
_cmd "nc -4 -vw 5 ${config["Server"]} ${config["Port"]} &>/dev/null 2>&1"
return $?
}
# --- Main Logic ---
pnat_set() {
if [ -z "${config["SID"]}" ]; then
bashio::log.info "qBittorrent SessionID not set, getting new SessionID"
if ! _qbt_login; then
bashio::log.error "Failed getting new SessionID from qBittorrent"
return 1
fi
else
if ! _qbt_check_sid; then
bashio::log.info "qBittorrent Cookie invalid, getting new SessionID"
if ! _qbt_login; then
bashio::log.error "Failed getting new SessionID from qBittorrent"
return 1
fi
else
bashio::log.debug "qBittorrent SessionID Ok!"
fi
fi
if _qbt_get_port; then
bashio::log.debug "Configured Torrent Port: ${config["TorrentPort"]}"
else
bashio::log.error "Failed to get current Torrent Port configuration"
return 1
fi
if [ -z "${config["IPv4Gateway"]}" ]; then
bashio::log.info "VPN Gateway not know, will try to detect it."
if ! _pnat_get_gw; then
bashio::log.error "Failed to determine VPN gateway IP address. Cannot perform NAT-PMP/UPnP port mapping."
return 1
else
bashio::log.info "VPN Gateway detected: ${config["IPv4Gateway"]}"
fi
fi
if _pnat_get_port; then
bashio::log.debug "Active uPNP Port: ${config["UPnPPort"]}"
else
bashio::log.error "Failed to get current uPNP port mapping"
return 1
fi
if [ "${config["TorrentPort"]}" != "${config["UPnPPort"]}" ]; then
bashio::log.info "Changing Torrent port"
if _qbt_set_port; then
if _pnat_set_firewall; then
bashio::log.info "IPTables rule added for Torrent port ${config["UPnPPort"]}"
else
bashio::log.error "Failed to set firewall rules for Torrent port ${config["UPnPPort"]}"
return 1
fi
bashio::log.info "Torrent Port Changed to: ${config["UPnPPort"]}"
else
bashio::log.error "Torrent Port Change failed."
return 1
fi
else
bashio::log.debug "Torrent Port OK (Act: ${config["UPnPPort"]} Cfg: ${config["TorrentPort"]})"
fi
return 0
}
# -------------------------------
# Main logic
# -------------------------------
_parse_config "/config/qBittorrent/qBittorrent.conf"
config["Interval"]=$(( ${VPN_UPNP_INTERVAL} + (${VPN_UPNP_INTERVAL} / 2) ))
bashio::log.info "VPN UPnP enabled, starting NAT-PMP/UPnP monitor with an interval of ${VPN_UPNP_INTERVAL} seconds (UPnP lease interval: ${config["Interval"]} seconds)."
while true;
do
sleep ${VPN_UPNP_INTERVAL} & wait $!
if pnat_set; then
bashio::log.info "NAT-PMP/UPnP Ok!"
else
bashio::log.error "NAT-PMP/UPnP Failed"
fi
done
+142 -36
View File
@@ -40,6 +40,7 @@ _parse_config() {
}
_parse_dns() {
local dns_ip
local -a dns_conf=()
local -a dns_backup_ipv4=("8.8.8.8" "1.1.1.1")
local -a dns_backup_ipv6=("2001:4860:4860::8888" "2606:4700:4700::1111")
@@ -155,19 +156,24 @@ _routing_add() {
local local_ipv6=$(ip addr show ${config["Interface"]} | grep 'inet6 ' | awk '{print $2}' | cut -d'/' -f1)
local ipv4
local ipv6
local dns_ip
# add routing rules for local IPs
for ipv4 in ${local_ipv4}; do
config["IPv4Enabled"]="true"
_cmd "ip -4 route add default dev ${config["Interface"]} table ${config["Table"]}" || return 1
_cmd "ip -4 rule add priority 1 from ${ipv4} table ${config["Table"]}" || return 1
_cmd "ip -4 rule add priority 1 to ${ipv4}/24 table ${config["Table"]}" || return 1
done
if [ "${config["IPv4Enabled"]}" = "true" ]; then
_cmd "ip -4 route add default dev ${config["Interface"]} table ${config["Table"]}" || return 1
fi
for ipv6 in ${local_ipv6}; do
config["IPv6Enabled"]="true"
_cmd "ip -6 rule add priority 1 from ${ipv6} table ${config["Table"]}" || return 1
_cmd "ip -6 rule add priority 1 to ${ipv6}/64 table ${config["Table"]}" || return 1
done
if [ "${config["IPv6Enabled"]}" = "true" ]; then
_cmd "ip -6 route add default dev ${config["Interface"]} table ${config["Table"]}" || true
_cmd "ip -6 route add default dev ${config["Interface"]} table ${config["Table"]}" || return 1
fi
# get valid DNS servers
@@ -182,15 +188,11 @@ _routing_add() {
#_cmd "ip -6 route add ${dns_ip} dev ${config["Interface"]}" || return 1
_cmd "ip -6 rule add priority 1 to ${dns_ip} table ${config["Table"]}" || return 1
done
# Update resolv.conf with VPN DNS servers
_resolvconf "update"
}
_routing_del() {
bashio::log.info "Removing routing rules for VPN interface ${config["Interface"]}..."
_resolvconf "reset"
while _cmd "ip -4 rule del priority 1 from all table ${config["Table"]} 2>/dev/null"; do :; done
while _cmd "ip -4 rule del priority 1 to all table ${config["Table"]} 2>/dev/null"; do :; done
while _cmd "ip -4 route del default dev ${config["Interface"]} table ${config["Table"]} 2>/dev/null"; do :; done
@@ -199,20 +201,52 @@ _routing_del() {
while _cmd "ip -6 route del default dev ${config["Interface"]} table ${config["Table"]} 2>/dev/null"; do :; done
}
# --- Firewall Specific Functions ---
_firewall_add() {
if [ "${config["IPv4Enabled"]}" = "true" ]; then
_cmd "iptables -N pnat" || return 1
_cmd "iptables -A INPUT -i ${config["Interface"]} -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT" || return 1
_cmd "iptables -A INPUT -i ${config["Interface"]} -p icmp -j ACCEPT" || return 1
_cmd "iptables -A INPUT -i ${config["Interface"]} -j pnat" || return 1
_cmd "iptables -A INPUT -i ${config["Interface"]} -j DROP" || return 1
fi
if [ "${config["IPv6Enabled"]}" = "true" ]; then
_cmd "ip6tables -N pnat" || return 1
_cmd "ip6tables -A INPUT -i ${config["Interface"]} -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT" || return 1
_cmd "ip6tables -A INPUT -i ${config["Interface"]} -p icmpv6 -j ACCEPT" || return 1
_cmd "ip6tables -A INPUT -i ${config["Interface"]} -j pnat" || return 1
_cmd "ip6tables -A INPUT -i ${config["Interface"]} -j DROP" || return 1
fi
}
_firewall_del() {
if [ "${config["IPv4Enabled"]}" = "true" ]; then
_cmd "iptables -F INPUT" || true
_cmd "iptables -F pnat" || true
_cmd "iptables -X pnat" || true
fi
if [ "${config["IPv6Enabled"]}" = "true" ]; then
_cmd "ip6tables -F INPUT" || true
_cmd "ip6tables -F pnat" || true
_cmd "ip6tables -X pnat" || true
fi
}
# --- WireGuard Specific Logic ---
_wg_wait_handshake() {
_wireguard_check() {
local timeout="${1:-20}"
local iface="${config["Interface"]}"
local peer_pk="${config["PublicKey"]}"
local deadline ts
deadline=$(( $(date +%s) + timeout ))
while [ "$(date +%s)" -lt "${deadline}" ]; do
ping -I "${iface}" -c1 -W1 1.1.1.1 >/dev/null 2>&1 || true
ping -I "${config["Interface"]}" -c1 -W1 1.1.1.1 >/dev/null 2>&1 || true
ts="$(wg show "${iface}" latest-handshakes 2>/dev/null | awk -v pk="${peer_pk}" '$1==pk{print $2; exit}')"
ts="$(wg show "${config["Interface"]}" latest-handshakes 2>/dev/null | awk -v pk="${config["PublicKey"]}" '$1==pk{print $2; exit}')"
if [ -n "${ts}" ] && [ "${ts}" -gt 0 ] 2>/dev/null; then
return 0
fi
@@ -220,17 +254,25 @@ _wg_wait_handshake() {
done
bashio::log.error "WireGuard handshake not established after ${timeout}s (latest-handshake=${ts:-0})."
wg show "${iface}" 2>&1 | while IFS= read -r l; do bashio::log.error "${l}"; done
wg show "${config["Interface"]}" 2>&1 | while IFS= read -r l; do bashio::log.error "${l}"; done
return 1
}
_wireguard_up() {
local local_ip
local -a local_ips=()
local -A local_ip_types=()
local allowed_ip
local -a allowed_ips=()
local -A allowed_ip_types=()
local key
bashio::log.warning "This script force Wireguard to ignore any routes and DNS settings."
bashio::log.warning "Default route will be inserted into custom routing table: ${config["Table"]}"
bashio::log.warning "This routing table will be used for traffic from the VPN interface and to the configured DNS servers."
bashio::log.warning "Qbittorrent bittorrent client shall be set to use the VPN interface ${config["Interface"]} only."
for key in "Interface" "ListenPort" "PrivateKey" "PublicKey" "EndpointIP" "EndpointPort" ; do
for key in "Interface" "ListenPort" "PrivateKey" "PublicKey" "EndpointIP" "EndpointPort" "Address"; do
if [ ! -v config[$key] ] || [ -z "${config[$key]}" ]; then
bashio::log.error "Missing required WireGuard configuration parameter: ${key}"
return 1
@@ -238,28 +280,51 @@ _wireguard_up() {
done
_cmd "ip link add ${config["Interface"]} type wireguard" || return 1
local allowed_ips=""
local -a local_ips=()
mapfile -d ',' -t local_ips < <(echo "${config["Address"]}" | tr -d ' ')
for local_ip in ${local_ips[@]}; do
local result=0
_check_host "${local_ip}" || result=$?
if [ "${result}" -eq 1 ]; then
allowed_ips="${allowed_ips},0.0.0.0/0"
config["IPv4Enabled"]="true"
local_ip_types["${local_ip}"]="ipv4"
allowed_ip_types["0.0.0.0/0"]="ipv4"
_cmd "ip addr add ${local_ip} dev ${config["Interface"]}" || return 1
elif [ "${result}" -eq 2 ]; then
allowed_ips="${allowed_ips},::/0"
config["IPv6Enabled"]="true"
local_ip_types["${local_ip}"]="ipv6"
_cmd "ip addr add ${local_ip} dev ${config["Interface"]}" || return 1
else
bashio::log.warning "Ignoring invalid local IP address: ${local_ip}"
fi
done
allowed_ips="${allowed_ips#,}"
if [ -z "${allowed_ips}" ]; then
bashio::log.error "No valid local IP addresses configured."
if [ ${#local_ip_types[@]} -eq 0 ]; then
bashio::log.error "No valid local IP addresses configured for WireGuard interface."
return 1
fi
mapfile -d ',' -t allowed_ips < <(echo "${config["Address"]}" | tr -d ' ')
for allowed_ip in ${allowed_ips[@]}; do
local result=0
_check_host "${allowed_ip}" || result=$?
if [ "${result}" -eq 1 ] && [ "${config["IPv4Enabled"]}" == "true" ]; then
allowed_ip_types["${allowed_ip}"]="ipv4"
#allowed_ip_types["0.0.0.0/0"]="ipv4"
elif [ "${result}" -eq 2 ] && [ "${config["IPv6Enabled"]}" == "true" ]; then
allowed_ip_types["${allowed_ip}"]="ipv6"
#allowed_ip_types["::/0"]="ipv6"
else
bashio::log.error "Invalid allowed IP address: ${allowed_ip}"
return 1
fi
done
if [ ${#allowed_ip_types[@]} -eq 0 ]; then
bashio::log.error "No valid allowed IP addresses configured for WireGuard peer."
return 1
fi
printf -v allowed_ips '%s,' "${!allowed_ip_types[@]}"
allowed_ips="${allowed_ips%,}"
_cmd "wg set ${config["Interface"]} listen-port ${config["ListenPort"]} private-key ${config["PrivateKey"]}" || return 1
local endpoint="${config["EndpointIP"]}:${config["EndpointPort"]}"
if [[ "${config["EndpointIP"]}" == *:* ]]; then
@@ -279,18 +344,32 @@ _wireguard_up() {
fi
_cmd "ip link set ${config["Interface"]} up" || return 1
_routing_add
_wg_wait_handshake 10 || return 1
# Add routing rules for VPN interface and DNS servers
_routing_add || return 1
# Add firewall rules for VPN interface
_firewall_add || return 1
# Update resolv.conf with VPN DNS servers
_resolvconf "update" || return 1
# Wait for handshake to be established before returning success
_wireguard_check 10 || return 1
}
_wireguard_down() {
_routing_del
# Update resolv.conf to remove VPN DNS servers
_resolvconf "reset" || true
# Remove routing rules for VPN interface and DNS servers
_routing_del || true
# Remove firewall rules for VPN interface
_firewall_del || true
_cmd "ip link set ${config["Interface"]} down" 2>/dev/null || true
_cmd "ip link del ${config["Interface"]}" 2>/dev/null || true
}
wireguard() {
local mode=$1
local key
local interface
local config_file
local WIREGUARD_STATE_DIR="/var/run/wireguard"
@@ -328,7 +407,7 @@ wireguard() {
printf '%s\n' "${config["PrivateKey"]}" > "${WIREGUARD_STATE_DIR}/privatekey"
chmod 600 "${WIREGUARD_STATE_DIR}/privatekey" || true
config["PrivateKey"]="${WIREGUARD_STATE_DIR}/privatekey"
if [ -n "${config["PresharedKey"]:-}" ]; then
printf '%s\n' "${config["PresharedKey"]}" > "${WIREGUARD_STATE_DIR}/presharedkey"
chmod 600 "${WIREGUARD_STATE_DIR}/presharedkey" || true
@@ -384,6 +463,23 @@ wireguard() {
# --- OpenVPN Specific Logic ---
_openvpn_check() {
local timeout="${1:-20}"
local deadline ts
deadline=$(( $(date +%s) + timeout ))
while [ "$(date +%s)" -lt "${deadline}" ]; do
if ip link show "${config["Interface"]}" > /dev/null 2>&1 ; then
return 0
fi
sleep 2
done
bashio::log.error "OpenVPN interface ${config["Interface"]} failed to come up after ${timeout}s."
return 1
}
_openvpn_up() {
bashio::log.warning "This script force OpenvPN to ignore any routes and DNS settings pushed by the server."
bashio::log.warning "Default route will be inserted into custom routing table: ${config["Table"]}"
@@ -418,21 +514,31 @@ _openvpn_up() {
--route-nopull \
--route-noexec" || return 1
#wait for slow OpenVPN interface to come up
for i in {1..10}; do
if ip link show "${config["Interface"]}" > /dev/null 2>&1 ; then
return 0
fi
sleep 2
done
bashio::log.error "OpenVPN interface ${config["Interface"]} failed to come up."
return 1
# Wait for the VPN interface to come up
_openvpn_check 30 || return 1
}
_openvpn_down() {
# Terminate OpenVPN process
pkill -f "openvpn --config ${config["ConfigFile"]}" || true
_routing_del
}
_openpvn_postup() {
# Add routing rules for VPN interface and DNS servers
_routing_add || return 1
# Add firewall rules for VPN interface
_firewall_add || return 1
# Update resolv.conf with VPN DNS servers
_resolvconf "update" || return 1
}
_openpvn_postdown() {
# Update resolv.conf to remove VPN DNS servers
_resolvconf "reset" || true
# Remove routing rules for VPN interface and DNS servers
_routing_del || true
# Remove firewall rules for VPN interface
_firewall_del || true
}
openvpn() {
@@ -480,10 +586,10 @@ openvpn() {
bashio::log.info "OpenVPN on interface ${config["Interface"]} is down."
bashio::exit.ok 'OpenVPN stopped.'
elif [ "${mode}" = "postup" ]; then
_routing_add
_openpvn_postup
bashio::exit.ok 'OpenVPN routes added.'
elif [ "${mode}" = "postdown" ]; then
_routing_del
_openpvn_postdown
bashio::exit.ok 'OpenVPN routes deleted.'
else
bashio::log.error "Invalid OpenVPN mode specified. Use 'up', 'down', 'postup', or 'postdown'."
+3
View File
@@ -1,4 +1,7 @@
## v1.47.1 (2026-03-21)
- Update to latest version from Starosdev/scrutiny (changelog : https://github.com/Starosdev/scrutiny/releases)
## v1.46.2 (2026-03-14)
- Update to latest version from Starosdev/scrutiny (changelog : https://github.com/Starosdev/scrutiny/releases)
+1 -1
View File
@@ -113,4 +113,4 @@ schema:
slug: scrutiny
udev: true
url: https://github.com/Starosdev/scrutiny
version: "v1.46.2"
version: "v1.47.1"
+2 -2
View File
@@ -1,10 +1,10 @@
{
"github_fulltag": "true",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"paused": false,
"repository": "alexbelgium/hassio-addons",
"slug": "scrutiny",
"source": "github",
"upstream_repo": "Starosdev/scrutiny",
"upstream_version": "v1.46.2"
"upstream_version": "v1.47.1"
}
+3
View File
@@ -1,4 +1,7 @@
## v1.47.1 (2026-03-21)
- Update to latest version from Starosdev/scrutiny (changelog : https://github.com/Starosdev/scrutiny/releases)
## v1.46.2 (2026-03-14)
- Update to latest version from Starosdev/scrutiny (changelog : https://github.com/Starosdev/scrutiny/releases)
+1 -1
View File
@@ -45,4 +45,4 @@ schema:
slug: scrutiny_fa
udev: true
url: https://github.com/Starosdev/scrutiny
version: "v1.46.2"
version: "v1.47.1"
+2 -2
View File
@@ -1,10 +1,10 @@
{
"github_fulltag": "true",
"last_update": "2026-03-14",
"last_update": "2026-03-21",
"paused": false,
"repository": "alexbelgium/hassio-addons",
"slug": "scrutiny_fa",
"source": "github",
"upstream_repo": "Starosdev/scrutiny",
"upstream_version": "v1.46.2"
"upstream_version": "v1.47.1"
}
+5 -1
View File
@@ -1,5 +1,9 @@
## 3.1.0 (2026-02-28)
## 3.1.0-2 (22-03-2026)
- Added configurable `NODE_MEMORY_LIMIT` option (default 512 MB) to control Node.js heap size and prevent OOM kills
## 3.1.0 (22-03-2026)
- Set default Node.js memory limit (512MB) to prevent OOM kills that caused the addon to stop responding
- Update to latest version from seerr-team/seerr (changelog : https://github.com/seerr-team/seerr/releases)
## 3.0.1 (2026-02-21)
+2
View File
@@ -26,6 +26,7 @@ Use `env_vars` to pass extra environment variables when needed. Seerr configurat
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `NODE_MEMORY_LIMIT` | int | `512` | Maximum Node.js heap memory in MB. Increase if Seerr crashes with large libraries; decrease on memory-constrained systems. |
| `PGID` | int | `0` | Group ID for file permissions |
| `PUID` | int | `0` | User ID for file permissions |
| `TZ` | str | | Timezone (e.g. `Europe/London`) |
@@ -33,6 +34,7 @@ Use `env_vars` to pass extra environment variables when needed. Seerr configurat
### Example
```yaml
NODE_MEMORY_LIMIT: 512
env_vars: []
PGID: 0
PUID: 0
+3 -1
View File
@@ -74,6 +74,7 @@ map:
- addon_config:rw
name: Seerr
options:
NODE_MEMORY_LIMIT: 512
env_vars: []
PGID: "0"
PUID: "0"
@@ -87,10 +88,11 @@ schema:
env_vars:
- name: match(^[A-Za-z0-9_]+$)
value: str?
NODE_MEMORY_LIMIT: int
PGID: int
PUID: int
TZ: str?
slug: seerr
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/seerr
version: "3.1.0"
version: "3.1.0-2"
+7
View File
@@ -4,5 +4,12 @@ set -e
cd /app || exit 1
# Set Node.js memory limit from addon option to prevent OOM kills
# NODE_MEMORY_LIMIT is exported as env var by 00-global_var.sh from config.yaml
MEMORY_LIMIT="${NODE_MEMORY_LIMIT:-512}"
if [[ "${NODE_OPTIONS:-}" != *"max-old-space-size"* ]] && [[ "${NODE_OPTIONS:-}" != *"max_old_space_size"* ]]; then
export NODE_OPTIONS="${NODE_OPTIONS:+${NODE_OPTIONS} }--max-old-space-size=${MEMORY_LIMIT}"
fi
bashio::log.info "Starting Seerr..."
exec npm start
+3
View File
@@ -1,4 +1,7 @@
## 1.6.1 (2026-03-21)
- Update to latest version from GerardPolloRebozado/social-to-mealie (changelog : https://github.com/GerardPolloRebozado/social-to-mealie/releases)
## 1.6.0 (2026-03-07)
- Update to latest version from GerardPolloRebozado/social-to-mealie (changelog : https://github.com/GerardPolloRebozado/social-to-mealie/releases)
+1 -1
View File
@@ -1,5 +1,5 @@
name: Social to Mealie
version: "1.6.0"
version: "1.6.1"
slug: social_to_mealie
description: Import recipes from social media directly into Mealie
url: https://github.com/alexbelgium/hassio-addons
Loaded 100 of 118 files, more files were not shown because too many files have changed in this diff. Show more