Skip to content

Commit a6b610a

Browse files
committed
swag: auto-configure reverse proxy for software modules + SWAG-aware menu URLs
Wires SWAG into the configng software stack so that installing any of the supported modules on a host running SWAG also enables the matching nginx proxy-conf, and the menu UI shows the SWAG subfolder URL instead of the direct host:port whenever the proxy is live. Core helpers (module_docker_utils.sh, runtime/config.runtime.sh, module_env_init.sh): - SWAG_URL is read from ${SOFTWARE_FOLDER}/swag/config/SWAG_URL at env init and exposed to all modules. DISPLAY_URL=${SWAG_URL:-$LOCALIPADD} is the single source of truth for the menu's right column. - get_service_url <service> <port>: returns https://$DISPLAY_URL/<service> when SWAG is up and the proxy-conf for <service> is enabled, http://$DISPLAY_URL:<port> otherwise. - docker_configure_swag_proxy <service> [port] [proto]: copies the SWAG sample to its enabled .conf, sed-rewrites $upstream_port and $upstream_proto, touches the .enabled marker, and reloads nginx. Silent no-op (returns 1) if the sample isn't present, returns 2 if SWAG isn't installed — modules can call it unconditionally. Per-module wiring: - 22 modules whose dockername matches a stock proxy-conf in linuxserver/reverse-proxy-confs:master gain a docker_configure_swag_proxy call after their docker run: bazarr, deluge, domoticz, dozzle, duplicati, embyserver→emby, filebrowser, ghost, grafana, jellyfin, lidarr, medusa, netdata, nextcloud (https), phpmyadmin, pi-hole→pihole, prowlarr, qbittorrent, radarr, sabnzbd, sonarr, syncthing, transmission. - homepage / immich / netbox / portainer pre-existing custom paths are folded in, with portainer correctly using HTTPS+9443. netbox postgres args: - module_postgres install takes six positional args (<user> <pass> <db> <image-repo> <image-tag> <container-name>); netbox was passing five and fusing image+tag into one. The result was Docker 404'ing on 'postgres:17-alpine:postgres-netbox' and the postgres container defaulting to the name 'postgres' (collision with any standalone postgres install). Split DATABASE_IMAGE into DATABASE_IMAGE + DATABASE_TAG and pass DATABASE_HOST in its proper sixth slot, matching the pattern module_immich already uses. Menu URL routing (config.runtime.sh): - 23 update_sub_submenu_data lines (the SWAG-applicable subset) now go through get_service_url — flipping each menu's right-column URL from 'http://host:port' to 'https://host/<service>' the moment that service's proxy-conf is enabled in SWAG, and back if it ever isn't. pi-hole and ghost retain their /admin and /ghost subpaths by appending the suffix after the helper output. - NCT002 (nextcloud) and CPT002 (cockpit) intentionally untouched — direct URLs are HTTPS-only on a self-signed port; helper falls back to plain http otherwise. Worth a follow-up that gives the helper a fallback-protocol arg. No regression for users without SWAG: get_service_url and docker_configure_swag_proxy both fall back to existing behaviour when the swag container isn't present.
1 parent 5ded5c7 commit a6b610a

34 files changed

Lines changed: 406 additions & 127 deletions

