Commit 6249d10
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
- apps
- actions-runner
- adguardhome-sync
- airsonic-advanced
- apprise-api
- autoscan
- babybuddy
- balfolk-ics
- bazarr
- budge
- caddy
- calibre-web
- changedetection
- cloudflareddns
- cni-plugins
- code-server
- cops
- ddclient
- deemix
- deluge
- devcontainer
- diskover
- doplarr
- drydock
- duckdns
- duplicacy
- duplicati
- emby
- esphome
- faster-whisper
- feed2toot
- flood
- foldingathome
- freshrss
- gluetun
- golang
- grav
- grocy
- habridge
- healthchecks
- hedgedoc
- heimdall
- hishtory-server
- home-assistant
- htpcmanager
- hytale
- it-tools
- jackett
- java11
- java17
- java21
- java25
- java8
- jbops
- jellyfin
- jellyseerr
- k8s-sidecar
- kavita
- kimai
- kometa
- kopia
- kube-sa-proxy
- lazylibrarian
- ldap-auth
- librespeed
- lidarr
- limnoria
- lychee
- mariadb
- medusa
- memcache
- minecraft-java8
- minisatip
- monica
- mstream
- mylar3
- netbootxyz
- netbox
- nextcloud-fpm
- nextcloud-imaginary
- nextcloud-notify-push
- nginx
- ngircd
- node
- nzbget
- nzbhydra2
- ombi
- openssh-server
- openvscode-server
- overseerr
- pairdrop
- piper
- plex
- postgresql
- projectsend
- prowlarr
- pwndrop
- pyload-ng
- pylon
- python-node
- python
- qbitmanage
- qbittorrent
- qui
- radarr
- raneto
- readarr
- renovate
- requestrr
- resilio-sync
- rsnapshot
- sabnzbd
- sealskin
- seerr
- sickchill
- sickgear
- smartctl-exporter
- smokeping
- snapdrop
- snipe-it
- sonarr
- speedtest-tracker
- stash
- steamcmd
- synclounge
- syncthing
- syslog-ng
- tailscale
- tautulli
- thelounge
- theme-park
- tqm
- transmission
- ubuntu
- unifi-network-application
- unpackerr
- valkey
- watchtower
- webhook
- whisparr
- wikijs
- wud
- xbackbone
- znc
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
| 7 | + | |
| 8 | + | |
9 | 9 | | |
10 | | - | |
11 | | - | |
| 10 | + | |
| 11 | + | |
12 | 12 | | |
13 | | - | |
14 | | - | |
| 13 | + | |
| 14 | + | |
15 | 15 | | |
16 | | - | |
17 | | - | |
| 16 | + | |
| 17 | + | |
18 | 18 | | |
19 | | - | |
20 | | - | |
| 19 | + | |
| 20 | + | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 22 | + | |
| 23 | + | |
33 | 24 | | |
34 | 25 | | |
35 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
11 | 14 | | |
12 | 15 | | |
13 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
10 | | - | |
| 8 | + | |
| 9 | + | |
11 | 10 | | |
12 | | - | |
13 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
14 | 14 | | |
15 | | - | |
16 | | - | |
| 15 | + | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | 9 | | |
13 | 10 | | |
14 | 11 | | |
15 | | - | |
16 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
17 | 23 | | |
18 | 24 | | |
19 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | | - | |
13 | | - | |
| 12 | + | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
| 12 | + | |
| 13 | + | |
20 | 14 | | |
21 | 15 | | |
22 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
| 9 | + | |
| 10 | + | |
14 | 11 | | |
15 | 12 | | |
16 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
13 | 18 | | |
14 | 19 | | |
15 | 20 | | |
0 commit comments