Compare commits

...

23 Commits

Author SHA1 Message Date
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
17 changed files with 191 additions and 108 deletions

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) ## debian-2025-11-16 (2025-11-16)
- Update to latest version from charlocharlie/epicgames-freegames - Update to latest version from charlocharlie/epicgames-freegames
## "debian-2025-11-09" (09-11-2025) ## "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 ## 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
Configuration files are stored in `/config/addons_config/epicgamesfree/`: Configuration files are stored in `/config/addons_config/epicgamesfree/`:
- **config.yaml**: Main configuration file - **config.json**: Main configuration file
- **cookies.json**: Authentication cookies (optional) - **cookies.json**: Authentication cookies (optional)
If these files don't exist, they will be created at first boot with default settings. 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 ### Basic Configuration
Create `/config/addons_config/epicgamesfree/config.yaml`: Create `/config/addons_config/epicgamesfree/config.json`:
```json ```json
{ {
"runOnStartup": true,
"cronSchedule": "0 */6 * * *",
"logLevel": "info",
"webPortalConfig": {
"baseUrl": "https://epic.example.com"
},
"accounts": [ "accounts": [
{ {
"email": "your-epic-email@example.com", "email": "your-epic-email@example.com",
"password": "your-password", "password": "your-password",
"totp": "OPTIONAL_2FA_SECRET" "totp": "OPTIONAL_2FA_SECRET"
} }
], ],
"intervalHours": 24, "notifiers": [
"onlyWeekly": false, {
"searchStrategy": "purchase", "type": "email",
"browserNavigationTimeout": 300000,
"notifications": {
"email": {
"smtpHost": "smtp.gmail.com", "smtpHost": "smtp.gmail.com",
"smtpPort": 587, "smtpPort": 587,
"emailSenderAddress": "notifications@example.com", "emailSenderAddress": "notifications@example.com",
@@ -71,7 +74,7 @@ Create `/config/addons_config/epicgamesfree/config.yaml`:
"pass": "your-app-password" "pass": "your-app-password"
} }
} }
} ]
} }
``` ```
@@ -80,51 +83,52 @@ Create `/config/addons_config/epicgamesfree/config.yaml`:
| Option | Type | Description | | Option | Type | Description |
|--------|------|-------------| |--------|------|-------------|
| `accounts` | array | List of Epic Games accounts | | `accounts` | array | List of Epic Games accounts |
| `intervalHours` | number | Check interval in hours (default: 24) | | `cronSchedule` | string | Cron schedule to claim games (default: `0 */6 * * *`) |
| `onlyWeekly` | boolean | Only claim weekly free games | | `runOnStartup` | boolean | Run a claim cycle when the add-on starts |
| `searchStrategy` | string | Search strategy: "purchase" or "claim" | | `logLevel` | string | Application log level |
| `browserNavigationTimeout` | number | Browser timeout in milliseconds | | `webPortalConfig.baseUrl` | string | Base URL used by the included web portal |
| `notifications` | object | Notification settings (email, webhook, etc.) | | `notifiers` | array | Notification targets such as email, Discord, Telegram, Apprise, etc. |
### Account Configuration ### Account Configuration
For each account in the `accounts` array: For each account in the `accounts` array:
```json ```yaml
{ email: account@example.com
"email": "account@example.com", password: password
"password": "password", totp: TOTP_SECRET
"totp": "TOTP_SECRET", onlyWeekly: true
"onlyWeekly": true
}
``` ```
### Notification Methods ### Notification Methods
#### Email Notifications #### Email Notifications
```json ```yaml
"notifications": { notifications:
"email": { email:
"smtpHost": "smtp.gmail.com", smtpHost: smtp.gmail.com
"smtpPort": 587, smtpPort: 587
"emailSenderAddress": "sender@example.com", emailSenderAddress: sender@example.com
"emailRecipientAddress": "recipient@example.com", emailRecipientAddress: recipient@example.com
"secure": false, secure: false
"auth": { auth:
"user": "sender@example.com", user: sender@example.com
"pass": "app-password" pass: app-password
}
}
}
``` ```
#### Webhook Notifications #### Webhook Notifications
```json ```json
"notifications": { {
"webhook": { "notifiers": [
"url": "https://your-webhook-url.com", {
"events": ["purchase-success", "already-owned"] "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 ### Troubleshooting
#### Timeout Errors #### Timeout Errors
Add the following to your config.yaml: Add the following to your config.json:
```json ```json
"browserNavigationTimeout": 300000 {
"browserNavigationTimeout": 300000
}
``` ```
#### Login Issues #### Login Issues
@@ -172,7 +178,7 @@ The installation of this add-on is pretty straightforward and not different in c
### Timeout error ### 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 ### Other errors

View File

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

View File

@@ -7,15 +7,22 @@ set -e
############## ##############
HOME="/config/addons_config/epicgamesfree" 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 # Copy default config.json
cp /templates/config.json "$HOME"/config.json cp /templates/config.json "$CONFIG_JSON"
chmod 755 "$HOME"/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#json-configuration and restart the add-on" 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 sleep 5
bashio::exit.nok bashio::exit.nok
else 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 fi
# Permissions # 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

View File

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

View File

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

View File

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

View File

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

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) ## 10.11.3 (22-11-2025)
- Update to latest version from linuxserver/docker-jellyfin (changelog : https://github.com/linuxserver/docker-jellyfin/releases) - 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 PGID: 0
PUID: 0 PUID: 0
data_location: /share/jellyfin data_location: /share/jellyfin
i915_enable_guc: null
panel_admin: false panel_admin: false
panel_icon: mdi:billiards-rack panel_icon: mdi:billiards-rack
ports: ports:
@@ -126,5 +125,5 @@ schema:
slug: jellyfin slug: jellyfin
udev: true udev: true
url: https://github.com/alexbelgium/hassio-addons url: https://github.com/alexbelgium/hassio-addons
version: "10.11.3" version: "10.11.3-1"
video: true video: true

View File

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

View File

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

View File

@@ -15,7 +15,9 @@ if bashio::config.true 'openvpn_enabled'; then
bashio::log.info "----------------------------" bashio::log.info "----------------------------"
# Get current ip # Get current ip
curl -s ipecho.net/plain > /currentip ( curl -fsS --max-time 10 https://ifconfig.co/ip \
|| curl -fsS --max-time 10 https://api64.ipify.org \
|| curl -fsS --max-time 10 https://ipecho.net/plain ) > /currentip
# Function to check for files path # Function to check for files path
function check_path() { function check_path() {

View File

@@ -77,6 +77,8 @@ else
fi fi
# Get current ip # Get current ip
curl -s ipecho.net/plain > /currentip ( curl -fsS --max-time 10 https://ifconfig.co/ip \
|| curl -fsS --max-time 10 https://api64.ipify.org \
|| curl -fsS --max-time 10 https://ipecho.net/plain ) > /currentip
bashio::log.info "WireGuard prepared with interface ${interface_name} using configuration ${wireguard_config##*/}." bashio::log.info "WireGuard prepared with interface ${interface_name} using configuration ${wireguard_config##*/}."

View File

@@ -5,6 +5,18 @@ WEBUI_PORT=${WEBUI_PORT:-8080}
export PATH="/usr/local/sbin:/usr/local/bin:${PATH}" export PATH="/usr/local/sbin:/usr/local/bin:${PATH}"
# --- New helper: get public IP with rate-limiting fallbacks ---
_get_public_ip() {
local ip
ip=$(
curl -fsS --max-time 10 https://ifconfig.co/ip \
|| curl -fsS --max-time 10 https://api64.ipify.org \
|| curl -fsS --max-time 10 https://ipecho.net/plain
) || return 1
printf '%s\n' "${ip}"
}
if bashio::config.true 'silent'; then if bashio::config.true 'silent'; then
sed -i 's|/proc/1/fd/1 hassio;|off;|g' /etc/nginx/nginx.conf sed -i 's|/proc/1/fd/1 hassio;|off;|g' /etc/nginx/nginx.conf
fi fi
@@ -128,6 +140,14 @@ else
bashio::log.info "WireGuard interface ${wireguard_interface} is up." bashio::log.info "WireGuard interface ${wireguard_interface} is up."
# Example usage of the helper: get VPN-protected IP and store it
if vpn_ip="$(_get_public_ip)"; then
echo "${vpn_ip}" > /vpn_ip
bashio::log.info "Detected VPN public IP: ${vpn_ip}"
else
bashio::log.warning 'Unable to determine VPN public IP (all IP services failed).'
fi
# Refresh DNS resolver configuration if resolvconf is present # Refresh DNS resolver configuration if resolvconf is present
if command -v resolvconf >/dev/null 2>&1; then if command -v resolvconf >/dev/null 2>&1; then
bashio::log.info 'Refreshing DNS resolver configuration via resolvconf -u.' bashio::log.info 'Refreshing DNS resolver configuration via resolvconf -u.'