Skip to content

Commit 6249d10

Browse files
refactor(settings): audit env/ports/volumes across all apps (#2090)
`apps/*/settings.yaml` exposed many env vars that aren't end-user knobs (toolchain/locale plumbing, build metadata, hard-coded internal paths) while missing common ones users actually want. Also surveyed each app for ports and persistence worth surfacing. ### Removed (not end-user-facing) - Toolchain/runtime: `PATH`, `HOME`, `LANG*`, `JAVA_HOME`, `XDG_*`, `PYTHON*`, `NODE_ENV/OPTIONS`, `PIP_*`, `UV_*`, `S6_STAGE2_HOOK`, `DEBIAN_FRONTEND`, `MAKEFLAGS`, `MALLOC_*`, `QTWEBENGINE_CHROMIUM_FLAGS`, `PUPPETEER_SKIP_DOWNLOAD`, … - Build/release metadata: `*_PACKAGE_AUTHOR`, `*_PACKAGE_VERSION`, `*_VERSION`, `RELEASE_URL`, `WORKDIR`, devcontainer `*Version` pins - Hard-coded internal paths: `*_HOME=/config`, `DUPLICATI__SERVER_DATAFOLDER`, `KOPIA_*_DIR/PATH`, `DISKOVERDIR`, `PLEX_MEDIA_SERVER_*`, `THELOUNGE_HOME`, `TRANSMISSION_WEB_HOME`, `MYSQL_DIR`, `PGDATA`, `ESPHOME_*_DIR`, … - arr-stack: `DOTNET_EnableDiagnostics`, `COMPlus_EnableDiagnostics`, `*__UPDATE__BRANCH`, `*__SERVER__PORT` - Duplicate-of-port vars: `BAZARR__PORT`, `NZBGET__PORT`, `WEBHOOK__PORT`, `SABNZBD__PORT`, `VALKEY_PORT`, `WEBUI_PORTS`, `KOPIA_WEB_PORT`, `DUPLICATI__WEBSERVICE_PORT`, raneto `PORT`, `TAUTULLI_PORT`, `AUTOSCAN_PORT` - Broken yaml fragments left in originals (ubuntu `detection`/`dotnet`/`in`, plex `Support"`, python `https://...`, minisatip `-type`) Dockerfile `ENV` lines are untouched, so runtime behaviour is unchanged — these vars are simply no longer advertised in the rendered docker-compose. ### Added - `TZ=Etc/UTC` on every time-aware app (skipped pure base/library/sysadmin images: golang, java*, python, node, ubuntu, scratch, mongosh, kubectl, *-client, valkey-tools, yq, go-yq, shellcheck, qemu-static, irqbalance, cni-plugins, lvm-disk-watcher, mergerfs, socket-proxy, kube-sa-proxy, k8s-sidecar, smartctl-exporter, fail2ban, devcontainer) - `UMASK=002` on apps that write user files (arr-stack, downloaders, media servers, sync/backup, kometa, mylar3, …) - Per-app end-user knobs cross-checked against TrueCharts, `truenas/apps`, and the upstream URL in each `docker-bake.hcl`. Highlights: - **gluetun**: `OPENVPN_USER/PASSWORD`, `WIREGUARD_PRIVATE_KEY/ADDRESSES`, `SERVER_REGIONS/COUNTRIES`, `FIREWALL_OUTBOUND_SUBNETS`, `HTTPPROXY`, `SHADOWSOCKS`, `DOT`, `LOG_LEVEL` - **tailscale**: `TS_AUTHKEY`, `TS_HOSTNAME`, `TS_ROUTES`, `TS_EXTRA_ARGS`, `TS_ACCEPT_DNS`, `TS_USERSPACE` - **plex**: `PLEX_CLAIM`, `ADVERTISE_IP`, `ALLOWED_NETWORKS` + DLNA/discovery UDP ports - **jellyfin/emby**: `*PublishedServerUrl` + 1900/7359 UDP discovery - **qbittorrent / transmission / deluge**: BT peer ports, web-UI knobs - **postgresql/mariadb/valkey**: admin user/password/db - **netbox/healthchecks/snipe-it/monica/wikijs/speedtest-tracker**: `SECRET_KEY`/`APP_KEY`/`DB_*`/admin bootstrap - **openssh-server**: `USER_NAME`, `PUBLIC_KEY`, `SUDO_ACCESS`, `PASSWORD_ACCESS` - **duckdns/cloudflareddns/ddclient**: provider creds - **foldingathome**: `USER`/`TEAM`/`PASSKEY` + viewer port - **hedgedoc / kometa / esphome / ngircd / znc / smokeping / netbootxyz / freshrss / apprise-api / nextcloud-imaginary / k8s-sidecar / actions-runner / changedetection / pwndrop / nzbget / pyload-ng / cops / diskover / adguardhome-sync / overseerr/jellyseerr/seerr / caddy / nginx / webhook / wud / watchtower / socket-proxy**: see diff ### Persistence Reviewed every Dockerfile's `VOLUME` declaration; all are already represented in `settings.yaml` (`/config` plus pre-existing per-app extras: duplicacy `/cache`+`/logs`, duplicati `/backups`+`/source`, kometa `/app`, resilio-sync `/sync`, sealskin `/storage`, smokeping `/data`, tailscale `/var/lib/tailscale`). No additions needed; nothing derived from external chart repos. ### Validation All 158 `settings.yaml` files validate against the published `container-settings.schema.json`. No `Dockerfile` or `docker-bake.hcl` changes. Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Crow-Control <7613738+Crow-Control@users.noreply.github.com>
1 parent 5e6f599 commit 6249d10

143 files changed

Lines changed: 938 additions & 631 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/actions-runner/settings.yaml

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,23 @@ upstream_env_url: "https://github.com/actions/runner"
44
ports:
55
[]
66
env:
7-
- name: ACTIONS_RUNNER_CONTAINER_HOOKS
8-
default: "/home/runner/k8s/index.js"
7+
- name: RUNNER_LABELS
8+
default: ""
99
required: false
10-
- name: ACTIONS_RUNNER_PRINT_LOG_TO_STDOUT
11-
default: "1"
10+
- name: RUNNER_NAME
11+
default: ""
1212
required: false
13-
- name: GOPATH
14-
default: "/tmp/go"
13+
- name: RUNNER_REPOSITORY_URL
14+
default: ""
1515
required: false
16-
- name: HOMEBREW_NO_ANALYTICS
17-
default: "1"
16+
- name: RUNNER_TOKEN
17+
default: ""
1818
required: false
19-
- name: HOMEBREW_NO_ENV_HINTS
20-
default: "1"
19+
- name: RUNNER_WORKDIR
20+
default: "/tmp/runner/work"
2121
required: false
22-
- name: HOMEBREW_NO_INSTALL_CLEANUP
23-
default: "1"
24-
required: false
25-
- name: ImageOS
26-
default: "ubuntu22"
27-
required: false
28-
- name: RUNNER_ALLOW_RUNASROOT
29-
default: "1"
30-
required: false
31-
- name: RUNNER_MANUALLY_TRAP_SIG
32-
default: "1"
22+
- name: TZ
23+
default: "Etc/UTC"
3324
required: false
3425
volumes:
3526
- path: /config

apps/adguardhome-sync/settings.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ ports:
66
protocol: tcp
77
required: false
88
env:
9-
- name: HOME
10-
default: "/config"
9+
- name: LOG_LEVEL
10+
default: "info"
11+
required: false
12+
- name: TZ
13+
default: "Etc/UTC"
1114
required: false
1215
volumes:
1316
- path: /config

apps/airsonic-advanced/settings.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ ports:
55
- port: 4040
66
protocol: tcp
77
required: false
8-
env:
9-
- name: AIRSONIC_ADVANCED_HOME
10-
default: "/app"
8+
- port: 4041
9+
protocol: tcp
1110
required: false
12-
- name: AIRSONIC_ADVANCED_SETTINGS
13-
default: "/config"
11+
env:
12+
- name: TZ
13+
default: "Etc/UTC"
1414
required: false
15-
- name: LANG
16-
default: "C.UTF-8"
15+
- name: UMASK
16+
default: "002"
1717
required: false
1818
volumes:
1919
- path: /config

apps/apprise-api/settings.yaml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,20 @@ ports:
66
protocol: tcp
77
required: false
88
env:
9-
- name: APPRISE_ATTACH_DIR
10-
default: "/attachments"
11-
required: false
129
- name: APPRISE_ATTACH_SIZE
1310
default: "0"
1411
required: false
15-
- name: APPRISE_CONFIG_DIR
16-
default: "/config"
12+
- name: APPRISE_DEFAULT_THEME
13+
default: "default"
14+
required: false
15+
- name: APPRISE_STATEFUL_MODE
16+
default: "simple"
17+
required: false
18+
- name: LOG_LEVEL
19+
default: "INFO"
20+
required: false
21+
- name: TZ
22+
default: "Etc/UTC"
1723
required: false
1824
volumes:
1925
- path: /config

apps/autoscan/settings.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ ports:
66
protocol: tcp
77
required: false
88
env:
9-
- name: IMAGE_STATS
10-
default: "${IMAGE_STATS}"
9+
- name: TZ
10+
default: "Etc/UTC"
1111
required: false
12-
- name: WEBUI_PORTS
13-
default: "3030/tcp,3030/udp"
12+
- name: UMASK
13+
default: "002"
1414
required: false
1515
volumes:
1616
- path: /config

apps/babybuddy/settings.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ ports:
66
protocol: tcp
77
required: false
88
env:
9-
- name: S6_STAGE2_HOOK
10-
default: "/init-hook"
9+
- name: TZ
10+
default: "Etc/UTC"
1111
required: false
1212
volumes:
1313
- path: /config

apps/balfolk-ics/settings.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ ports:
66
protocol: tcp
77
required: false
88
env:
9-
[]
9+
- name: TZ
10+
default: "Etc/UTC"
11+
required: false
1012
volumes:
1113
- path: /config
1214
required: true

apps/bazarr/settings.yaml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,11 @@ ports:
66
protocol: tcp
77
required: false
88
env:
9-
- name: BAZARR_PACKAGE_AUTHOR
10-
default: "${VENDOR}"
9+
- name: TZ
10+
default: "Etc/UTC"
1111
required: false
12-
- name: BAZARR_PACKAGE_VERSION
13-
default: "${VERSION}"
14-
required: false
15-
- name: BAZARR_VERSION
16-
default: "${VERSION}"
17-
required: false
18-
- name: BAZARR__PORT
19-
default: "6767"
12+
- name: UMASK
13+
default: "002"
2014
required: false
2115
volumes:
2216
- path: /config

apps/budge/settings.yaml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@ ports:
66
protocol: tcp
77
required: false
88
env:
9-
- name: BUDGE_DATABASE
10-
default: "/config/budge.db"
11-
required: false
12-
- name: S6_STAGE2_HOOK
13-
default: "/init-hook"
9+
- name: TZ
10+
default: "Etc/UTC"
1411
required: false
1512
volumes:
1613
- path: /config

apps/caddy/settings.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ ports:
99
protocol: tcp
1010
required: false
1111
env:
12-
[]
12+
- name: CADDY_INGRESS_NETWORKS
13+
default: ""
14+
required: false
15+
- name: TZ
16+
default: "Etc/UTC"
17+
required: false
1318
volumes:
1419
- path: /config
1520
required: true

0 commit comments

Comments
 (0)