47 Commits

Author SHA1 Message Date
Alexandre
86e10379cd Update run 2025-11-24 09:47:56 +01:00
github-actions
c610500d15 GitHub bot: changelog 2025-11-24 08:30:10 +00:00
Alexandre
374b3b8c4c Remove version 5.1.2-18 entry from CHANGELOG
Removed outdated entry for version 5.1.2-18 from CHANGELOG.
2025-11-24 09:23:49 +01:00
Alexandre
f94b1fd18f Update config.yaml 2025-11-24 09:23:38 +01:00
Alexandre
a230b28ffd Update run 2025-11-24 09:22:28 +01:00
Alexandre
81cee949ab Modify VPN monitor condition for public IP check
Change condition to check if /currentip is not empty before starting the VPN monitor.
2025-11-24 09:09:56 +01:00
Alexandre
72d1071fa5 Change condition for VPN leakage service start 2025-11-24 09:09:21 +01:00
github-actions
5fd7b5ed32 GitHub bot: changelog 2025-11-24 08:08:06 +00:00
Alexandre
6f28b28d3d Cleanup changelog by removing old entries
Removed outdated changelog entries for versions 5.1.2-17 and 5.1.2-16.
2025-11-24 09:02:57 +01:00
Alexandre
f74569d99a Update qbittorrent version to 5.1.2-18 2025-11-24 09:02:47 +01:00
Alexandre
b3be37640e Improve validation and error handling in svc-qbittorrent
Refactor validation and error handling in WireGuard setup.
2025-11-24 09:02:35 +01:00
Alexandre
7ee0c3785e Clean up country code URL sources in run script
Removed unused URL sources for country code lookup.
2025-11-24 08:59:09 +01:00
github-actions
7308f78a39 GitHub bot: changelog 2025-11-24 07:56:47 +00:00
Alexandre
3f17818ce9 Update qBittorrent version to 5.1.2-17 2025-11-24 08:51:17 +01:00
Alexandre
0264ef9d97 Implement public IP check for VPN leak monitoring
Added public IP fetching and logging for VPN services.
2025-11-24 08:50:17 +01:00
Alexandre
822c03dac9 Refactor VPN and WireGuard handling in run script
Refactor VPN leak monitoring and WireGuard setup logic, improving clarity and functionality. Adjust log messages for better understanding.
2025-11-24 08:46:48 +01:00
Alexandre
bda1ffedde Enhance VPN leak monitoring and IP fetching methods
Refactor public IP fetching and VPN leak monitoring logic. Introduce new helper functions for fetching public IP and country code with improved error handling and randomization of URL sources. Update WireGuard and OpenVPN integration to include leak monitoring.
2025-11-24 08:45:37 +01:00
Alexandre
6e7308f4e6 Remove IP address retrieval from WireGuard script
Removed the code that retrieves the current IP address.
2025-11-24 08:18:38 +01:00
Alexandre
79ed3e5808 clean 2025-11-24 07:18:00 +00:00
Alexandre
e4b963a267 Update 93-openvpn.sh 2025-11-24 08:17:16 +01:00
Alexandre
f59c21e72e Refactor public_ip.sh for better portability and error handling
Updated shebang to use env for portability and improved error handling in public IP retrieval.
2025-11-24 08:13:46 +01:00
Alexandre
5a41d1c265 Add script to fetch public IP from multiple providers
This script attempts to retrieve the public IP address by querying multiple services in a randomized order. If successful, it writes the IP to /currentip; otherwise, it outputs an error message.
2025-11-24 08:11:13 +01:00
github-actions
7342b37a06 Github bot : image compressed 2025-11-23 23:06:31 +00:00
github-actions
55dcc50db5 GitHub bot: changelog 2025-11-23 16:18:40 +00:00
Alexandre
a2ac40cb5f Clean up changelog by removing old entries
Removed outdated changelog entries for versions 5.1.2-15 and 5.1.2-14.
2025-11-23 16:13:23 +00:00
Alexandre
30ddded1e7 Bump qbittorrent version to 5.1.2-16 2025-11-23 16:13:06 +00:00
Alexandre
1ce8364f54 Update run 2025-11-23 16:12:38 +00:00
github-actions
7bf0069840 GitHub bot: changelog 2025-11-23 15:56:44 +00:00
Alexandre
8863fa34f3 Bump qBittorrent version to 5.1.2-15 2025-11-23 15:50:56 +00:00
Alexandre
558ecd07cd Update IP retrieval method in WireGuard script 2025-11-23 15:50:41 +00:00
Alexandre
ca6ad47646 Update IP retrieval method in OpenVPN script 2025-11-23 15:50:13 +00:00
github-actions
a8e81b7482 GitHub bot: changelog 2025-11-23 15:49:16 +00:00
Alexandre
ce1fba1745 Update CHANGELOG with new feature entry
Added a new entry to the changelog for cycling through IP providers.
2025-11-23 15:43:31 +00:00
Alexandre
87ace5f42c Update qBittorrent version to 5.1.2-14 2025-11-23 15:42:59 +00:00
Alexandre
1efa2ce23a Update run 2025-11-23 15:42:17 +00:00
Alexandre
9084975422 Merge pull request #2231 from alexbelgium/codex/force-generate-default-config.json
Bump epicgamesfree to debian-2025-11-19
2025-11-23 15:33:20 +00:00
Alexandre
2c7426c284 Bump epicgamesfree version to debian-2025-11-19 2025-11-23 15:32:17 +00:00
Alexandre
953ce8aed4 Merge pull request #2230 from alexbelgium/codex/fix-issue-with-hassio-addons
Restore epicgamesfree config.json template
2025-11-23 15:16:27 +00:00
Alexandre
966758bf74 Restore config.json template for epicgamesfree 2025-11-23 15:14:34 +00:00
github-actions
739f3c4a65 GitHub bot: changelog 2025-11-23 14:37:34 +00:00
Alexandre
40e8e2a46e Merge pull request #2228 from alexbelgium/codex/fix-issue-#2227-in-hassio-addons
Fix Jellyfin GuC option default handling
2025-11-23 14:21:20 +00:00
Alexandre
d1e63f90ab Fix Jellyfin i915 GuC option default 2025-11-23 14:20:33 +00:00
github-actions
818cd564e0 GitHub bot: changelog 2025-11-23 11:45:25 +00:00
github-actions
8c4a2f646e GitHub bot: changelog 2025-11-23 11:45:25 +00:00
Alexandre
e9678ea72e Merge pull request #2226 from danez/fiximmich
Rerelease immich and immich-noml 2.3.1
2025-11-23 11:24:52 +00:00
Daniel Tschinder
3fa45751d8 Update immich version to rebuild 2025-11-23 11:18:02 +01:00
github-actions[bot]
b0c45804fe Update stargazer map & cache 2025-11-23 01:08:15 +00:00
125 changed files with 426 additions and 239 deletions

