task-21-news-triage evidence ============================== Protected files: BEFORE stats ------------------------------ File: /home/connor/compose.yml Size: 45902 Blocks: 96 IO Block: 4096 regular file Device: 253,0 Inode: 3456331 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 1000/ connor) Access: 2026-09-01 13:31:00.127897473 -0400 Modify: 2026-09-01 13:31:00.123329809 -0400 Change: 2026-09-01 13:31:00.123329809 -0400 Birth: 2026-09-01 09:59:16.224683093 -0400 File: /home/connor/Caddyfile Size: 15394 Blocks: 32 IO Block: 4096 regular file Device: 253,0 Inode: 3456314 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 1000/ connor) Access: 2026-09-01 09:51:56.598569747 -0400 Modify: 2026-08-28 15:51:59.475726235 -0400 Change: 2026-08-28 15:51:59.475726235 -0400 Birth: 2026-08-26 22:10:30.165466997 -0400 File: /home/connor/data/ntfy/etc/server.yml Size: 506 Blocks: 8 IO Block: 4096 regular file Device: 253,0 Inode: 7224774 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 0/ root) Access: 2026-09-01 17:21:22.759598097 -0400 Modify: 2026-08-20 17:25:40.623346035 -0400 Change: 2026-08-20 17:25:40.623346035 -0400 Birth: 2026-02-27 16:47:40.215201274 -0500 File: /home/connor/config/prometheus/prometheus.yml Size: 877 Blocks: 8 IO Block: 4096 regular file Device: 253,0 Inode: 10486193 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 1000/ connor) Access: 2026-09-01 17:21:22.714596100 -0400 Modify: 2026-08-25 22:21:00.811095356 -0400 Change: 2026-08-25 22:21:00.811095356 -0400 Birth: 2026-08-25 22:21:00.810402344 -0400 QA: scratch compose.yml validation ----------------------------------- Command: podman-compose -f /tmp/opencode/compose.yml config networks: default: null internal: null llm: null services: alloy: command: - run - --server.http.listen-addr=0.0.0.0:12345 - --storage.path=/var/lib/alloy/data - /etc/alloy/config.alloy depends_on: loki: condition: service_started image: docker.io/grafana/alloy:latest networks: - internal restart: unless-stopped user: 0:0 volumes: - ./config/alloy/config.alloy:/etc/alloy/config.alloy:ro - ./data/alloy:/var/lib/alloy/data - ./data/caddy/logs:/var/log/caddy:ro authelia: environment: AUTHELIA_IDENTITY_PROVIDERS_OIDC_HMAC_SECRET: '' AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET: '' AUTHELIA_SESSION_SECRET: '' AUTHELIA_STORAGE_ENCRYPTION_KEY: '' TZ: America/Louisville X_AUTHELIA_CONFIG_FILTERS: template healthcheck: interval: 30s retries: 3 start_period: 20s test: - CMD - /app/healthcheck.sh timeout: 5s image: docker.io/authelia/authelia:4.39 networks: - internal restart: unless-stopped volumes: - ./config/authelia:/config baikal: image: ckulka/baikal:latest networks: - internal restart: unless-stopped volumes: - ./config/baikal:/var/www/baikal/config - ./data/baikal:/var/www/baikal/Specific bitwarden: environment: DOMAIN: https://bw.rcjohnstone.com SIGNUPS_ALLOWED: 'false' image: vaultwarden/server:latest-alpine networks: - internal restart: unless-stopped volumes: - ./data/bitwarden:/data caddy: environment: BACKEND_API_URL: https://runway.rcjohnstone.com/api image: caddy:latest networks: default: null internal: null llm: null ports: - 80:80 - 443:443 restart: unless-stopped volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./config/caddy:/config - ./data/caddy:/data - ./data/website/dist:/srv/www:ro - ./data/runway/web:/srv/runway:ro - ./data/news/web:/srv/news:ro - ./data/ssl:/certbot - ./data/flexio/dist:/srv/flexio:ro - ./data/caddy/logs:/var/log/caddy croc: environment: CROC_PASS: '' image: docker.io/schollz/croc ports: - 9009-9013:9009-9013 restart: unless-stopped crowdsec: environment: COLLECTIONS: crowdsecurity/caddy crowdsecurity/http-cve crowdsecurity/base-http-scenarios crowdsecurity/whitelist-good-actors TZ: America/Louisville image: docker.io/crowdsecurity/crowdsec:latest networks: - internal ports: - 127.0.0.1:8099:8080 restart: unless-stopped volumes: - ./config/crowdsec:/etc/crowdsec - ./data/crowdsec:/var/lib/crowdsec/data - ./data/caddy/logs:/var/log/caddy:ro flexio-api: environment: AI_HOST: ai.rcjohnstone.com FLEXIO_MODEL: gemma3-12b OPENWEBUI_KEY: '' OWNER_KEY: '' TRAGGO_HOST: time.rcjohnstone.com TRAGGO_TOKEN: '' image: git.rcjohnstone.com/connor/flexio:latest networks: - internal - llm restart: unless-stopped gitea: environment: USER: connor USER_GID: '1000' USER_UID: '1000' image: docker.gitea.com/gitea:latest networks: - internal ports: - 2222:2222 restart: always volumes: - ./data/gitea:/data - /etc/localtime:/etc/localtime:ro grafana: depends_on: loki: condition: service_started prometheus: condition: service_started environment: GF_ANALYTICS_CHECK_FOR_UPDATES: 'false' GF_ANALYTICS_REPORTING_ENABLED: 'false' GF_SECURITY_ADMIN_PASSWORD: '' GF_SERVER_ROOT_URL: https://grafana.rcjohnstone.com GF_USERS_ALLOW_SIGN_UP: 'false' TZ: America/Louisville image: docker.io/grafana/grafana:latest networks: - internal restart: unless-stopped volumes: - ./config/grafana/provisioning:/etc/grafana/provisioning:ro - ./data/grafana-dashboards:/var/lib/grafana/dashboards:ro - ./data/grafana:/var/lib/grafana hedgedoc: environment: CMD_ALLOW_EMAIL_REGISTER: 'false' CMD_DB_DIALECT: mariadb CMD_DOMAIN: md.rcjohnstone.com CMD_PORT: '3000' CMD_PROTOCOL_USESSL: 'true' CMD_URL_ADDPORT: 'false' DB_HOST: hedgedocdb DB_NAME: hedgedoc DB_PASS: '' DB_PORT: '3306' DB_USER: hedgedoc PGID: '1000' PUID: '1000' TZ: America/Louisville image: lscr.io/linuxserver/hedgedoc:latest networks: - internal restart: unless-stopped volumes: - ./config/hedgedoc:/config hedgedocdb: environment: MARIADB_DATABASE: hedgedoc MARIADB_PASSWORD: '' MARIADB_ROOT_PASSWORD: '' MARIADB_USER: hedgedoc image: docker.io/mariadb networks: - internal restart: unless-stopped volumes: - ./data/hedgedoc:/var/lib/mysql homeassistant: image: ghcr.io/home-assistant/home-assistant:stable network_mode: host privileged: true restart: unless-stopped volumes: - ./config/homeassistant:/config - /etc/localtime:/etc/localtime:ro - /run/dbus:/run/dbus:ro immich: depends_on: immich_cache: condition: service_started immich_db: condition: service_started environment: DB_DATABASE_NAME: '' DB_HOSTNAME: immich_db DB_PASSWORD: '' DB_USERNAME: '' IMMICH_VERSION: '' MACHINE_LEARNING_DEVICE_IDS: 0,1 MACHINE_LEARNING_WORKERS: '2' REDIS_HOSTNAME: immich_cache image: ghcr.io/immich-app/immich-server:release networks: - internal restart: unless-stopped volumes: - /home/connor/photo/immich:/data - /etc/localtime:/etc/localtime:ro immich_cache: healthcheck: test: redis-cli ping || exit 1 image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571 networks: - internal restart: always volumes: - ./data/immich/valkey:/data/ immich_db: environment: POSTGRES_DB: '' POSTGRES_INITDB_ARGS: --data-checksums POSTGRES_PASSWORD: '' POSTGRES_USER: '' image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:41eacbe83eca995561fe43814fd4891e16e39632806253848efaf04d3c8a8b84 networks: - internal restart: always shm_size: 128mb volumes: - ./data/immich/postgres:/var/lib/postgresql/data immich_machine_learning: devices: - nvidia.com/gpu=all environment: DB_DATABASE_NAME: '' DB_HOSTNAME: immich_db DB_PASSWORD: '' DB_USERNAME: '' IMMICH_VERSION: '' MACHINE_LEARNING_DEVICE_IDS: 0,1 MACHINE_LEARNING_WORKERS: '2' REDIS_HOSTNAME: immich_cache healthcheck: disable: false image: ghcr.io/immich-app/immich-machine-learning:release-cuda networks: - internal restart: always volumes: - model-cache:/cache jellyfin: devices: - /dev/dri:/dev/dri environment: JELLYFIN_PublishedServerUrl: jellyfin.rcjohnstone.com PGID: '1000' PUID: '1000' TZ: America/Louisville group_add: - '989' image: lscr.io/linuxserver/jellyfin:latest networks: - internal ports: - 7359:7359/udp - 1900:1900/udp - 8020:8096 restart: unless-stopped volumes: - ./config/jellyfin:/config - ./data/jellyfin:/cache - /home/connor/video:/video - /home/connor/audio:/audio - /home/connor/books:/books jellyseerr: environment: LOG_LEVEL: debug TZ: America/Louisville image: fallenbagel/jellyseerr:latest networks: - internal restart: unless-stopped volumes: - ./config/jellyseer:/app/config - /home/connor/video:/video - /home/connor/audio:/audio - /home/connor/books:/books lazylibrarian: environment: DOCKER_MODS: linuxserver/mods:universal-calibre|linuxserver/mods:lazylibrarian-ffmpeg PGID: '1000' PUID: '1000' TZ: America/Louisville image: lscr.io/linuxserver/lazylibrarian:latest networks: - internal restart: unless-stopped volumes: - ./config/lazylibrarian:/config - /home/connor/downloads:/downloads - /home/connor/books:/books lidarr: environment: PGID: '1000' PUID: '1000' TZ: America/Louisville image: lscr.io/linuxserver/lidarr:latest networks: - internal restart: unless-stopped volumes: - ./config/lidarr:/config - /home/connor/downloads:/data - /home/connor/video:/video - /home/connor/audio:/audio - /home/connor/books:/books litellm: command: - --config - /app/config.yaml - --port - '4000' depends_on: litellm-db: condition: service_healthy environment: ANTHROPIC_API_KEY: '' DATABASE_URL: postgresql://litellm:@litellm-db:5432/litellm GENERIC_AUTHORIZATION_ENDPOINT: https://auth.rcjohnstone.com/api/oidc/authorization GENERIC_CLIENT_ID: litellm GENERIC_CLIENT_SECRET: '' GENERIC_SCOPE: openid email profile groups GENERIC_TOKEN_ENDPOINT: https://auth.rcjohnstone.com/api/oidc/token GENERIC_USERINFO_ENDPOINT: https://auth.rcjohnstone.com/api/oidc/userinfo LITELLM_MASTER_KEY: '' MOONSHOT_API_KEY: '' OPENAI_API_KEY: '' OPENCODE_ZEN_API_KEY: '' PROXY_ADMIN_ID: connor PROXY_BASE_URL: https://llm.rcjohnstone.com STORE_MODEL_IN_DB: 'False' UI_PASSWORD: '' UI_USERNAME: '' healthcheck: interval: 60s retries: 3 start_period: 90s test: - CMD-SHELL - /app/.venv/bin/python3 -c "import urllib.request as u,sys; sys.exit(0 if u.urlopen('http://127.0.0.1:4000/health/liveliness',timeout=4).status==200 and u.urlopen('http://llama-swap:8080/v1/models',timeout=4).status==200 else 1)" timeout: 5s image: ghcr.io/berriai/litellm:main-stable networks: - internal - llm ports: - 127.0.0.1:4000:4000 restart: unless-stopped volumes: - ./config/litellm/config.yaml:/app/config.yaml:ro litellm-db: environment: POSTGRES_DB: litellm POSTGRES_INITDB_ARGS: --data-checksums POSTGRES_PASSWORD: '' POSTGRES_USER: litellm healthcheck: interval: 30s retries: 5 start_period: 300s test: - CMD-SHELL - pg_isready -U litellm -d litellm timeout: 5s image: docker.io/library/postgres:16-alpine networks: - internal restart: unless-stopped volumes: - ./data/litellm-db:/var/lib/postgresql/data llama-swap: command: - --config - /app/config.yaml - --listen - :8080 cpuset: 0-7 devices: - nvidia.com/gpu=all image: ghcr.io/mostlygeek/llama-swap:cuda networks: - internal - llm ports: - 127.0.0.1:8188:8080 restart: unless-stopped volumes: - /opt/llama-models:/models:ro - ./config/llama-swap/config.yaml:/app/config.yaml:ro loki: command: - -config.file=/etc/loki/loki.yaml image: docker.io/grafana/loki:latest networks: - internal restart: unless-stopped volumes: - ./config/loki/loki.yaml:/etc/loki/loki.yaml:ro - ./data/loki:/loki news-backend: environment: NEWS_DATABASE_URL: sqlite:///db/news.db NTFY_PASS: '' NTFY_URL: '' NTFY_USER: '' TZ: America/Louisville healthcheck: interval: 30s retries: 3 start_period: 5s test: - CMD - curl - -f - http://localhost:3000/healthz timeout: 5s image: git.rcjohnstone.com/connor/news:latest networks: - internal restart: unless-stopped volumes: - ./data/news/db:/db - ./config/news:/config:ro node-exporter: command: - --path.rootfs=/host - --collector.systemd image: quay.io/prometheus/node-exporter:latest network_mode: host pid: host restart: unless-stopped volumes: - /:/host:ro,rslave ntfy: command: - serve environment: TZ: America/Louisville healthcheck: interval: 60s retries: 3 start_period: 40s test: - CMD-SHELL - wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '"healthy"\s*:\s*true' || exit 1 timeout: 10s image: binwiederhier/ntfy init: true networks: - internal restart: unless-stopped volumes: - ./data/ntfy/cache:/var/cache/ntfy - ./data/ntfy/etc:/etc/ntfy - ./data/ntfy/lib:/var/lib/ntfy ollama-webui: depends_on: litellm: condition: service_started environment: DEFAULT_MODELS: gpt-oss-20b ENABLE_OLLAMA_API: 'False' ENV: prod OPENAI_API_BASE_URLS: http://litellm:4000/v1 OPENAI_API_KEYS: '' TASK_MODEL_EXTERNAL: gpt-oss-20b WEBUI_AUTH: 'True' WEBUI_NAME: Connor Johnstone AI WEBUI_SECRET_KEY: '' WEBUI_URL: https://ai.rcjohnstone.com image: ghcr.io/open-webui/open-webui:main networks: - llm restart: unless-stopped volumes: - ./data/ollama-webui:/app/backend/data personal_site_backend: environment: SMTP_PASSWORD: '' SMTP_USERNAME: '' image: git.rcjohnstone.com/connor/personal-site/backend:latest networks: - internal ports: - 127.0.0.1:8001:8080 restart: unless-stopped personal_site_frontend: environment: BACKEND_URL: http://personal_site_backend:8080/email image: git.rcjohnstone.com/connor/personal-site/frontend:latest networks: - internal volumes: - ./data/website/dist:/srv/app/dist - ./data/website/static:/srv/app/static prometheus: command: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.path=/prometheus - --storage.tsdb.retention.time=90d - --web.enable-lifecycle extra_hosts: - host.containers.internal:host-gateway image: docker.io/prom/prometheus:latest networks: - internal restart: unless-stopped user: 0:0 volumes: - ./config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - ./data/prometheus:/prometheus prowlarr: environment: PGID: '1000' PUID: '1000' TZ: America/Louisville image: lscr.io/linuxserver/prowlarr:latest networks: - internal restart: unless-stopped volumes: - ./config/prowlarr:/config - /home/connor/downloads:/data - /home/connor/video:/video - /home/connor/audio:/audio - /home/connor/books:/books radarr: environment: PGID: '1000' PUID: '1000' TZ: America/Louisville image: lscr.io/linuxserver/radarr:latest networks: - internal restart: unless-stopped volumes: - ./config/radarr:/config - /home/connor/downloads:/data - /home/connor/video:/video - /home/connor/audio:/audio - /home/connor/books:/books runway-backend: environment: RUNWAY_DATABASE_URL: sqlite:///db/runway.db RUNWAY_SECRET_KEY: '' TZ: America/Louisville image: git.rcjohnstone.com/connor/runway:latest networks: - internal restart: unless-stopped volumes: - ./data/runway/db:/db searxng-core: image: docker.io/searxng/searxng:latest networks: - internal restart: always volumes: - ./config/searxng:/etc/searxng/:Z - core-data:/var/cache/searxng/ searxng-valkey: command: - valkey-server - --save - '30' - '1' - --loglevel - warning image: docker.io/valkey/valkey:9-alpine networks: - internal restart: always volumes: - valkey-data:/data/ sftpgo: environment: SFTPGO_WEBDAVD__BINDINGS__0__PORT: '10080' image: drakkan/sftpgo:latest networks: - internal ports: - 2022:2022 restart: unless-stopped volumes: - /home/connor/video:/srv/sftpgo/data/video - /home/connor/audio:/srv/sftpgo/data/audio - /home/connor/docs:/var/lib/sftpgo - ./data/sftpgo_backups:/srv/sftpgo/backups shanty: environment: SHANTY_FANART_API_KEY: '' SHANTY_LASTFM_API_KEY: '' SHANTY_LASTFM_API_SECRET: '' SHANTY_WEB_BIND: 0.0.0.0 image: git.rcjohnstone.com/connor/shanty:latest networks: - internal restart: unless-stopped volumes: - ./config/shanty:/config - /usr/local/shanty:/data - /home/connor/audio/shanty:/music sonarr: environment: PGID: '1000' PUID: '1000' TZ: America/Louisville image: lscr.io/linuxserver/sonarr:latest networks: - internal restart: unless-stopped volumes: - ./config/sonarr:/config - /home/connor/downloads:/data - /home/connor/video:/video - /home/connor/audio:/audio - /home/connor/books:/books syncthing: image: syncthing/syncthing networks: - internal ports: - 22000:22000/tcp - 22000:22000/udp - 21027:21027/udp restart: unless-stopped volumes: - syncthing-home:/var/syncthing - /home/connor/docs:/var/syncthing/Sync - ./config/syncthing:/var/syncthing/config traggo: environment: TRAGGO_DATABASE_CONNECTION: data/traggo.db TRAGGO_DATABASE_DIALECT: sqlite3 TRAGGO_DEFAULT_USER_NAME: '' TRAGGO_DEFAULT_USER_PASS: '' TRAGGO_LOG_LEVEL: info TRAGGO_PORT: '3030' TZ: America/Louisville image: docker.io/traggo/server:latest networks: - internal restart: unless-stopped volumes: - ./data/traggo:/opt/traggo/data transmission: cap_add: - NET_ADMIN - MKNOD devices: - /dev/net/tun environment: GLOBAL_APPLY_PERMISSIONS: 'false' LOCAL_NETWORK: 192.168.0.0/16 OPENVPN_CONFIG: ca_vancouver OPENVPN_PASSWORD: '' OPENVPN_PROVIDER: PIA OPENVPN_USERNAME: '' PGID: '1000' PUID: '1000' TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: 'true' TRANSMISSION_RPC_PASSWORD: '' TRANSMISSION_RPC_USERNAME: '' TRANSMISSION_WEBUI: combustion image: haugene/transmission-openvpn logging: driver: json-file options: max-size: 10m networks: default: null internal: null ports: - 21028:21028 restart: unless-stopped volumes: - ./config/transmission:/config - /home/connor/downloads:/data viseron: devices: - nvidia.com/gpu=all image: roflcoopter/amd64-cuda-viseron:latest networks: - internal restart: unless-stopped shm_size: 1024mb volumes: - /home/connor/video/viseron/segments:/segments - /home/connor/video/viseron/snapshots:/snapshots - /home/connor/video/viseron/thumbnails:/thumbnails - /home/connor/video/viseron/event_clips:/event_clips - /home/connor/video/viseron/timelapse:/timelapse - ./config/viseron:/config - ./config/viseron-init/10-adduser:/etc/cont-init.d/10-adduser:ro - /etc/localtime:/etc/localtime:ro whisparr: environment: PGID: '1000' PUID: '1000' TZ: America/Louisville WEBUI_PORTS: 6969/tcp image: ghcr.io/hotio/whisparr networks: - internal restart: unless-stopped volumes: - ./config/whisparr:/config - /home/connor/downloads:/data - /home/connor/video:/video - /home/connor/audio:/audio - /home/connor/books:/books volumes: core-data: null model-cache: null syncthing-home: null valkey-data: null EXIT: 0 QA: scratch Caddyfile validation --------------------------------- Command (non-root): caddy validate --config /tmp/opencode/Caddyfile {"level":"info","ts":1788297896.0972424,"msg":"using config from file","file":"/tmp/opencode/Caddyfile"} {"level":"info","ts":1788297896.1206155,"msg":"adapted config to JSON","adapter":"caddyfile"} Error: setting up custom log 'log15': opening log writer using &logging.FileWriter{Filename:"/var/log/caddy/access.log", Mode:0x0, DirMode:"", Roll:(*bool)(nil), RollSizeMB:20, RollInterval:0, RollAtMinutes:[]int(nil), RollAt:[]string(nil), RollCompress:(*bool)(nil), RollCompression:"", RollLocalTime:false, RollKeep:10, RollKeepDays:0, BackupTimeFormat:""}: open /var/log/caddy/access.log: permission denied EXIT: 1 Command (root, because /var/log/caddy is owned by caddy:caddy): sudo caddy validate --config /tmp/opencode/Caddyfile {"level":"info","ts":1788297896.2967246,"msg":"using config from file","file":"/tmp/opencode/Caddyfile"} {"level":"info","ts":1788297896.3153973,"msg":"adapted config to JSON","adapter":"caddyfile"} 2026/09/01 21:24:56.319 INFO http.auto_https enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"} 2026/09/01 21:24:56.319 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0x1e8126d7de00"} 2026/09/01 21:24:56.319 WARN http.auto_https server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server {"server_name": "srv1", "http_port": 80} 2026/09/01 21:24:56.333 INFO tls.cache.maintenance stopped background certificate maintenance {"cache": "0x1e8126d7de00"} 2026/09/01 21:24:56.333 INFO http servers shutting down with eternal grace period Valid configuration EXIT: 0 Command (non-root parse proof): caddy adapt --config /tmp/opencode/Caddyfile {"logging":{"logs":{"default":{"writer":{"output":"stderr"},"encoder":{"format":"console"},"exclude":["http.log.access","http.log.access.log0","http.log.access.log1","http.log.access.log10","http.log.access.log11","http.log.access.log12","http.log.access.log13","http.log.access.log14","http.log.access.log15","http.log.access.log16","http.log.access.log17","http.log.access.log18","http.log.access.log19","http.log.access.log2","http.log.access.log20","http.log.access.log21","http.log.access.log22","http.log.access.log23","http.log.access.log24","http.log.access.log25","http.log.access.log26","http.log.access.log27","http.log.access.log28","http.log.access.log29","http.log.access.log3","http.log.access.log30","http.log.access.log31","http.log.access.log32","http.log.access.log4","http.log.access.log5","http.log.access.log6","http.log.access.log7","http.log.access.log8","http.log.access.log9"]},"log0":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log0"]},"log1":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log1"]},"log10":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log10"]},"log11":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log11"]},"log12":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log12"]},"log13":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log13"]},"log14":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log14"]},"log15":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log15"]},"log16":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log16"]},"log17":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log17"]},"log18":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log18"]},"log19":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log19"]},"log2":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log2"]},"log20":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log20"]},"log21":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log21"]},"log22":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log22"]},"log23":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log23"]},"log24":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log24"]},"log25":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log25"]},"log26":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log26"]},"log27":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log27"]},"log28":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log28"]},"log29":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log29"]},"log3":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log3"]},"log30":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log30"]},"log31":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log31"]},"log32":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log32"]},"log4":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log4"]},"log5":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log5"]},"log6":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log6"]},"log7":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log7"]},"log8":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log8"]},"log9":{"writer":{"filename":"/var/log/caddy/access.log","output":"file","roll_keep":10,"roll_size_mb":20},"encoder":{"fields":{"request\u003euri":{"actions":[{"parameter":"p","type":"replace","value":"REDACTED"},{"parameter":"t","type":"replace","value":"REDACTED"},{"parameter":"s","type":"replace","value":"REDACTED"},{"parameter":"password","type":"replace","value":"REDACTED"},{"parameter":"token","type":"replace","value":"REDACTED"},{"parameter":"access_token","type":"replace","value":"REDACTED"},{"parameter":"apikey","type":"replace","value":"REDACTED"},{"parameter":"api_key","type":"replace","value":"REDACTED"}],"filter":"query"}},"format":"filter","wrap":{"format":"json"}},"include":["http.log.access.log9"]}}},"apps":{"http":{"servers":{"srv0":{"listen":[":443"],"routes":[{"match":[{"host":["lazylibrarian.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"lazylibrarian:5299"}]}]}]}],"terminal":true},{"match":[{"host":["transmission.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"transmission:9091"}]}]}]}],"terminal":true},{"match":[{"host":["jellyseerr.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]},{"handler":"reverse_proxy","upstreams":[{"dial":"jellyseerr:5055"}]}]}]}],"terminal":true},{"match":[{"host":["llama-swap.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"flush_interval":-1,"handler":"reverse_proxy","transport":{"dial_timeout":10000000000,"protocol":"http","read_timeout":900000000000,"write_timeout":900000000000},"upstreams":[{"dial":"llama-swap:8080"}]}]}]}],"terminal":true},{"match":[{"host":["jellyfin.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"jellyfin:8096"}]}]}]}],"terminal":true},{"match":[{"host":["prowlarr.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"prowlarr:9696"}]}]}]}],"terminal":true},{"match":[{"host":["whisparr.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"whisparr:6969"}]}]}]}],"terminal":true},{"match":[{"host":["backend.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"personal_site_backend:8080"}]}]}]}],"terminal":true},{"match":[{"host":["grafana.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"grafana:3000"}]}]}]}],"terminal":true},{"match":[{"host":["runway.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]}]},{"group":"group19","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"runway-backend:3000"}]}]}]}],"match":[{"path":["/api","/api/*"]}]},{"group":"group19","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"vars","root":"/srv/runway/dist"}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html"]}}]},{"handle":[{"handler":"file_server","hide":["/tmp/opencode/Caddyfile"]}]}]}]}]}],"terminal":true},{"match":[{"host":["baikal.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"baikal:80"}]}]}]}],"terminal":true},{"match":[{"host":["shanty.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"group":"group22","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"shanty:8085"}]}]}]}],"match":[{"path":["/rest/*"]}]},{"group":"group22","handle":[{"handler":"subroute","routes":[{"handle":[{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]},{"handler":"reverse_proxy","upstreams":[{"dial":"shanty:8085"}]}]}]}]}]}],"terminal":true},{"match":[{"host":["flexio.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"group":"group24","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"flexio-api:8080"}]}]}]}],"match":[{"path":["/api/*"]}]},{"group":"group24","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"vars","root":"/srv/flexio"}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["gzip","zstd"]},{"handler":"file_server","hide":["/tmp/opencode/Caddyfile"]}]}]}]}]}],"terminal":true},{"match":[{"host":["radarr.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"radarr:7878"}]}]}]}],"terminal":true},{"match":[{"host":["sonarr.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"sonarr:8989"}]}]}]}],"terminal":true},{"match":[{"host":["lidarr.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"lidarr:8686"}]}]}]}],"terminal":true},{"match":[{"host":["search.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"searxng-core:8080"}]}]}]}],"terminal":true},{"match":[{"host":["camera.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]},{"handler":"reverse_proxy","upstreams":[{"dial":"viseron:8888"}]}]}]}],"terminal":true},{"match":[{"host":["photo.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"immich:2283"}]}]}]}],"terminal":true},{"match":[{"host":["files.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"sftpgo:10080"}]}]}]}],"terminal":true},{"match":[{"host":["auth.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"authelia:9091"}]}]}]}],"terminal":true},{"match":[{"host":["ntfy.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"ntfy:80"}]}]}]}],"terminal":true},{"match":[{"host":["time.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"group":"group35","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"traggo:3030"}]}]}]}],"match":[{"path":["/graphql"],"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16"]}}]},{"group":"group35","handle":[{"handler":"subroute","routes":[{"handle":[{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]},{"handler":"reverse_proxy","upstreams":[{"dial":"traggo:3030"}]}]}]}]}]}],"terminal":true},{"match":[{"host":["sftp.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]},{"handler":"reverse_proxy","upstreams":[{"dial":"sftpgo:8080"}]}]}]}],"terminal":true},{"match":[{"host":["sync.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"syncthing:8384"}]}]}]}],"terminal":true},{"match":[{"host":["news.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"group":"group39","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"news-backend:3000"}]}]}]}],"match":[{"path":["/api","/api/*"]}]},{"group":"group39","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"vars","root":"/srv/news/dist"}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html"]}}]},{"handle":[{"handler":"file_server","hide":["/tmp/opencode/Caddyfile"]}]}]}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]}]}],"terminal":true},{"match":[{"host":["git.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"gitea:3000"}]}]}]}],"terminal":true},{"match":[{"host":["llm.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}}]},{"handle":[{"abort":true,"handler":"static_response"}],"match":[{"not":[{"remote_ip":{"ranges":["10.0.0.0/24","10.0.1.0/24","10.89.0.0/16","127.0.0.1/32"]}}]}]},{"handle":[{"flush_interval":-1,"handler":"reverse_proxy","transport":{"dial_timeout":10000000000,"protocol":"http","read_timeout":900000000000,"write_timeout":900000000000},"upstreams":[{"dial":"litellm:4000"}]}]}]}],"terminal":true},{"match":[{"host":["bw.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"reverse_proxy","upstreams":[{"dial":"bitwarden:80"}]}]}]}],"terminal":true},{"match":[{"host":["md.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]},{"handler":"reverse_proxy","upstreams":[{"dial":"hedgedoc:3000"}]}]}]}],"terminal":true},{"match":[{"host":["ai.rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handle_response":[{"match":{"status_code":[2]},"routes":[{"handle":[{"handler":"vars"}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Email"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Email":["{http.reverse_proxy.header.Remote-Email}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Email}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Groups"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Groups":["{http.reverse_proxy.header.Remote-Groups}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Groups}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-Name"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-Name":["{http.reverse_proxy.header.Remote-Name}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-Name}":[""]}}]}]},{"handle":[{"handler":"headers","request":{"delete":["Remote-User"]}}]},{"handle":[{"handler":"headers","request":{"set":{"Remote-User":["{http.reverse_proxy.header.Remote-User}"]}}}],"match":[{"not":[{"vars":{"{http.reverse_proxy.header.Remote-User}":[""]}}]}]}]}],"handler":"reverse_proxy","headers":{"request":{"set":{"X-Forwarded-Method":["{http.request.method}"],"X-Forwarded-Uri":["{http.request.uri}"]}}},"rewrite":{"method":"GET","uri":"/api/authz/forward-auth"},"upstreams":[{"dial":"authelia:9091"}]},{"handler":"reverse_proxy","upstreams":[{"dial":"ollama-webui:8080"}]}]}]}],"terminal":true},{"match":[{"host":["rcjohnstone.com"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"vars","root":"/srv/www"},{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"file_server","hide":["/tmp/opencode/Caddyfile"]}]}]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"vars","root":"/srv/www"},{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"file_server","hide":["/tmp/opencode/Caddyfile"]}]}]}],"terminal":true}],"tls_connection_policies":[{"default_sni":"rconnorjohnstone.com"}],"logs":{"default_logger_name":"log32","logger_names":{"ai.rcjohnstone.com":["log14"],"auth.rcjohnstone.com":["log0"],"backend.rcjohnstone.com":["log2"],"baikal.rcjohnstone.com":["log10"],"bw.rcjohnstone.com":["log3"],"camera.rcjohnstone.com":["log31"],"files.rcjohnstone.com":["log16"],"flexio.rcjohnstone.com":["log17"],"git.rcjohnstone.com":["log7"],"grafana.rcjohnstone.com":["log29"],"jellyfin.rcjohnstone.com":["log6"],"jellyseerr.rcjohnstone.com":["log8"],"lazylibrarian.rcjohnstone.com":["log24"],"lidarr.rcjohnstone.com":["log22"],"llama-swap.rcjohnstone.com":["log28"],"llm.rcjohnstone.com":["log27"],"md.rcjohnstone.com":["log11"],"news.rcjohnstone.com":["log30"],"ntfy.rcjohnstone.com":["log4"],"photo.rcjohnstone.com":["log5"],"prowlarr.rcjohnstone.com":["log19"],"radarr.rcjohnstone.com":["log20"],"rcjohnstone.com":["log1"],"runway.rcjohnstone.com":["log9"],"search.rcjohnstone.com":["log26"],"sftp.rcjohnstone.com":["log15"],"shanty.rcjohnstone.com":["log13"],"sonarr.rcjohnstone.com":["log21"],"sync.rcjohnstone.com":["log25"],"time.rcjohnstone.com":["log12"],"transmission.rcjohnstone.com":["log18"],"whisparr.rcjohnstone.com":["log23"]}}},"srv1":{"listen":[":80"],"routes":[{"handle":[{"handler":"vars","root":"/srv/www"},{"handler":"headers","response":{"require":{"headers":{"Referrer-Policy":null,"Strict-Transport-Security":null,"X-Content-Type-Options":null,"X-Frame-Options":null}},"set":{"Referrer-Policy":["strict-origin-when-cross-origin"],"Strict-Transport-Security":["max-age=31536000; includeSubDomains"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"]}}},{"handler":"file_server","hide":["/tmp/opencode/Caddyfile"]}]}],"logs":{"default_logger_name":"log32"}},"srv2":{"listen":[":9010"],"routes":[{"match":[{"path":["/metrics"]}],"handle":[{"handler":"metrics"}]}]}},"metrics":{}},"tls":{"automation":{"policies":[{"subjects":["lazylibrarian.rcjohnstone.com","llama-swap.rcjohnstone.com","grafana.rcjohnstone.com","news.rcjohnstone.com","llm.rcjohnstone.com"],"issuers":[{"module":"internal"}],"key_type":"rsa4096"},{"issuers":[{"email":"c@rcjohnstone.com","module":"acme"},{"ca":"https://acme.zerossl.com/v2/DV90","email":"c@rcjohnstone.com","module":"acme"}],"key_type":"rsa4096"}]}}}} EXIT: 0 Protected files: AFTER stats ----------------------------- File: /home/connor/compose.yml Size: 45902 Blocks: 96 IO Block: 4096 regular file Device: 253,0 Inode: 3456331 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 1000/ connor) Access: 2026-09-01 13:31:00.127897473 -0400 Modify: 2026-09-01 13:31:00.123329809 -0400 Change: 2026-09-01 13:31:00.123329809 -0400 Birth: 2026-09-01 09:59:16.224683093 -0400 File: /home/connor/Caddyfile Size: 15394 Blocks: 32 IO Block: 4096 regular file Device: 253,0 Inode: 3456314 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 1000/ connor) Access: 2026-09-01 09:51:56.598569747 -0400 Modify: 2026-08-28 15:51:59.475726235 -0400 Change: 2026-08-28 15:51:59.475726235 -0400 Birth: 2026-08-26 22:10:30.165466997 -0400 File: /home/connor/data/ntfy/etc/server.yml Size: 506 Blocks: 8 IO Block: 4096 regular file Device: 253,0 Inode: 7224774 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 0/ root) Access: 2026-09-01 17:21:22.759598097 -0400 Modify: 2026-08-20 17:25:40.623346035 -0400 Change: 2026-08-20 17:25:40.623346035 -0400 Birth: 2026-02-27 16:47:40.215201274 -0500 File: /home/connor/config/prometheus/prometheus.yml Size: 877 Blocks: 8 IO Block: 4096 regular file Device: 253,0 Inode: 10486193 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ connor) Gid: ( 1000/ connor) Access: 2026-09-01 17:21:22.714596100 -0400 Modify: 2026-08-25 22:21:00.811095356 -0400 Change: 2026-08-25 22:21:00.811095356 -0400 Birth: 2026-08-25 22:21:00.810402344 -0400