docs(truenas): add comprehensive Docker apps/containers documentation

- Added TRUENAS_APPS.md with complete documentation of all 13 Docker containers
- Documented container health status, networking, storage mounts, and configurations
- Included disaster recovery export (truenas-apps-export-20251216-143515) with:
  - Individual container configs and metadata
  - Docker images, networks, volumes, and compose projects
  - App configuration and mount point listings
- Updated README.md to reference TRUENAS_APPS.md in documentation index
- Updated scribe.md timestamp

This establishes comprehensive documentation for TrueNAS Scale Docker infrastructure
including Plex, *arr stack (Sonarr/Radarr/Bazarr/Prowlarr), Deluge, Gluetun VPN,
FlareSolverr, Dockge, and Beszel monitoring agent.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-16 18:45:46 -07:00
parent ddef5cfaa2
commit 10de51a307
26 changed files with 18287 additions and 2 deletions

View File

@@ -0,0 +1,455 @@
[
{
"Id": "26bc7cd665e97f4e1e157a2abb17e0c1956a2bcc33df451d04c0dac7269b5a06",
"Created": "2025-12-14T03:52:09.873716931Z",
"Path": "/gluetun-entrypoint",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 2132083,
"ExitCode": 0,
"Error": "",
"StartedAt": "2025-12-14T03:52:10.693799949Z",
"FinishedAt": "0001-01-01T00:00:00Z",
"Health": {
"Status": "unhealthy",
"FailingStreak": 25343,
"Log": [
{
"Start": "2025-12-16T14:40:51.185824262-08:00",
"End": "2025-12-16T14:40:53.310570714-08:00",
"ExitCode": 1,
"Output": "2025-12-16T15:40:53-07:00 ERROR HTTP response status is not OK: 500 500 Internal Server Error: full periodic check: all check tries failed: attempt 1 (15122ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout, attempt 2 (22619ms): dialing: dial tcp4: lookup github.com: i/o timeout, attempt 3 (39768ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout\n\n2025-12-16T15:40:53-07:00 INFO Shutdown successful\n"
},
{
"Start": "2025-12-16T14:40:58.31224677-08:00",
"End": "2025-12-16T14:41:01.725136769-08:00",
"ExitCode": 1,
"Output": "2025-12-16T15:41:01-07:00 ERROR HTTP response status is not OK: 500 500 Internal Server Error: full periodic check: all check tries failed: attempt 1 (15122ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout, attempt 2 (22619ms): dialing: dial tcp4: lookup github.com: i/o timeout, attempt 3 (39768ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout\n\n2025-12-16T15:41:01-07:00 INFO Shutdown successful\n"
},
{
"Start": "2025-12-16T14:41:06.829020024-08:00",
"End": "2025-12-16T14:41:09.63885221-08:00",
"ExitCode": 1,
"Output": "2025-12-16T15:41:09-07:00 ERROR HTTP response status is not OK: 500 500 Internal Server Error: full periodic check: all check tries failed: attempt 1 (15122ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout, attempt 2 (22619ms): dialing: dial tcp4: lookup github.com: i/o timeout, attempt 3 (39768ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout\n\n2025-12-16T15:41:09-07:00 INFO Shutdown successful\n"
},
{
"Start": "2025-12-16T14:41:14.640971491-08:00",
"End": "2025-12-16T14:41:15.141363552-08:00",
"ExitCode": 1,
"Output": "2025-12-16T15:41:15-07:00 ERROR HTTP response status is not OK: 500 500 Internal Server Error: full periodic check: all check tries failed: attempt 1 (15122ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout, attempt 2 (22619ms): dialing: dial tcp4: lookup github.com: i/o timeout, attempt 3 (39768ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout\n\n2025-12-16T15:41:15-07:00 INFO Shutdown successful\n"
},
{
"Start": "2025-12-16T14:41:20.156571044-08:00",
"End": "2025-12-16T14:41:23.066458669-08:00",
"ExitCode": 1,
"Output": "2025-12-16T15:41:23-07:00 ERROR HTTP response status is not OK: 500 500 Internal Server Error: full periodic check: all check tries failed: attempt 1 (15122ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout, attempt 2 (22619ms): dialing: dial tcp4: lookup github.com: i/o timeout, attempt 3 (39768ms): dialing: dial tcp4: lookup cloudflare.com: i/o timeout\n\n2025-12-16T15:41:23-07:00 INFO Shutdown successful\n"
}
]
}
},
"Image": "sha256:43fbafd4656a22473d5c00253d56667e59fcb08e415475cc6e63fbbfa0cc9a78",
"ResolvConfPath": "/mnt/.ix-apps/docker/containers/26bc7cd665e97f4e1e157a2abb17e0c1956a2bcc33df451d04c0dac7269b5a06/resolv.conf",
"HostnamePath": "/mnt/.ix-apps/docker/containers/26bc7cd665e97f4e1e157a2abb17e0c1956a2bcc33df451d04c0dac7269b5a06/hostname",
"HostsPath": "/mnt/.ix-apps/docker/containers/26bc7cd665e97f4e1e157a2abb17e0c1956a2bcc33df451d04c0dac7269b5a06/hosts",
"LogPath": "/mnt/.ix-apps/docker/containers/26bc7cd665e97f4e1e157a2abb17e0c1956a2bcc33df451d04c0dac7269b5a06/26bc7cd665e97f4e1e157a2abb17e0c1956a2bcc33df451d04c0dac7269b5a06-json.log",
"Name": "/gluetun",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "docker-default",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "vpn-deluge_default",
"PortBindings": {
"8112/tcp": [
{
"HostIp": "",
"HostPort": "8112"
}
],
"9696/tcp": [
{
"HostIp": "",
"HostPort": "9696"
}
]
},
"RestartPolicy": {
"Name": "unless-stopped",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
0,
0
],
"CapAdd": [
"CAP_NET_ADMIN"
],
"CapDrop": null,
"CgroupnsMode": "private",
"Dns": null,
"DnsOptions": null,
"DnsSearch": null,
"ExtraHosts": [],
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [
{
"PathOnHost": "/dev/net/tun",
"PathInContainer": "/dev/net/tun",
"CgroupPermissions": "rwm"
}
],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/mnt/.ix-apps/docker/overlay2/6060a9966cacd00b8519e625c03ee4351d3062ea46f60fb62d47869e555b9d04-init/diff:/mnt/.ix-apps/docker/overlay2/962261da189d2daf8bf835a8e531fe4d2f4ffd0863d237ff408eda86f553e688/diff:/mnt/.ix-apps/docker/overlay2/629f11282cbf6581e0715dd753da6ec8962722c3f9b8d2998e4c8ebcafa7b91a/diff:/mnt/.ix-apps/docker/overlay2/ae12f33d09b927db84e72a0e5f24a24505a190cabd0f7523bc057e87cefd90bf/diff",
"MergedDir": "/mnt/.ix-apps/docker/overlay2/6060a9966cacd00b8519e625c03ee4351d3062ea46f60fb62d47869e555b9d04/merged",
"UpperDir": "/mnt/.ix-apps/docker/overlay2/6060a9966cacd00b8519e625c03ee4351d3062ea46f60fb62d47869e555b9d04/diff",
"WorkDir": "/mnt/.ix-apps/docker/overlay2/6060a9966cacd00b8519e625c03ee4351d3062ea46f60fb62d47869e555b9d04/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "26bc7cd665e9",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"8000/tcp": {},
"8112/tcp": {},
"8388/tcp": {},
"8388/udp": {},
"8888/tcp": {},
"9696/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"FIREWALL=on",
"VPN_SERVICE_PROVIDER=nordvpn",
"DNS_KEEP_NAMESERVER=on",
"NORDVPN_TOKEN=\"e9f2ab1385ac6162c05e318dd47858f48e7655321850d7297a020d11d66e9325\"",
"VPN_TYPE=wireguard",
"IPV6=off",
"WIREGUARD_PRIVATE_KEY=\"iGRMT2LqalJa86v0eI7lKrDIb3Ziz463v2pHRHIoo3o=\"",
"SERVER_COUNTRIES=United States",
"TZ=America/Denver",
"DOCKGE_ENABLE_CONSOLE=true",
"FIREWALL_OUTBOUND_SUBNETS=192.168.2.0/24",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"VPN_INTERFACE=tun0",
"OPENVPN_ENDPOINT_IP=",
"OPENVPN_ENDPOINT_PORT=",
"OPENVPN_PROTOCOL=udp",
"OPENVPN_USER=",
"OPENVPN_PASSWORD=",
"OPENVPN_USER_SECRETFILE=/run/secrets/openvpn_user",
"OPENVPN_PASSWORD_SECRETFILE=/run/secrets/openvpn_password",
"OPENVPN_VERSION=2.6",
"OPENVPN_VERBOSITY=1",
"OPENVPN_FLAGS=",
"OPENVPN_CIPHERS=",
"OPENVPN_AUTH=",
"OPENVPN_PROCESS_USER=root",
"OPENVPN_MSSFIX=",
"OPENVPN_CUSTOM_CONFIG=",
"WIREGUARD_ENDPOINT_IP=",
"WIREGUARD_ENDPOINT_PORT=",
"WIREGUARD_CONF_SECRETFILE=/run/secrets/wg0.conf",
"WIREGUARD_PRIVATE_KEY_SECRETFILE=/run/secrets/wireguard_private_key",
"WIREGUARD_PRESHARED_KEY=",
"WIREGUARD_PRESHARED_KEY_SECRETFILE=/run/secrets/wireguard_preshared_key",
"WIREGUARD_PUBLIC_KEY=",
"WIREGUARD_ALLOWED_IPS=",
"WIREGUARD_PERSISTENT_KEEPALIVE_INTERVAL=0",
"WIREGUARD_ADDRESSES=",
"WIREGUARD_ADDRESSES_SECRETFILE=/run/secrets/wireguard_addresses",
"WIREGUARD_MTU=1320",
"WIREGUARD_IMPLEMENTATION=auto",
"SERVER_REGIONS=",
"SERVER_CITIES=",
"SERVER_HOSTNAMES=",
"SERVER_CATEGORIES=",
"ISP=",
"OWNED_ONLY=no",
"PRIVATE_INTERNET_ACCESS_OPENVPN_ENCRYPTION_PRESET=",
"VPN_PORT_FORWARDING=off",
"VPN_PORT_FORWARDING_LISTENING_PORT=0",
"VPN_PORT_FORWARDING_PROVIDER=",
"VPN_PORT_FORWARDING_STATUS_FILE=/tmp/gluetun/forwarded_port",
"VPN_PORT_FORWARDING_USERNAME=",
"VPN_PORT_FORWARDING_PASSWORD=",
"VPN_PORT_FORWARDING_UP_COMMAND=",
"VPN_PORT_FORWARDING_DOWN_COMMAND=",
"OPENVPN_CERT=",
"OPENVPN_KEY=",
"OPENVPN_CLIENTCRT_SECRETFILE=/run/secrets/openvpn_clientcrt",
"OPENVPN_CLIENTKEY_SECRETFILE=/run/secrets/openvpn_clientkey",
"OPENVPN_ENCRYPTED_KEY=",
"OPENVPN_ENCRYPTED_KEY_SECRETFILE=/run/secrets/openvpn_encrypted_key",
"OPENVPN_KEY_PASSPHRASE=",
"OPENVPN_KEY_PASSPHRASE_SECRETFILE=/run/secrets/openvpn_key_passphrase",
"SERVER_NUMBER=",
"SERVER_NAMES=",
"STREAM_ONLY=",
"FREE_ONLY=",
"SECURE_CORE_ONLY=",
"TOR_ONLY=",
"MULTIHOP_ONLY=",
"PREMIUM_ONLY=",
"PORT_FORWARD_ONLY=",
"FIREWALL_ENABLED_DISABLING_IT_SHOOTS_YOU_IN_YOUR_FOOT=on",
"FIREWALL_VPN_INPUT_PORTS=",
"FIREWALL_INPUT_PORTS=",
"FIREWALL_DEBUG=off",
"LOG_LEVEL=info",
"HEALTH_SERVER_ADDRESS=127.0.0.1:9999",
"HEALTH_TARGET_ADDRESSES=cloudflare.com:443,github.com:443",
"HEALTH_ICMP_TARGET_IPS=1.1.1.1,8.8.8.8",
"HEALTH_SMALL_CHECK_TYPE=icmp",
"HEALTH_RESTART_VPN=on",
"DNS_SERVER=on",
"DNS_UPSTREAM_RESOLVER_TYPE=DoT",
"DNS_UPSTREAM_RESOLVERS=cloudflare",
"DNS_BLOCK_IPS=",
"DNS_BLOCK_IP_PREFIXES=",
"DNS_CACHING=on",
"DNS_UPSTREAM_IPV6=off",
"BLOCK_MALICIOUS=on",
"BLOCK_SURVEILLANCE=off",
"BLOCK_ADS=off",
"DNS_UNBLOCK_HOSTNAMES=",
"DNS_REBINDING_PROTECTION_EXEMPT_HOSTNAMES=",
"DNS_UPDATE_PERIOD=24h",
"DNS_ADDRESS=127.0.0.1",
"HTTPPROXY=",
"HTTPPROXY_LOG=off",
"HTTPPROXY_LISTENING_ADDRESS=:8888",
"HTTPPROXY_STEALTH=off",
"HTTPPROXY_USER=",
"HTTPPROXY_PASSWORD=",
"HTTPPROXY_USER_SECRETFILE=/run/secrets/httpproxy_user",
"HTTPPROXY_PASSWORD_SECRETFILE=/run/secrets/httpproxy_password",
"SHADOWSOCKS=off",
"SHADOWSOCKS_LOG=off",
"SHADOWSOCKS_LISTENING_ADDRESS=:8388",
"SHADOWSOCKS_PASSWORD=",
"SHADOWSOCKS_PASSWORD_SECRETFILE=/run/secrets/shadowsocks_password",
"SHADOWSOCKS_CIPHER=chacha20-ietf-poly1305",
"HTTP_CONTROL_SERVER_LOG=on",
"HTTP_CONTROL_SERVER_ADDRESS=:8000",
"HTTP_CONTROL_SERVER_AUTH_CONFIG_FILEPATH=/gluetun/auth/config.toml",
"HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE={}",
"UPDATER_PERIOD=0",
"UPDATER_MIN_RATIO=0.8",
"UPDATER_VPN_SERVICE_PROVIDERS=",
"UPDATER_PROTONVPN_EMAIL=",
"UPDATER_PROTONVPN_PASSWORD=",
"PUBLICIP_FILE=/tmp/gluetun/ip",
"PUBLICIP_ENABLED=on",
"PUBLICIP_API=ipinfo,ifconfigco,ip2location,cloudflare",
"PUBLICIP_API_TOKEN=",
"STORAGE_FILEPATH=/gluetun/servers.json",
"PPROF_ENABLED=no",
"PPROF_BLOCK_PROFILE_RATE=0",
"PPROF_MUTEX_PROFILE_RATE=0",
"PPROF_HTTP_SERVER_ADDRESS=:6060",
"VERSION_INFORMATION=on",
"PUID=1000",
"PGID=1000"
],
"Cmd": null,
"Healthcheck": {
"Test": [
"CMD-SHELL",
"/gluetun-entrypoint healthcheck"
],
"Interval": 5000000000,
"Timeout": 5000000000,
"StartPeriod": 10000000000,
"Retries": 3
},
"Image": "qmcgaw/gluetun",
"Volumes": null,
"WorkingDir": "/",
"Entrypoint": [
"/gluetun-entrypoint"
],
"OnBuild": null,
"Labels": {
"com.docker.compose.config-hash": "2c9ec10a8e8c5b5b70a1edf6515e4a67fbc1abd1c9451ab4077cf5db3a1b4481",
"com.docker.compose.container-number": "1",
"com.docker.compose.depends_on": "",
"com.docker.compose.image": "sha256:43fbafd4656a22473d5c00253d56667e59fcb08e415475cc6e63fbbfa0cc9a78",
"com.docker.compose.oneoff": "False",
"com.docker.compose.project": "vpn-deluge",
"com.docker.compose.project.config_files": "/mnt/.ix-apps/app_mounts/dockge/stacks/vpn-deluge/compose.yaml",
"com.docker.compose.project.working_dir": "/mnt/.ix-apps/app_mounts/dockge/stacks/vpn-deluge",
"com.docker.compose.replace": "5406c37c3d3b308d4680efccb531fa41bf06de3b5659f3b89aa417451acb4027",
"com.docker.compose.service": "gluetun",
"com.docker.compose.version": "2.34.0",
"org.opencontainers.image.authors": "quentin.mcgaw@gmail.com",
"org.opencontainers.image.created": "2025-11-26T13:47:08.821Z",
"org.opencontainers.image.description": "VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.",
"org.opencontainers.image.documentation": "https://github.com/qdm12/gluetun",
"org.opencontainers.image.licenses": "MIT",
"org.opencontainers.image.revision": "c25c9f6f0eeb74f45996f34a1243e56122dac75f",
"org.opencontainers.image.source": "https://github.com/qdm12/gluetun",
"org.opencontainers.image.title": "gluetun",
"org.opencontainers.image.url": "https://github.com/qdm12/gluetun",
"org.opencontainers.image.version": "latest"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "1a1dee05303d77c50ac3055ed93e2129191a26b710b9a65f7c97c2a29a9ccf98",
"SandboxKey": "/var/run/docker/netns/1a1dee05303d",
"Ports": {
"8000/tcp": null,
"8112/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8112"
},
{
"HostIp": "::",
"HostPort": "8112"
}
],
"8388/tcp": null,
"8388/udp": null,
"8888/tcp": null,
"9696/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "9696"
},
{
"HostIp": "::",
"HostPort": "9696"
}
]
},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"vpn-deluge_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"gluetun",
"gluetun"
],
"MacAddress": "02:42:ac:10:03:02",
"DriverOpts": null,
"NetworkID": "dc57b5c4e81cf20d38f075dc2cd0408d8604c32207ddd6942ed91c524d36d484",
"EndpointID": "e4c2b4a8c95e55ac4d22bd62b992f21a97816dd8b43519020cba5553de6ec24a",
"Gateway": "172.16.3.1",
"IPAddress": "172.16.3.2",
"IPPrefixLen": 24,
"IPv6Gateway": "fdd0:0:0:3::1",
"GlobalIPv6Address": "fdd0:0:0:3::2",
"GlobalIPv6PrefixLen": 64,
"DNSNames": [
"gluetun",
"26bc7cd665e9"
]
}
}
}
}
]