View File

@@ -197,6 +197,7 @@ Fabian-Eigenherd,Germany
Faithfinder,Canada
FallsSteven,
Felitendo,
Filipza,
Flipsoo,
FloppiTuna,United States
Fluffy-Bunny-23,
@@ -487,6 +488,7 @@ Rapozillha,Portugal
Raw2x2,
RdN-J,
RealJustMe,
Redmno,
Reiqu,Germany
RemcoSchrijver,Netherlands
Rene2302,
@@ -494,6 +496,7 @@ RescueWolf-Dreamwalker,
RhaaKaye,
RicLund,Canada
Richyread,
RimmeVG,
Rimpla,
Robbot,Ireland
RobertZwets,
@@ -581,6 +584,7 @@ Syuq,
T-I-M-O-T,
TCTnz,
THENEXTBIGTIME,
TS-1709,
TarrX,Germany
Tche333,
Tchoupinax,
@@ -814,6 +818,7 @@ bigsby-exe,United Kingdom
bilak,Czechia
bitDealer,
bjackerman,United States
bjoe10,
bkuri,Mexico
blackshoals,
blairun,
@@ -946,6 +951,7 @@ ctrlaltprocrastinate,
ctyfrank,
cuza,Cuba
cvladan,
cvroque,
cwmoriarty,
cy1798,
cyberjohn60,
@@ -1051,6 +1057,7 @@ dtrochow,
duckduckuk,United Kingdom
duhaijian,
dumbledorethor,
dutzi88,
duydo,Viet Nam
dwainegallimore,United Kingdom
dykandDK,
@@ -1094,6 +1101,7 @@ ettoreboy,
euneuneu,
evalevil,China
everconnectcn,
everestlion,
evertonerik,
evnb,United States
excodex,United Kingdom
@@ -1358,6 +1366,7 @@ jokob-sk,
joluas,
jonaslang1,Germany
jonathanweinberg,
jonbeckman,
jonssonjunior94,
joostiphone,
jopacar1,
@@ -1959,6 +1968,7 @@ starbuck93,United States
steef84,
stef-th,
stefangries,
steinmaerivoet,Belgium
stephenjharrington,
stepping-razor,Czechia
stetho,United Kingdom
@@ -2179,5 +2189,6 @@ zjw57,China
zking7,
zonorti,Germany
zr-idt,
zuranthus,Sweden
zweehn,
zymotik,Germany
1 username country
197 Faithfinder Canada
198 FallsSteven
199 Felitendo
200 Filipza
201 Flipsoo
202 FloppiTuna United States
203 Fluffy-Bunny-23
488 Raw2x2
489 RdN-J
490 RealJustMe
491 Redmno
492 Reiqu Germany
493 RemcoSchrijver Netherlands
494 Rene2302
496 RhaaKaye
497 RicLund Canada
498 Richyread
499 RimmeVG
500 Rimpla
501 Robbot Ireland
502 RobertZwets
584 T-I-M-O-T
585 TCTnz
586 THENEXTBIGTIME
587 TS-1709
588 TarrX Germany
589 Tche333
590 Tchoupinax
818 bilak Czechia
819 bitDealer
820 bjackerman United States
821 bjoe10
822 bkuri Mexico
823 blackshoals
824 blairun
951 ctyfrank
952 cuza Cuba
953 cvladan
954 cvroque
955 cwmoriarty
956 cy1798
957 cyberjohn60
1057 duckduckuk United Kingdom
1058 duhaijian
1059 dumbledorethor
1060 dutzi88
1061 duydo Viet Nam
1062 dwainegallimore United Kingdom
1063 dykandDK
1101 euneuneu
1102 evalevil China
1103 everconnectcn
1104 everestlion
1105 evertonerik
1106 evnb United States
1107 excodex United Kingdom
1366 joluas
1367 jonaslang1 Germany
1368 jonathanweinberg
1369 jonbeckman
1370 jonssonjunior94
1371 joostiphone
1372 jopacar1
1968 steef84
1969 stef-th
1970 stefangries
1971 steinmaerivoet Belgium
1972 stephenjharrington
1973 stepping-razor Czechia
1974 stetho United Kingdom
2189 zking7
2190 zonorti Germany
2191 zr-idt
2192 zuranthus Sweden
2193 zweehn
2194 zymotik Germany

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 62 KiB