tools/modules/functions/module_docker_utils.sh

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,11 @@ docker_operation_progress() {
142142
# Ensure Docker is available
143143
docker_ensure_docker
144144

145+
# Ensure unbuffer is available (for real-time pull progress)
146+
if ! command -v unbuffer >/dev/null 2>&1; then
147+
pkg_install expect
148+
fi
149+
145150
# Argument validation
146151
if [[ -z "$operation" || -z "$target" ]]; then
147152
dialog_msgbox "Usage Error" "Usage: docker_operation_progress <pull|rm|rmi> <target>\n\n pull <image> - Pull Docker image\n rm <container> - Remove container\n rmi <image> - Remove image" 12 60
@@ -467,3 +472,56 @@ docker_operation_progress() {
467472

468473
return 0
469474
}
475+
476+
#
477+
# Configure SWAG reverse proxy for a service
478+
# Usage: docker_configure_swag_proxy <servicename> [port] [protocol]
479+
#
480+
# Parameters:
481+
# servicename - Name of the service (e.g., "transmission", "sonarr")
482+
# port - Optional: Override the default port in the proxy config
483+
# protocol - Optional: Override the protocol (http/https) in the proxy config
484+
#
485+
# Returns: 0 on success, 1 if proxy config not found or enabling failed
486+
#
487+
docker_configure_swag_proxy() {
488+
local servicename="$1"
489+
local port="$2"
490+
local protocol="$3"
491+
492+
# Check if SWAG container exists
493+
if ! docker container ls -a --format "{{.Names}}" | grep -q "^swag$"; then
494+
return 2
495+
fi
496+
497+
# Check if SWAG has proxy config for this service (sample or actual)
498+
local proxy_sample="/config/nginx/proxy-confs/${servicename}.subfolder.conf.sample"
499+
local proxy_actual="/config/nginx/proxy-confs/${servicename}.subfolder.conf"
500+
501+
if docker exec swag test -f "$proxy_sample" 2>/dev/null; then
502+
# Copy sample to actual config if it doesn't exist
503+
if ! docker exec swag test -f "$proxy_actual" 2>/dev/null; then
504+
docker exec swag cp "$proxy_sample" "$proxy_actual" 2>/dev/null
505+
fi
506+
507+
# If port is specified, update it in the config
508+
if [[ -n "$port" ]]; then
509+
docker exec swag sed -i "s/set \\\$upstream_port [0-9]*/set \\\$upstream_port ${port}/g" "$proxy_actual" 2>/dev/null
510+
fi
511+
512+
# If protocol is specified, update it in the config
513+
if [[ -n "$protocol" ]]; then
514+
docker exec swag sed -i "s/set \\\$upstream_proto [a-z]*/set \\\$upstream_proto ${protocol}/g" "$proxy_actual" 2>/dev/null
515+
fi
516+
517+
# Enable the proxy configuration
518+
if docker exec swag touch "/config/nginx/proxy-confs/${servicename}.subfolder.conf.enabled" 2>/dev/null; then
519+
# Reload nginx to apply
520+
docker exec swag nginx -s reload >/dev/null 2>&1
521+
return 0
522+
fi
523+
return 1
524+
fi
525+
526+
return 1
527+
}

tools/modules/functions/module_env_init.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,13 @@ function set_runtime_variables() {
141141
LOCALIPADD=$(ip -4 addr show dev $DEFAULT_ADAPTER | awk '/inet/ {print $2}' | cut -d'/' -f1)
142142
LOCALSUBNET=$(echo ${LOCALIPADD} | cut -d"." -f1-3).0/24
143143

144+
# Check if SWAG is installed and use its domain URL for display
145+
# This replaces LOCALIPADD with the actual domain in menu URLs
146+
SWAG_URL=""
147+
if [[ -f "${SOFTWARE_FOLDER}/swag/config/SWAG_URL" ]]; then
148+
SWAG_URL=$(cat "${SOFTWARE_FOLDER}/swag/config/SWAG_URL")
149+
fi
150+
144151
# create local lan and docker lan whitelist for transmission
145152
TRANSMISSION_WHITELIST=$(echo ${LOCALIPADD} | cut -d"." -f1-3)".*"
146153
local docker_subnet=$(docker network inspect lsio 2> /dev/null | grep Subnet | xargs | cut -d" " -f2 | cut -d"/" -f1 | cut -d"." -f1-2)

tools/modules/runtime/config.runtime.sh

Lines changed: 79 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,34 @@ locale_setting="$LANG"
1616
installed_software="$(see_current_apt)"
1717
held_packages=$(apt-mark showhold)
1818

19+
# Use SWAG domain URL if available, otherwise fall back to local IP
20+
# This makes all menu URLs show the actual domain instead of IP when SWAG is installed
21+
DISPLAY_URL="${SWAG_URL:-$LOCALIPADD}"
22+
23+
# Helper function to determine service URL format
24+
# Returns "https://DISPLAY_URL/service" if SWAG proxy is enabled, otherwise "http://DISPLAY_URL:port"
25+
get_service_url() {
26+
local service_name="$1"
27+
local service_port="$2"
28+
29+
# Check if SWAG is running
30+
if ! docker container ls -a --format "{{.Names}}" 2>/dev/null | grep -q "^swag$"; then
31+
echo "http://$DISPLAY_URL:$service_port"
32+
return
33+
fi
34+
35+
# Check if SWAG proxy is enabled for this service
36+
local proxy_enabled_file="/config/nginx/proxy-confs/${service_name}.subfolder.conf.enabled"
37+
if ! docker exec swag test -f "$proxy_enabled_file" 2>/dev/null; then
38+
echo "http://$DISPLAY_URL:$service_port"
39+
return
40+
fi
41+
42+
# SWAG proxy is enabled - return subfolder URL
43+
echo "https://$DISPLAY_URL/$service_name"
44+
}
45+
46+
1947
module_options+=(
2048
["update_json_data,author"]="@Tearran"
2149
["update_json_data,ref_link"]=""
@@ -103,72 +131,79 @@ update_sub_submenu_data "System" "Storage" "NFS04" "$NFS_CLIENTS_NUMBER"
103131

104132
# Database
105133
update_sub_submenu_data "Software" "Database" "DAT002" "Server: $LOCALIPADD"
106-
update_sub_submenu_data "Software" "Database" "MYA002" "http://$LOCALIPADD:${module_options["module_phpmyadmin,port"]}"
134+
update_sub_submenu_data "Software" "Database" "MYA002" "$(get_service_url "phpmyadmin" "${module_options["module_phpmyadmin,port"]}")"
107135

108136
# Finance
109-
update_sub_submenu_data "Software" "Finance" "ABU002" "http://$LOCALIPADD:${module_options["module_actualbudget,port"]}"
110-
update_sub_submenu_data "Software" "Finance" "WAL002" "http://$LOCALIPADD:${module_options["module_wallos,port"]}"
137+
update_sub_submenu_data "Software" "Finance" "ABU002" "http://$DISPLAY_URL:${module_options["module_actualbudget,port"]}"
138+
update_sub_submenu_data "Software" "Finance" "WAL002" "http://$DISPLAY_URL:${module_options["module_wallos,port"]}"
111139

112140
# Media
113-
update_sub_submenu_data "Software" "Media" "OMV002" "http://$LOCALIPADD:${module_options["module_omv,port"]}"
114-
update_sub_submenu_data "Software" "Media" "MED002" "http://$LOCALIPADD:${module_options["module_plexmediaserver,port"]}"
115-
update_sub_submenu_data "Software" "Media" "EMB002" "http://$LOCALIPADD:${module_options["module_embyserver,port"]}"
116-
update_sub_submenu_data "Software" "Media" "FIL002" "http://$LOCALIPADD:${module_options["module_filebrowser,port"]}"
117-
update_sub_submenu_data "Software" "Media" "STR002" "http://$LOCALIPADD:${module_options["module_stirling,port"]}"
118-
update_sub_submenu_data "Software" "Media" "STC002" "http://$LOCALIPADD:${module_options["module_syncthing,port"]%% *}" # removing second port from url
119-
update_sub_submenu_data "Software" "Media" "NCT002" "https://$LOCALIPADD:${module_options["module_nextcloud,port"]}"
120-
update_sub_submenu_data "Software" "Media" "OWC002" "http://$LOCALIPADD:${module_options["module_owncloud,port"]}"
121-
update_sub_submenu_data "Software" "Media" "JMS002" "http://$LOCALIPADD:${module_options["module_jellyfin,port"]}"
122-
update_sub_submenu_data "Software" "Media" "IMM002" "http://$LOCALIPADD:${module_options["module_immich,port"]}"
123-
update_sub_submenu_data "Software" "Media" "NAV002" "http://$LOCALIPADD:${module_options["module_navidrome,port"]}"
141+
update_sub_submenu_data "Software" "Media" "OMV002" "http://$DISPLAY_URL:${module_options["module_omv,port"]}"
142+
update_sub_submenu_data "Software" "Media" "MED002" "$(get_service_url "plex" "${module_options["module_plexmediaserver,port"]}")"
143+
update_sub_submenu_data "Software" "Media" "EMB002" "$(get_service_url "emby" "${module_options["module_embyserver,port"]}")"
144+
update_sub_submenu_data "Software" "Media" "FIL002" "$(get_service_url "filebrowser" "${module_options["module_filebrowser,port"]}")"
145+
update_sub_submenu_data "Software" "Media" "STR002" "http://$DISPLAY_URL:${module_options["module_stirling,port"]}"
146+
update_sub_submenu_data "Software" "Media" "STC002" "$(get_service_url "syncthing" "${module_options["module_syncthing,port"]%% *}")" # removing second port from url
147+
update_sub_submenu_data "Software" "Media" "NCT002" "https://$DISPLAY_URL:${module_options["module_nextcloud,port"]}"
148+
update_sub_submenu_data "Software" "Media" "OWC002" "http://$DISPLAY_URL:${module_options["module_owncloud,port"]}"
149+
update_sub_submenu_data "Software" "Media" "JMS002" "$(get_service_url "jellyfin" "${module_options["module_jellyfin,port"]}")"
150+
update_sub_submenu_data "Software" "Media" "IMM002" "$(get_service_url "immich" "${module_options["module_immich,port"]}")"
151+
update_sub_submenu_data "Software" "Media" "NAV002" "http://$DISPLAY_URL:${module_options["module_navidrome,port"]}"
124152

125153
# Containers
126-
update_sub_submenu_data "Software" "Containers" "POR002" "http://$LOCALIPADD:${module_options["module_portainer,port"]%% *}" # removing second port from url
154+
# Portainer uses HTTPS on port 9443 (not the edge agent port 9000)
155+
if docker container ls -a --format "{{.Names}}" 2>/dev/null | grep -q "^swag$" && \
156+
docker exec swag test -f "/config/nginx/proxy-confs/portainer.subfolder.conf.enabled" 2>/dev/null; then
157+
update_sub_submenu_data "Software" "Containers" "POR002" "https://$DISPLAY_URL/portainer"
158+
else
159+
update_sub_submenu_data "Software" "Containers" "POR002" "https://$DISPLAY_URL:9443"
160+
fi
127161

128162
# Backup
129-
update_sub_submenu_data "Software" "Backup" "DPL002" "http://$LOCALIPADD:${module_options["module_duplicati,port"]%% *}" # removing second port from url
163+
update_sub_submenu_data "Software" "Backup" "DPL002" "$(get_service_url "duplicati" "${module_options["module_duplicati,port"]%% *}")" # removing second port from url
130164

131165
# Printing
132-
update_sub_submenu_data "Software" "Printing" "OCT002" "http://$LOCALIPADD:${module_options["module_octoprint,port"]}"
166+
update_sub_submenu_data "Software" "Printing" "OCT002" "http://$DISPLAY_URL:${module_options["module_octoprint,port"]}"
133167

134168
# DevTools
135169
[[ -f /etc/rsyncd.conf ]] && update_sub_submenu_data "Software" "DevTools" "DEV011" "$(grep -oP '(?<=^\[).*(?=\])' /etc/rsyncd.conf | xargs)"
136170

137171
# Home automation
138-
update_sub_submenu_data "Software" "HomeAutomation" "HAB002" "http://$LOCALIPADD:${module_options["module_openhab,port"]}"
139-
update_sub_submenu_data "Software" "HomeAutomation" "HAS002" "http://$LOCALIPADD:${module_options["module_haos,port"]}"
140-
update_sub_submenu_data "Software" "HomeAutomation" "DOM002" "http://$LOCALIPADD:${module_options["module_domoticz,port"]}"
141-
update_sub_submenu_data "Software" "HomeAutomation" "EVCC02" "http://$LOCALIPADD:${module_options["module_evcc,port"]}"
172+
update_sub_submenu_data "Software" "HomeAutomation" "HAB002" "http://$DISPLAY_URL:${module_options["module_openhab,port"]}"
173+
update_sub_submenu_data "Software" "HomeAutomation" "HAS002" "http://$DISPLAY_URL:${module_options["module_haos,port"]}"
174+
update_sub_submenu_data "Software" "HomeAutomation" "DOM002" "$(get_service_url "domoticz" "${module_options["module_domoticz,port"]}")"
175+
update_sub_submenu_data "Software" "HomeAutomation" "EVCC02" "http://$DISPLAY_URL:${module_options["module_evcc,port"]}"
142176

143177
# DNS
144-
update_sub_submenu_data "Software" "DNS" "PIH003" "http://$LOCALIPADD:${module_options["module_pi_hole,port"]%% *}/admin" # removing second port from url
145-
update_sub_submenu_data "Software" "DNS" "ADG002" "http://$LOCALIPADD:${module_options["module_adguardhome,port"]%% *}" # removing second port from url
178+
update_sub_submenu_data "Software" "DNS" "PIH003" "$(get_service_url "pihole" "${module_options["module_pi_hole,port"]%% *}")/admin" # removing second port from url
179+
update_sub_submenu_data "Software" "DNS" "ADG002" "http://$DISPLAY_URL:${module_options["module_adguardhome,port"]%% *}" # removing second port from url
146180

147181
# Monitoring
148-
update_sub_submenu_data "Software" "Monitoring" "UPK002" "http://$LOCALIPADD:${module_options["module_uptimekuma,port"]}"
149-
update_sub_submenu_data "Software" "Monitoring" "NTD002" "http://$LOCALIPADD:${module_options["module_netdata,port"]}"
150-
update_sub_submenu_data "Software" "Monitoring" "GRA002" "http://$LOCALIPADD:${module_options["module_grafana,port"]}"
151-
update_sub_submenu_data "Software" "Monitoring" "NAX002" "http://$LOCALIPADD:${module_options["module_netalertx,port"]}"
152-
update_sub_submenu_data "Software" "Monitoring" "PRO002" "http://$LOCALIPADD:${module_options["module_prometheus,port"]}"
182+
update_sub_submenu_data "Software" "Monitoring" "UPK002" "http://$DISPLAY_URL:${module_options["module_uptimekuma,port"]}"
183+
update_sub_submenu_data "Software" "Monitoring" "NTD002" "$(get_service_url "netdata" "${module_options["module_netdata,port"]}")"
184+
update_sub_submenu_data "Software" "Monitoring" "GRA002" "$(get_service_url "grafana" "${module_options["module_grafana,port"]}")"
185+
update_sub_submenu_data "Software" "Monitoring" "NAX002" "http://$DISPLAY_URL:${module_options["module_netalertx,port"]}"
186+
update_sub_submenu_data "Software" "Monitoring" "PRO002" "http://$DISPLAY_URL:${module_options["module_prometheus,port"]}"
153187

154188
# Management
155-
update_sub_submenu_data "Software" "Management" "CPT002" "https://$LOCALIPADD:${module_options["module_cockpit,port"]}"
156-
update_sub_submenu_data "Software" "Management" "HPG002" "http://$LOCALIPADD:${module_options["module_homepage,port"]}"
157-
update_sub_submenu_data "Software" "Management" "NBOX02" "http://$LOCALIPADD:${module_options["module_netbox,port"]}"
189+
update_sub_submenu_data "Software" "Management" "CPT002" "https://$DISPLAY_URL:${module_options["module_cockpit,port"]}"
190+
update_sub_submenu_data "Software" "Management" "HPG002" "$(get_service_url "homepage" "${module_options["module_homepage,port"]}")"
191+
update_sub_submenu_data "Software" "Management" "NBOX02" "$(get_service_url "netbox" "${module_options["module_netbox,port"]}")"
158192

159193
# Downloaders
160-
update_sub_submenu_data "Software" "Downloaders" "DOW002" "http://$LOCALIPADD:${module_options["module_qbittorrent,port"]%% *}" # removing second port from url
161-
update_sub_submenu_data "Software" "Downloaders" "DEL002" "http://$LOCALIPADD:${module_options["module_deluge,port"]%% *}" # removing second port from url
162-
update_sub_submenu_data "Software" "Downloaders" "TRA002" "http://$LOCALIPADD:${module_options["module_transmission,port"]%% *}" # removing second port from url
163-
update_sub_submenu_data "Software" "Downloaders" "SABN02" "http://$LOCALIPADD:${module_options["module_sabnzbd,port"]}"
164-
update_sub_submenu_data "Software" "Downloaders" "MDS002" "http://$LOCALIPADD:${module_options["module_medusa,port"]}"
165-
update_sub_submenu_data "Software" "Downloaders" "SON002" "http://$LOCALIPADD:${module_options["module_sonarr,port"]}"
166-
update_sub_submenu_data "Software" "Downloaders" "RAD002" "http://$LOCALIPADD:${module_options["module_radarr,port"]}"
167-
update_sub_submenu_data "Software" "Downloaders" "BAZ002" "http://$LOCALIPADD:${module_options["module_bazarr,port"]}"
168-
update_sub_submenu_data "Software" "Downloaders" "LID002" "http://$LOCALIPADD:${module_options["module_lidarr,port"]}"
169-
update_sub_submenu_data "Software" "Downloaders" "RDR002" "http://$LOCALIPADD:${module_options["module_readarr,port"]}"
170-
update_sub_submenu_data "Software" "Downloaders" "DOW026" "http://$LOCALIPADD:${module_options["module_prowlarr,port"]}"
171-
update_sub_submenu_data "Software" "Downloaders" "JEL002" "http://$LOCALIPADD:${module_options["module_jellyseerr,port"]}"
194+
update_sub_submenu_data "Software" "Downloaders" "DOW002" "$(get_service_url "qbittorrent" "${module_options["module_qbittorrent,port"]%% *}")" # removing second port from url
195+
update_sub_submenu_data "Software" "Downloaders" "DEL002" "$(get_service_url "deluge" "${module_options["module_deluge,port"]%% *}")" # removing second port from url
196+
update_sub_submenu_data "Software" "Downloaders" "TRA002" "$(get_service_url ${module_options["module_transmission,servicename"]} ${module_options["module_transmission,port"]})" # removing second port from url
197+
update_sub_submenu_data "Software" "Downloaders" "SABN02" "$(get_service_url "sabnzbd" "${module_options["module_sabnzbd,port"]}")"
198+
update_sub_submenu_data "Software" "Downloaders" "MDS002" "$(get_service_url "medusa" "${module_options["module_medusa,port"]}")"
199+
update_sub_submenu_data "Software" "Downloaders" "SON002" "$(get_service_url "sonarr" "${module_options["module_sonarr,port"]}")"
200+
update_sub_submenu_data "Software" "Downloaders" "RAD002" "$(get_service_url "radarr" "${module_options["module_radarr,port"]}")"
201+
update_sub_submenu_data "Software" "Downloaders" "BAZ002" "$(get_service_url "bazarr" "${module_options["module_bazarr,port"]}")"
202+
update_sub_submenu_data "Software" "Downloaders" "LID002" "$(get_service_url "lidarr" "${module_options["module_lidarr,port"]}")"
203+
update_sub_submenu_data "Software" "Downloaders" "RDR002" "$(get_service_url "readarr" "${module_options["module_readarr,port"]}")"
204+
update_sub_submenu_data "Software" "Downloaders" "DOW026" "$(get_service_url "prowlarr" "${module_options["module_prowlarr,port"]}")"
205+
update_sub_submenu_data "Software" "Downloaders" "JEL002" "http://$DISPLAY_URL:${module_options["module_jellyseerr,port"]}"
172206

173207
# web
174-
update_sub_submenu_data "Software" "WebHosting" "GHOST2" "http://$LOCALIPADD:${module_options["module_ghost,port"]}/ghost"
208+
update_sub_submenu_data "Software" "WebHosting" "GHOST2" "$(get_service_url "ghost" "${module_options["module_ghost,port"]}")/ghost"
209+
update_sub_submenu_data "Software" "WebHosting" "SWAG01" "https://$DISPLAY_URL"

tools/modules/software/module_bazarr.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module_options+=(
99
["module_bazarr,group"]="Downloaders"
1010
["module_bazarr,port"]="6767"
1111
["module_bazarr,arch"]="x86-64 arm64"
12-
["module_bazarr,dockerimage"]="lscr.io/linuxserver/bazarr:latest"
12+
["module_bazarr,dockerimage"]="linuxserver/bazarr:latest"
1313
["module_bazarr,dockername"]="bazarr"
1414
)
1515
#
@@ -47,6 +47,8 @@ function module_bazarr () {
4747
-v "${base_dir}/tv:/tv" \
4848
--restart=always \
4949
"$dockerimage"
50+
# Auto-configure SWAG reverse proxy if available
51+
docker_configure_swag_proxy "$dockername" "6767"
5052
;;
5153
"${commands[1]}") # remove
5254
# Remove container and image (functions handle existence checks)

tools/modules/software/module_code-server.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module_options+=(
99
["module_code-server,group"]="Development"
1010
["module_code-server,port"]="8443"
1111
["module_code-server,arch"]="x86-64 arm64"
12-
["module_code-server,dockerimage"]="lscr.io/linuxserver/code-server:latest"
12+
["module_code-server,dockerimage"]="linuxserver/code-server:latest"
1313
["module_code-server,dockername"]="code-server"
1414
)
1515
#

tools/modules/software/module_deluge.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module_options+=(
99
["module_deluge,group"]="Downloaders"
1010
["module_deluge,port"]="8112"
1111
["module_deluge,arch"]="x86-64 arm64"
12-
["module_deluge,dockerimage"]="lscr.io/linuxserver/deluge:latest"
12+
["module_deluge,dockerimage"]="linuxserver/deluge:latest"
1313
["module_deluge,dockername"]="deluge"
1414
)
1515
#
@@ -50,6 +50,8 @@ function module_deluge () {
5050
-v "${base_dir}/downloads:/downloads" \
5151
--restart=always \
5252
"$dockerimage"
53+
# Auto-configure SWAG reverse proxy if available
54+
docker_configure_swag_proxy "$dockername" "8112"
5355
;;
5456
"${commands[1]}") # remove
5557
# Remove container and image (functions handle existence checks)

tools/modules/software/module_domoticz.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ function module_domoticz () {
5757
-v "${base_dir}:/opt/domoticz/userdata" \
5858
--restart=always \
5959
"$dockerimage"
60+
# Auto-configure SWAG reverse proxy if available
61+
docker_configure_swag_proxy "$dockername" "8080"
6062
;;
6163
"${commands[1]}") # remove
6264
docker_operation_progress rm "$dockername"

tools/modules/software/module_dozzle.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ function module_dozzle () {
4444
-p "${port}:8080" \
4545
--restart unless-stopped \
4646
"$dockerimage"
47+
# Auto-configure SWAG reverse proxy if available
48+
docker_configure_swag_proxy "$dockername" "8080"
4749

4850
# Wait for container to be ready
4951
wait_for_container_ready "$dockername" 30 3 "running"

tools/modules/software/module_duplicati.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module_options+=(
99
["module_duplicati,group"]="Backup"
1010
["module_duplicati,port"]="8200"
1111
["module_duplicati,arch"]="x86-64 arm64"
12-
["module_duplicati,dockerimage"]="lscr.io/linuxserver/duplicati:latest"
12+
["module_duplicati,dockerimage"]="linuxserver/duplicati:latest"
1313
["module_duplicati,dockername"]="duplicati"
1414
)
1515
#
@@ -78,6 +78,8 @@ function module_duplicati () {
7878
-v "${base_dir}/backups:/backups" \
7979
-v /:/source:ro \
8080
"$dockerimage"
81+
# Auto-configure SWAG reverse proxy if available
82+
docker_configure_swag_proxy "$dockername" "8200"
8183
;;
8284
"${commands[1]}") # remove
8385
docker_operation_progress rm "$dockername"

tools/modules/software/module_embyserver.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module_options+=(
99
["module_embyserver,group"]="Media"
1010
["module_embyserver,port"]="8091"
1111
["module_embyserver,arch"]="x86-64 arm64"
12-
["module_embyserver,dockerimage"]="lscr.io/linuxserver/emby:latest"
12+
["module_embyserver,dockerimage"]="linuxserver/emby:latest"
1313
["module_embyserver,dockername"]="emby"
1414
)
1515
#
@@ -51,6 +51,8 @@ function module_embyserver () {
5151
-v "${base_dir}/tvshows:/tvshows" \
5252
--restart=always \
5353
"$dockerimage"
54+
# Auto-configure SWAG reverse proxy if available
55+
docker_configure_swag_proxy "$dockername" "8096"
5456
;;
5557
"${commands[1]}") # remove
5658
docker_operation_progress rm "$dockername"

0 commit comments

Comments
 (0)