mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-05-18 14:51:50 +02:00
Compare commits
15 Commits
4133525441
...
71b96dcb8e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71b96dcb8e | ||
|
|
b481580aa4 | ||
|
|
352e3eca85 | ||
|
|
06ece60f76 | ||
|
|
54c7a2ba10 | ||
|
|
d1a40b3065 | ||
|
|
21d642c1d1 | ||
|
|
bcf8c383ae | ||
|
|
7b0c6c7ff2 | ||
|
|
52aad31742 | ||
|
|
dcb1a08a8f | ||
|
|
c8cf6e0953 | ||
|
|
9357f29850 | ||
|
|
d2d0e58980 | ||
|
|
e14b4a9b45 |
@@ -1,3 +1,6 @@
|
||||
## 1.6.0-bullseye-3 (13-03-2026)
|
||||
- Fix PROXY_ALLOWED_IPS_REGEX default from invalid regex "*" to ".*"
|
||||
|
||||
## 1.6.0-bullseye-2 (26-02-2026)
|
||||
- Minor bugs fixed
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ devices:
|
||||
environment:
|
||||
GUACAMOLE_HOME: /config
|
||||
PGDATA: /config/postgres
|
||||
PROXY_ALLOWED_IPS_REGEX: "*"
|
||||
PROXY_ALLOWED_IPS_REGEX: ".*"
|
||||
PROXY_BY_HEADER: X-Forwarded-By
|
||||
PROXY_IP_HEADER: X-Forwarded-For
|
||||
PROXY_PROTOCOL_HEADER: X-Forwarded-Proto
|
||||
@@ -102,5 +102,5 @@ schema:
|
||||
slug: guacamole
|
||||
udev: true
|
||||
url: https://github.com/alexbelgium/hassio-addons
|
||||
version: "1.6.0-bullseye-2"
|
||||
version: "1.6.0-bullseye-3"
|
||||
video: true
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
## 1.0.32.0-3 (16-03-2026)
|
||||
- Minor bugs fixed
|
||||
|
||||
## 1.0.32.0-2 (2026-03-16)
|
||||
- Added multi-account support: configure multiple Immich accounts via the `Accounts` option in the addon configuration
|
||||
- `ApiKey` and `ImmichServerUrl` are now optional when using the `Accounts` list
|
||||
- Settings.yaml is now auto-generated from addon options for reliable multi-account configuration
|
||||
|
||||
## 1.0.32.0 (2026-03-07)
|
||||
- Update to latest version from immichFrame/ImmichFrame (changelog : https://github.com/immichFrame/ImmichFrame/releases)
|
||||
|
||||
@@ -41,11 +41,12 @@ Webui can be found at `<your-ip>:8171`.
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
|--------|------|---------|-------------|
|
||||
| `ImmichServerUrl` | str | **Required** | URL of your Immich server (e.g., `http://homeassistant:3001`) |
|
||||
| `ApiKey` | str | **Required** | Immich API key for authentication |
|
||||
| `ImmichServerUrl` | str | | URL of your Immich server (e.g., `http://homeassistant:3001`). Used for single-account setup. |
|
||||
| `ApiKey` | str | | Immich API key for authentication. Used for single-account setup. |
|
||||
| `Accounts` | list | `[]` | List of Immich accounts for multi-account support. Each entry requires `ImmichServerUrl` and `ApiKey`. |
|
||||
| `TZ` | str | | Timezone (e.g., `Europe/London`) |
|
||||
|
||||
### Example Configuration
|
||||
### Single Account Example
|
||||
|
||||
```yaml
|
||||
ImmichServerUrl: "http://homeassistant:3001"
|
||||
@@ -53,6 +54,23 @@ ApiKey: "your-immich-api-key-here"
|
||||
TZ: "Europe/London"
|
||||
```
|
||||
|
||||
### Multi-Account Example
|
||||
|
||||
To display photos from multiple Immich accounts (e.g., you and your partner), use the `Accounts` list:
|
||||
|
||||
```yaml
|
||||
Accounts:
|
||||
- ImmichServerUrl: "http://homeassistant:3001"
|
||||
ApiKey: "api-key-for-user-1"
|
||||
- ImmichServerUrl: "http://homeassistant:3001"
|
||||
ApiKey: "api-key-for-user-2"
|
||||
TZ: "Europe/London"
|
||||
```
|
||||
|
||||
When using the `Accounts` list, the `ApiKey` and `ImmichServerUrl` top-level options are not needed. Images will be drawn from each account proportionally based on the total number of images present in each account.
|
||||
|
||||
For more configuration options, see the [ImmichFrame documentation](https://immichframe.dev/docs/getting-started/configuration).
|
||||
|
||||
### Getting Your Immich API Key
|
||||
|
||||
1. Open your Immich web interface
|
||||
|
||||
@@ -9,19 +9,23 @@ map:
|
||||
- addon_config:rw
|
||||
name: Immich Frame
|
||||
options:
|
||||
Accounts: []
|
||||
env_vars: []
|
||||
ports:
|
||||
8080/tcp: 8171
|
||||
ports_description:
|
||||
8080/tcp: Web UI port
|
||||
schema:
|
||||
Accounts:
|
||||
- ImmichServerUrl: str
|
||||
ApiKey: str
|
||||
env_vars:
|
||||
- name: match(^[A-Za-z0-9_]+$)
|
||||
value: str?
|
||||
ApiKey: str
|
||||
ImmichServerUrl: str
|
||||
ApiKey: str?
|
||||
ImmichServerUrl: str?
|
||||
TZ: str?
|
||||
slug: immich_frame
|
||||
url: https://github.com/alexbelgium/hassio-addons
|
||||
version: "1.0.32.0"
|
||||
version: "1.0.32.0-3"
|
||||
webui: http://[HOST]:[PORT:8080]
|
||||
|
||||
@@ -3,9 +3,64 @@
|
||||
bashio::log.info "Starting Immich Frame"
|
||||
|
||||
mkdir -p /config/Config
|
||||
if [ -f /app/Config ]; then
|
||||
rm -r /app/Config
|
||||
fi
|
||||
ln -sf /app/Config /config/Config
|
||||
|
||||
# Handle legacy installs where /config/Config was a symlink to /app/Config
|
||||
if [ -L /config/Config ]; then
|
||||
bashio::log.info "Migrating legacy /config/Config symlink to real directory"
|
||||
mkdir -p /config/Config.migrate
|
||||
# Copy contents from the symlink target into the new real directory
|
||||
cp -a /config/Config/. /config/Config.migrate/ 2>/dev/null || true
|
||||
rm -f /config/Config
|
||||
mv /config/Config.migrate /config/Config
|
||||
fi
|
||||
|
||||
if [ -d /app/Config ] && [ ! -L /app/Config ]; then
|
||||
cp -n /app/Config/* /config/Config/ 2>/dev/null || true
|
||||
rm -rf /app/Config
|
||||
fi
|
||||
if [ ! -e /app/Config ]; then
|
||||
ln -sf /config/Config /app/Config
|
||||
fi
|
||||
|
||||
# Generate Settings.yaml from addon options for multi-account support
|
||||
SETTINGS_FILE="/config/Config/Settings.yaml"
|
||||
ACCOUNT_COUNT=$(jq '.Accounts // [] | length' /data/options.json 2>/dev/null || echo 0)
|
||||
|
||||
if [ "$ACCOUNT_COUNT" -gt 0 ]; then
|
||||
bashio::log.info "Configuring ${ACCOUNT_COUNT} account(s) from Accounts list"
|
||||
{
|
||||
echo "Accounts:"
|
||||
for i in $(seq 0 $((ACCOUNT_COUNT - 1))); do
|
||||
SERVER_URL=$(jq -r ".Accounts[${i}].ImmichServerUrl" /data/options.json)
|
||||
API_KEY=$(jq -r ".Accounts[${i}].ApiKey" /data/options.json)
|
||||
# Escape single quotes for YAML single-quoted strings
|
||||
SERVER_URL="${SERVER_URL//\'/\'\'}"
|
||||
API_KEY="${API_KEY//\'/\'\'}"
|
||||
echo " - ImmichServerUrl: '${SERVER_URL}'"
|
||||
echo " ApiKey: '${API_KEY}'"
|
||||
bashio::log.info " Account $((i + 1)): ${SERVER_URL}"
|
||||
done
|
||||
} > "${SETTINGS_FILE}"
|
||||
chmod 600 "${SETTINGS_FILE}"
|
||||
bashio::log.info "Settings.yaml generated at ${SETTINGS_FILE}"
|
||||
elif bashio::config.has_value 'ApiKey' && bashio::config.has_value 'ImmichServerUrl'; then
|
||||
bashio::log.info "Using single account configuration"
|
||||
SERVER_URL=$(bashio::config 'ImmichServerUrl')
|
||||
API_KEY=$(bashio::config 'ApiKey')
|
||||
# Escape single quotes for YAML single-quoted strings
|
||||
SERVER_URL="${SERVER_URL//\'/\'\'}"
|
||||
API_KEY="${API_KEY//\'/\'\'}"
|
||||
{
|
||||
echo "Accounts:"
|
||||
echo " - ImmichServerUrl: '${SERVER_URL}'"
|
||||
echo " ApiKey: '${API_KEY}'"
|
||||
} > "${SETTINGS_FILE}"
|
||||
chmod 600 "${SETTINGS_FILE}"
|
||||
bashio::log.info "Settings.yaml generated at ${SETTINGS_FILE}"
|
||||
else
|
||||
bashio::log.fatal "No accounts configured! Set either 'Accounts' list or both 'ApiKey' and 'ImmichServerUrl'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export IMMICHFRAME_CONFIG_PATH=/config/Config
|
||||
exec dotnet ImmichFrame.WebApi.dll
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
|
||||
## v5.4.0-2 (2026-03-16)
|
||||
|
||||
- Fix: Replace update-resolv-conf script that uses systemd-resolved (unavailable in containers) with one that directly updates /etc/resolv.conf
|
||||
|
||||
## v5.4.0 (2026-03-14)
|
||||
- Update to latest version from haugene/docker-transmission-openvpn (changelog : https://github.com/haugene/docker-transmission-openvpn/releases)
|
||||
- The Home Assistant project has deprecated support for the armv7, armhf and i386 architectures. Support wil be fully dropped in the upcoming Home Assistant 2025.12 release
|
||||
|
||||
@@ -138,4 +138,4 @@ schema:
|
||||
slug: transmission_openvpn
|
||||
udev: true
|
||||
url: https://github.com/alexbelgium/hassio-addons
|
||||
version: "v5.4.0"
|
||||
version: "v5.4.0-2"
|
||||
|
||||
57
transmission_openvpn/rootfs/etc/openvpn/update-resolv-conf
Executable file
57
transmission_openvpn/rootfs/etc/openvpn/update-resolv-conf
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
# OpenVPN update-resolv-conf replacement for containerized environments
|
||||
# The default script from the base image uses systemd-resolved via D-Bus,
|
||||
# which is unavailable in Home Assistant add-on containers.
|
||||
# This script directly updates /etc/resolv.conf instead.
|
||||
|
||||
[ "$script_type" ] || exit 0
|
||||
|
||||
case "$script_type" in
|
||||
up)
|
||||
# Backup original resolv.conf
|
||||
if [ ! -f /etc/resolv.conf.ovpn-bak ]; then
|
||||
cp /etc/resolv.conf /etc/resolv.conf.ovpn-bak 2>/dev/null || true
|
||||
fi
|
||||
|
||||
dns_servers=""
|
||||
dns_domain=""
|
||||
dns_search=""
|
||||
|
||||
# Parse foreign_option_* environment variables set by OpenVPN
|
||||
for optionname in ${!foreign_option_*}; do
|
||||
option="${!optionname}"
|
||||
case "$option" in
|
||||
dhcp-option\ DNS\ *)
|
||||
dns_servers="${dns_servers} ${option#dhcp-option DNS }"
|
||||
;;
|
||||
dhcp-option\ DOMAIN\ *)
|
||||
dns_domain="${option#dhcp-option DOMAIN }"
|
||||
;;
|
||||
dhcp-option\ DOMAIN-SEARCH\ *)
|
||||
dns_search="${dns_search} ${option#dhcp-option DOMAIN-SEARCH }"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Write new resolv.conf with VPN DNS servers
|
||||
if [ -n "$dns_servers" ]; then
|
||||
{
|
||||
for server in $dns_servers; do
|
||||
echo "nameserver $server"
|
||||
done
|
||||
[ -n "$dns_domain" ] && echo "domain $dns_domain"
|
||||
[ -n "$dns_search" ] && echo "search${dns_search}"
|
||||
} > /etc/resolv.conf
|
||||
fi
|
||||
;;
|
||||
|
||||
down)
|
||||
# Restore original resolv.conf
|
||||
if [ -f /etc/resolv.conf.ovpn-bak ]; then
|
||||
cp /etc/resolv.conf.ovpn-bak /etc/resolv.conf
|
||||
rm -f /etc/resolv.conf.ovpn-bak
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user