BIN
.github/stats.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 4.6 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.1 KiB

After

Width:  |  Height:  |  Size: 1.5 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: 2.8 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.7 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: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.7 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.9 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.8 KiB

After

Width:  |  Height:  |  Size: 1.4 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: 2.5 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: 2.9 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: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 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: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,4 +1,11 @@
## debian-2025-11-19 (2025-11-19)
- Recreate a default config.json when only a legacy config.yaml is present so upgrades keep a usable configuration file
## debian-2025-11-18 (2025-11-18)
- Restore the default configuration template to config.json with the expected sample values
- Recreate a default config.json when only a legacy config.yaml is present so upgrades keep a usable configuration file
## debian-2025-11-16 (2025-11-16)
- Update to latest version from charlocharlie/epicgames-freegames
## "debian-2025-11-09" (09-11-2025)

View File

@@ -28,13 +28,13 @@ This addon is based on the docker image https://hub.docker.com/r/charlocharlie/e
## Configuration
Addon options expose the `env_vars` field for passing extra environment variables; all other configuration is done via JSON files.
Addon options expose the `env_vars` field for passing extra environment variables; all other configuration is done via the JSON file.
### Configuration Files
Configuration files are stored in `/config/addons_config/epicgamesfree/`:
- **config.yaml**: Main configuration file
- **config.json**: Main configuration file
- **cookies.json**: Authentication cookies (optional)
If these files don't exist, they will be created at first boot with default settings.
@@ -43,23 +43,26 @@ If these files don't exist, they will be created at first boot with default sett
### Basic Configuration
Create `/config/addons_config/epicgamesfree/config.yaml`:
Create `/config/addons_config/epicgamesfree/config.json`:
```json
{
"runOnStartup": true,
"cronSchedule": "0 */6 * * *",
"logLevel": "info",
"webPortalConfig": {
"baseUrl": "https://epic.example.com"
},
"accounts": [
{
"email": "your-epic-email@example.com",
"email": "your-epic-email@example.com",
"password": "your-password",
"totp": "OPTIONAL_2FA_SECRET"
}
],
"intervalHours": 24,
"onlyWeekly": false,
"searchStrategy": "purchase",
"browserNavigationTimeout": 300000,
"notifications": {
"email": {
"notifiers": [
{
"type": "email",
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"emailSenderAddress": "notifications@example.com",
@@ -71,7 +74,7 @@ Create `/config/addons_config/epicgamesfree/config.yaml`:
"pass": "your-app-password"
}
}
}
]
}
```
@@ -80,51 +83,52 @@ Create `/config/addons_config/epicgamesfree/config.yaml`:
| Option | Type | Description |
|--------|------|-------------|
| `accounts` | array | List of Epic Games accounts |
| `intervalHours` | number | Check interval in hours (default: 24) |
| `onlyWeekly` | boolean | Only claim weekly free games |
| `searchStrategy` | string | Search strategy: "purchase" or "claim" |
| `browserNavigationTimeout` | number | Browser timeout in milliseconds |
| `notifications` | object | Notification settings (email, webhook, etc.) |
| `cronSchedule` | string | Cron schedule to claim games (default: `0 */6 * * *`) |
| `runOnStartup` | boolean | Run a claim cycle when the add-on starts |
| `logLevel` | string | Application log level |
| `webPortalConfig.baseUrl` | string | Base URL used by the included web portal |
| `notifiers` | array | Notification targets such as email, Discord, Telegram, Apprise, etc. |
### Account Configuration
For each account in the `accounts` array:
```json
{
"email": "account@example.com",
"password": "password",
"totp": "TOTP_SECRET",
"onlyWeekly": true
}
```yaml
email: account@example.com
password: password
totp: TOTP_SECRET
onlyWeekly: true
```
### Notification Methods
#### Email Notifications
```json
"notifications": {
"email": {
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"emailSenderAddress": "sender@example.com",
"emailRecipientAddress": "recipient@example.com",
"secure": false,
"auth": {
"user": "sender@example.com",
"pass": "app-password"
}
}
}
```yaml
notifications:
email:
smtpHost: smtp.gmail.com
smtpPort: 587
emailSenderAddress: sender@example.com
emailRecipientAddress: recipient@example.com
secure: false
auth:
user: sender@example.com
pass: app-password
```
#### Webhook Notifications
```json
"notifications": {
"webhook": {
"url": "https://your-webhook-url.com",
"events": ["purchase-success", "already-owned"]
}
{
"notifiers": [
{
"type": "webhook",
"url": "https://your-webhook-url.com",
"events": [
"purchase-success",
"already-owned"
]
}
]
}
```
@@ -144,9 +148,11 @@ For detailed cookie import instructions, see: https://github.com/claabs/epicgame
### Troubleshooting
#### Timeout Errors
Add the following to your config.yaml:
Add the following to your config.json:
```json
"browserNavigationTimeout": 300000
{
"browserNavigationTimeout": 300000
}
```
#### Login Issues
@@ -172,7 +178,7 @@ The installation of this add-on is pretty straightforward and not different in c
### Timeout error
Please try adding `"browserNavigationTimeout": 300000,` to your config.yaml (https://github.com/alexbelgium/hassio-addons/issues/675#issuecomment-1407675351)
Please try adding `"browserNavigationTimeout": 300000,` to your config.json (https://github.com/alexbelgium/hassio-addons/issues/675#issuecomment-1407675351)
### Other errors

View File

@@ -86,5 +86,5 @@ schema:
slug: epicgamesfree
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "debian-2025-11-16"
version: "debian-2025-11-19"
webui: "[PROTO:ssl]://[HOST]:[PORT:3000]"

View File

@@ -7,15 +7,22 @@ set -e
##############
HOME="/config/addons_config/epicgamesfree"
if [ ! -f "$HOME"/config.json ]; then
CONFIG_JSON="$HOME/config.json"
LEGACY_YAML="$HOME/config.yaml"
if [ ! -f "$CONFIG_JSON" ]; then
if [ -f "$LEGACY_YAML" ]; then
bashio::log.warning "A legacy config.yaml was found. A default config.json will be created. Please migrate your settings to the new file format and restart the add-on"
fi
# Copy default config.json
cp /templates/config.json "$HOME"/config.json
chmod 755 "$HOME"/config.json
bashio::log.warning "A default config.json file was copied in $HOME. Please customize according to https://github.com/claabs/epicgames-freegames-node#json-configuration and restart the add-on"
cp /templates/config.json "$CONFIG_JSON"
chmod 755 "$CONFIG_JSON"
bashio::log.warning "A default config.json file was copied in $HOME. Please customize according to https://github.com/claabs/epicgames-freegames-node#configuration and restart the add-on"
sleep 5
bashio::exit.nok
else
bashio::log.warning "The config.json file found in $HOME will be used. Please customize according to https://github.com/claabs/epicgames-freegames-node#json-configuration and restart the add-on"
bashio::log.warning "The config.json file found in $HOME will be used. Please customize according to https://github.com/claabs/epicgames-freegames-node#configuration and restart the add-on"
fi
# Permissions

View File

@@ -0,0 +1,78 @@
{
"runOnStartup":true,
"cronSchedule":"0 */6 * * *",
"logLevel":"info",
"webPortalConfig":{
"baseUrl":"https://epic.example.com"
},
"accounts":[
{
"email":"example@gmail.com"
}
],
"notifiers":[
{
"type":"email",
"smtpHost":"smtp.gmail.com",
"smtpPort":587,
"emailSenderAddress":"hello@gmail.com",
"emailSenderName":"Epic Games Captchas",
"emailRecipientAddress":"hello@gmail.com",
"secure":false,
"auth":{
"user":"hello@gmail.com",
"pass":"abc123"
}
},
{
"type":"discord",
"webhookUrl":"https://discord.com/api/webhooks/123456789123456789/A-abcdefghijklmn-abcdefghijklmnopqrst12345678-abcdefghijklmnop123456",
"mentionedUsers":[
"914360712086843432"
],
"mentionedRoles":[
"734548250895319070"
]
},
{
"type":"telegram",
"apiUrl":"https://api.telegram.org",
"token":"644739147:AAGMPo-Jz3mKRnHRTnrPEDi7jUF1vqNOD5k",
"chatId":"-987654321"
},
{
"type":"apprise",
"apiUrl":"http://192.168.1.2:8000",
"urls":"mailto://user:pass@gmail.com"
},
{
"type":"pushover",
"token":"a172fyyl9gw99p2xi16tq8hnib48p2",
"userKey":"uvgidym7l5ggpwu2r8i1oy6diaapll"
},
{
"type":"gotify",
"apiUrl":"https://gotify.net",
"token":"SnL-wAvmfo_QT"
},
{
"type":"homeassistant",
"instance":"https://homeassistant.example.com",
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"notifyservice":"mobile_app_smartphone_name"
},
{
"type":"bark",
"key":"xxxxxxxxxxxxxxxxxxxxxx",
"title":"epicgames-freegames",
"group":"epicgames-freegames",
"apiUrl":"https://api.day.app"
},
{
"type":"ntfy",
"webhookUrl":"https://ntfy.example.com/mytopic",
"priority":"urgent",
"token":"tk_mytoken"
}
]
}

View File

@@ -1,50 +0,0 @@
runOnStartup: true
cronSchedule: 0 */6 * * *
logLevel: info
webPortalConfig:
baseUrl: https://epic.example.com
accounts:
- email: example@gmail.com
notifiers:
- type: email
smtpHost: smtp.gmail.com
smtpPort: 587
emailSenderAddress: hello@gmail.com
emailSenderName: Epic Games Captchas
emailRecipientAddress: hello@gmail.com
secure: false
auth:
user: hello@gmail.com
pass: abc123
- type: discord
webhookUrl: https://discord.com/api/webhooks/123456789123456789/A-abcdefghijklmn-abcdefghijklmnopqrst12345678-abcdefghijklmnop123456
mentionedUsers:
- "914360712086843432"
mentionedRoles:
- "734548250895319070"
- type: telegram
apiUrl: https://api.telegram.org
token: 644739147:AAGMPo-Jz3mKRnHRTnrPEDi7jUF1vqNOD5k
chatId: "-987654321"
- type: apprise
apiUrl: http://192.168.1.2:8000
urls: mailto://user:pass@gmail.com
- type: pushover
token: a172fyyl9gw99p2xi16tq8hnib48p2
userKey: uvgidym7l5ggpwu2r8i1oy6diaapll
- type: gotify
apiUrl: https://gotify.net
token: SnL-wAvmfo_QT
- type: homeassistant
instance: https://homeassistant.example.com
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
notifyservice: mobile_app_smartphone_name
- type: bark
key: xxxxxxxxxxxxxxxxxxxxxx
title: epicgames-freegames
group: epicgames-freegames
apiUrl: https://api.day.app
- type: ntfy
webhookUrl: https://ntfy.example.com/mytopic
priority: urgent
token: tk_mytoken

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: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.5 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: 4.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 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: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 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.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,3 +1,5 @@
## 2.3.1-3 (23-11-2025)
- Minor bugs fixed
## 2.3.1-2 (22-11-2025)
- Minor bugs fixed

View File

@@ -141,6 +141,6 @@ slug: immich
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: 2.3.1-2
version: 2.3.1-3
video: true
webui: http://[HOST]:[PORT:8080]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 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: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,3 +1,5 @@
## 2.3.1-3 (23-11-2025)
- Minor bugs fixed
## 2.3.1-2 (22-11-2025)
- Minor bugs fixed

View File

@@ -140,6 +140,6 @@ slug: immich_noml
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: 2.3.1-2
version: 2.3.1-3
video: true
webui: http://[HOST]:[PORT:8080]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 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: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.3 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: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,3 +1,8 @@
## breaking_versions: 10.11.3-1 (23-11-2025)
- Minor bugs fixed
## 10.11.3-1 (23-11-2025)
- Fix optional `i915_enable_guc` setting so the add-on no longer requires a value after updates.
## 10.11.3 (22-11-2025)
- Update to latest version from linuxserver/docker-jellyfin (changelog : https://github.com/linuxserver/docker-jellyfin/releases)

View File

@@ -91,7 +91,6 @@ options:
PGID: 0
PUID: 0
data_location: /share/jellyfin
i915_enable_guc: null
panel_admin: false
panel_icon: mdi:billiards-rack
ports:
@@ -126,5 +125,5 @@ schema:
slug: jellyfin
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "10.11.3"
version: "10.11.3-1"
video: true

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: 3.3 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: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.6 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: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.4 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.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.7 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: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.6 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.6 KiB

After

Width:  |  Height:  |  Size: 1.6 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.6 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.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 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.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.4 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: 3.3 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: 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: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,3 +1,6 @@
## 5.1.2-19 (24-11-2025)
- Cycle through ip providers to avoid rate limiting api
## 5.1.2-13 (19-11-2025)
- Add IPv4 fallback for WireGuard connections

View File

@@ -145,4 +145,4 @@ schema:
slug: qbittorrent
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: 5.1.2-13
version: 5.1.2-19

View File

@@ -14,9 +14,6 @@ if bashio::config.true 'openvpn_enabled'; then
bashio::log.info "Openvpn enabled, configuring"
bashio::log.info "----------------------------"
# Get current ip
curl -s ipecho.net/plain > /currentip
# Function to check for files path
function check_path() {

View File

@@ -76,7 +76,4 @@ else
bashio::log.warning "qBittorrent config file not found. Bind the client manually to interface ${interface_name}."
fi
# Get current ip
curl -s ipecho.net/plain > /currentip
bashio::log.info "WireGuard prepared with interface ${interface_name} using configuration ${wireguard_config##*/}."

View File

@@ -2,14 +2,241 @@
# shellcheck shell=bash
WEBUI_PORT=${WEBUI_PORT:-8080}
export PATH="/usr/local/sbin:/usr/local/bin:${PATH}"
# --- Configuration & Pre-checks ---
if bashio::config.true 'silent'; then
sed -i 's|/proc/1/fd/1 hassio;|off;|g' /etc/nginx/nginx.conf
fi
# --- Helper Functions ---
_fetch_public_ip() {
local resp
local url
local urls=(
"https://icanhazip.com"
"https://ifconfig.me/ip"
"https://api64.ipify.org"
"https://checkip.amazonaws.com"
"https://domains.google.com/checkip"
"https://ipinfo.io/ip"
)
local shuffled_urls
mapfile -t shuffled_urls < <(printf "%s\n" "${urls[@]}" | shuf)
# Loop through the now-randomized list
for url in "${shuffled_urls[@]}"; do
resp=$(curl -fsS --max-time 5 "${url}" 2>/dev/null || true)
resp="${resp//[[:space:]]/}"
# Validate IPv4 or IPv6
if [[ "${resp}" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]] || [[ "${resp}" =~ ^[0-9a-fA-F:]+$ ]]; then
printf '%s\n' "${resp}"
return 0
fi
done
return 1
}
_fetch_country_code() {
local resp
local url
local urls=(
"https://ipapi.co/country/"
"http://ip-api.com/line/?fields=countryCode"
"https://ipinfo.io/country"
)
local shuffled_urls_output
shuffled_urls_output=$(printf '%s\n' "${urls[@]}" | shuf)
while IFS= read -r url; do
# Skip empty lines if any
[[ -z "${url}" ]] && continue
# Fetch the response with a 5-second timeout
resp=$(curl -fsS --max-time 5 "${url}" 2>/dev/null || true)
# Clean whitespace/newlines
resp="${resp//[[:space:]]/}"
# Validation: Ensure the response is exactly 2 letters (ISO 3166-1 alpha-2)
if [[ "${resp}" =~ ^[A-Za-z]{2}$ ]]; then
# Convert to uppercase and print
printf '%s\n' "${resp^^}"
return 0
fi
done <<< "${shuffled_urls_output}" # Process the shuffled output
return 1
}
_vpn_monitor_public_ip() {
local vpn_label="${1:-VPN}"
local current_ip_file="/currentip"
local baseline_ip vpn_ip country
local interval=${VPN_LEAK_CHECK_INTERVAL:-300}
local initial_delay=${VPN_LEAK_INITIAL_DELAY:-60}
# Pre-flight checks
if ! command -v curl >/dev/null 2>&1; then
bashio::log.warning "${vpn_label}: curl not found; VPN leak monitoring disabled."
return 0
fi
if [[ ! -s "${current_ip_file}" ]]; then
bashio::log.warning "${vpn_label}: public ip could not be reached; VPN leak monitoring disabled."
return 0
fi
if ! bashio::fs.file_exists "${current_ip_file}"; then
bashio::log.warning "${vpn_label}: baseline IP file ${current_ip_file} not found; VPN leak monitoring disabled."
return 0
fi
baseline_ip="$(tr -d '[:space:]' < "${current_ip_file}")"
if [[ -z "${baseline_ip}" ]]; then
bashio::log.warning "${vpn_label}: baseline IP in ${current_ip_file} is empty; VPN leak monitoring disabled."
return 0
fi
bashio::log.debug "${vpn_label}: Waiting ${initial_delay}s before first leak check."
sleep "${initial_delay}"
while true; do
vpn_ip="$(_fetch_public_ip || true)"
if [[ -z "${vpn_ip}" ]]; then
bashio::log.warning "${vpn_label}: Failed to fetch public IP (rate limited or connection down)."
else
if country="$(_fetch_country_code || true)"; then
bashio::log.info "${vpn_label}: Current IP: ${vpn_ip} (${country})"
else
bashio::log.info "${vpn_label}: Current IP: ${vpn_ip} (Country Unknown)"
fi
# LEAK DETECTED
if [[ "${vpn_ip}" == "${baseline_ip}" ]]; then
bashio::log.fatal "${vpn_label}: VPN LEAK DETECTED! Current IP ${vpn_ip} matches baseline. Stopping container."
s6-svscanctl -t /var/run/s6/services 2>/dev/null || true
exit 1
fi
fi
sleep "${interval}"
done
}
# --- WireGuard Specific Logic ---
_setup_wireguard() {
local WIREGUARD_STATE_DIR="/var/run/wireguard"
local output=""
local status=0
if ! bashio::fs.file_exists "${WIREGUARD_STATE_DIR}/config"; then
bashio::exit.nok 'WireGuard runtime configuration not prepared. Please restart the add-on.'
fi
local wireguard_config
wireguard_config="$(cat "${WIREGUARD_STATE_DIR}/config")"
local wireguard_interface
wireguard_interface="$(cat "${WIREGUARD_STATE_DIR}/interface" 2>/dev/null || echo 'wg0')"
if ip link show "${wireguard_interface}" >/dev/null 2>&1; then
bashio::log.warning "WireGuard interface ${wireguard_interface} already exists. Resetting."
wg-quick down "${wireguard_config}" >/dev/null 2>&1 || true
fi
bashio::log.info "Starting WireGuard interface ${wireguard_interface}..."
# Internal helper: fallback for iptables-legacy
_wg_prepare_legacy() {
local legacy_bin_dir="${WIREGUARD_STATE_DIR}/iptables-legacy-bin"
mkdir -p "${legacy_bin_dir}"
local cmd
for cmd in iptables iptables-save iptables-restore ip6tables ip6tables-save ip6tables-restore; do
if command -v "${cmd}-legacy" >/dev/null 2>&1; then
ln -sf "$(command -v "${cmd}-legacy")" "${legacy_bin_dir}/${cmd}"
fi
done
chmod 700 "${legacy_bin_dir}" 2>/dev/null || true
export PATH="${legacy_bin_dir}:${PATH}"
bashio::log.warning 'Retrying WireGuard using iptables-legacy wrappers.'
}
# Internal helper: Attempt connection
_wg_up_attempt() {
local config_path="$1"
output="$(wg-quick up "${config_path}" 2>&1)" || status=$?
if [ "${status}" -eq 0 ]; then return 0; fi
# Check for iptables errors and try legacy fallback
if echo "${output}" | grep -qiE 'iptables-restore|ip6tables-restore|xtables'; then
if command -v iptables-legacy >/dev/null 2>&1; then
wg-quick down "${config_path}" >/dev/null 2>&1 || true
_wg_prepare_legacy
output="$(wg-quick up "${config_path}" 2>&1)" || status=$?
else
bashio::log.warning 'iptables errors detected but iptables-legacy missing.'
status=1
fi
fi
return "${status}"
}
# 1. First Attempt
if ! _wg_up_attempt "${wireguard_config}"; then
bashio::log.warning 'Initial WireGuard connection failed. Trying IPv4-only endpoints.'
bashio::log.debug "Output: ${output}"
# 2. IPv4 Fallback Preparation
local ipv4_config="${WIREGUARD_STATE_DIR}/${wireguard_interface}-ipv4.conf"
: > "${ipv4_config}"
chmod 600 "${ipv4_config}" 2>/dev/null || true
local line endpoint endpoint_host endpoint_port
while IFS= read -r line || [ -n "$line" ]; do
if [[ "${line}" =~ ^Endpoint ]]; then
endpoint="${line#Endpoint = }"
endpoint_host="${endpoint%:*}"
endpoint_port="${endpoint##*:}"
# Resolve hostname to IPv4
mapfile -t ipv4_candidates < <(getent ahostsv4 "${endpoint_host}" | awk '{print $1}' | uniq)
if [ ${#ipv4_candidates[@]} -gt 0 ]; then
bashio::log.debug "Resolved ${endpoint_host} to ${ipv4_candidates[0]}"
echo "Endpoint = ${ipv4_candidates[0]}:${endpoint_port}" >> "${ipv4_config}"
else
echo "${line}" >> "${ipv4_config}"
fi
else
echo "${line}" >> "${ipv4_config}"
fi
done < "${wireguard_config}"
wg-quick down "${wireguard_config}" >/dev/null 2>&1 || true
# 3. Second Attempt (IPv4 only)
if ! _wg_up_attempt "${ipv4_config}"; then
bashio::log.error 'WireGuard failed to establish connection.'
bashio::log.error "${output}"
bashio::exit.nok 'WireGuard start failed.'
fi
fi
bashio::log.info "WireGuard interface ${wireguard_interface} is up."
# DNS Refresh
if command -v resolvconf >/dev/null 2>&1; then
resolvconf -u >/dev/null 2>&1 || bashio::log.warning 'resolvconf -u failed.'
fi
}
# --- Main Execution ---
echo "$(_fetch_public_ip || true)" > /currentip
if bashio::config.true 'openvpn_enabled'; then
# Start Leak Monitor
_vpn_monitor_public_ip "OpenVPN" &
exec /usr/sbin/openvpn \
--config /config/openvpn/config.ovpn \
--script-security 2 \
@@ -19,133 +246,29 @@ if bashio::config.true 'openvpn_enabled'; then
--pull-filter ignore "ifconfig-ipv6" \
--pull-filter ignore "tun-ipv6" \
--pull-filter ignore "redirect-gateway ipv6" \
--pull-filter ignore "dhcp-option DNS6"
else
if bashio::config.true 'wireguard_enabled'; then
WIREGUARD_STATE_DIR="/var/run/wireguard"
--pull-filter ignore "dhcp-option DNS6" \
&
if ! bashio::fs.file_exists "${WIREGUARD_STATE_DIR}/config"; then
bashio::exit.nok 'WireGuard runtime configuration not prepared. Please restart the add-on.'
fi
elif bashio::config.true 'wireguard_enabled'; then
# Run modularized WireGuard setup
_setup_wireguard
wireguard_config="$(cat "${WIREGUARD_STATE_DIR}/config")"
wireguard_interface="$(cat "${WIREGUARD_STATE_DIR}/interface" 2>/dev/null || echo 'wg0')"
# Start Leak Monitor
_vpn_monitor_public_ip "WireGuard" &
if ip link show "${wireguard_interface}" &> /dev/null; then
bashio::log.warning "WireGuard interface ${wireguard_interface} already exists. Attempting to reset it."
wg-quick down "${wireguard_config}" >/dev/null 2>&1 || true
fi
bashio::log.info "Starting WireGuard interface ${wireguard_interface} using ${wireguard_config##*/}."
# Prefer host-provided iptables-legacy binaries if the default backend fails.
_wireguard_prepare_iptables_legacy() {
local legacy_bin_dir="${WIREGUARD_STATE_DIR}/iptables-legacy-bin"
mkdir -p "${legacy_bin_dir}"
for cmd in iptables iptables-save iptables-restore ip6tables ip6tables-save ip6tables-restore; do
if command -v "${cmd}-legacy" >/dev/null 2>&1; then
ln -sf "$(command -v "${cmd}-legacy")" "${legacy_bin_dir}/${cmd}"
fi
done
chmod 700 "${legacy_bin_dir}" 2>/dev/null || true
export PATH="${legacy_bin_dir}:${PATH}"
bashio::log.warning 'Retrying WireGuard bring-up using iptables-legacy wrappers.'
}
_wireguard_up_with_iptables_fallback() {
local config_path="$1"
local status
output=""
output=$(wg-quick up "${config_path}" 2>&1)
status=$?
if [ "$status" -eq 0 ]; then
return 0
fi
if echo "${output}" | grep -qiE 'iptables-restore|ip6tables-restore|xtables'; then
if command -v iptables-legacy >/dev/null 2>&1 || command -v ip6tables-legacy >/dev/null 2>&1; then
wg-quick down "${config_path}" >/dev/null 2>&1 || true
_wireguard_prepare_iptables_legacy
output=$(wg-quick up "${config_path}" 2>&1)
status=$?
else
bashio::log.warning 'iptables errors detected but iptables-legacy binaries are unavailable in the image.'
status=1
fi
fi
return "${status}"
}
if ! _wireguard_up_with_iptables_fallback "${wireguard_config}"; then
bashio::log.warning 'Initial WireGuard connection attempt failed. Trying again with IPv4-only endpoints.'
bashio::log.warning "First attempt output:${bashio::constants.LF}${output}"
ipv4_config="${WIREGUARD_STATE_DIR}/${wireguard_interface}-ipv4.conf"
echo -n > "${ipv4_config}"
chmod 600 "${ipv4_config}" 2>/dev/null || true
while IFS= read -r line; do
if [[ "${line}" =~ ^Endpoint ]]; then
endpoint="${line#Endpoint = }"
endpoint_host="${endpoint%:*}"
endpoint_port="${endpoint##*:}"
mapfile -t ipv4_candidates < <(getent ahostsv4 "${endpoint_host}" | awk '{print $1}' | uniq)
if [ ${#ipv4_candidates[@]} -gt 0 ]; then
bashio::log.debug "Resolved ${endpoint_host} to IPv4 address ${ipv4_candidates[0]} for WireGuard fallback."
echo "Endpoint = ${ipv4_candidates[0]}:${endpoint_port}" >> "${ipv4_config}"
else
bashio::log.warning "No IPv4 address found for ${endpoint_host}. Keeping original endpoint for fallback."
echo "${line}" >> "${ipv4_config}"
fi
else
echo "${line}" >> "${ipv4_config}"
fi
done < "${wireguard_config}"
wg-quick down "${wireguard_config}" >/dev/null 2>&1 || true
if ! _wireguard_up_with_iptables_fallback "${ipv4_config}"; then
bashio::log.error 'WireGuard failed to establish a connection after IPv4-only retry.'
bashio::log.error "wg-quick output:"
bashio::log.error "${output}"
bashio::log.error 'Troubleshooting steps:'
bashio::log.error " 1. Confirm that the WireGuard configuration file '${wireguard_config}' exists inside the container and contains valid private/public keys, endpoint and AllowedIPs."
bashio::log.error ' 2. Ensure UDP port 51820 (or the port defined in your config) is forwarded on your router to this host and not blocked by your firewall or ISP.'
bashio::log.error ' 3. Verify that the configured endpoint (IP/hostname and port) is reachable from this container (e.g. ping or nc from a debug shell).'
bashio::log.error ' 4. Check that the system time is correct (NTP); large time drift can break key handshakes.'
bashio::log.error ' 5. Confirm that WireGuard kernel support / module is available in the host system.'
bashio::log.error ' 6. If DNS names are used for the endpoint, verify DNS resolution from inside the container (e.g. nslookup or dig).'
bashio::exit.nok 'WireGuard start failed. See the log above for details.'
fi
fi
bashio::log.info "WireGuard interface ${wireguard_interface} is up."
# Refresh DNS resolver configuration if resolvconf is present
if command -v resolvconf >/dev/null 2>&1; then
bashio::log.info 'Refreshing DNS resolver configuration via resolvconf -u.'
if ! resolvconf -u >/dev/null 2>&1; then
bashio::log.warning 'resolvconf -u failed. DNS configuration may not have been updated.'
fi
else
bashio::log.debug 'resolvconf not found in PATH; skipping DNS refresh.'
fi
fi
if bashio::config.true 'silent'; then
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}" > /dev/null
else
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}"
fi
fi
# --- Launch qBittorrent ---
# Determine log output based on silent mode
QB_OUTPUT="/dev/stdout"
if bashio::config.true 'silent'; then
QB_OUTPUT="/dev/null"
fi
bashio::log.info "Starting qBittorrent..."
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}" > "${QB_OUTPUT}"

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.9 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.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.7 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: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.7 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.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

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