Having trouble using paths to access my services with Caddy

1. The problem I’m having:

I am having trouble getting Caddy to behave the way I want it to for my homelab. For some context, I have a PC running Proxmox, and on that I have an Ubuntu Server LXC container and inside of that I have Docker installed. For the example in this post, I am using Docker Compose to run three containers: Caddy, Homarr, and Jellyfin. I have Tailscale installed directly in Ubuntu, as that’s the way I want to access my services (I am using Tailscale with Caddy to be able to access my homelab services while having HTTPS in the browser).

What I’m trying to do:

  • Typing arrs-lxc.cheetoh-komodo.ts.net (tailnet address of my LXC) in the browser leads to arrs-lxc.cheetoh-komodo.ts.net/auth/login, and my Homarr dashboard displays properly, saying the connection is secure.
  • However, typing arrs-lxc.cheetoh-komodo.ts.net/jellyfin leads to https://arrs-lxc.cheetoh-komodo.ts.net/web and I get a black screen saying “404 | This page could not be found”

If it helps, here are the url’s I get from accessing Homarr and Jellyfin using their private ip addresses:

  • Homarr: http://192.168.7.252:7575/auth/login
  • Jellyfin: http://192.168.7.252:8096/web/#/wizardstart.html

The goal is to access my services in this way:
arrs-lxc.cheetoh-komodo.ts.net (brings up the Homarr dashboard)
arrs-lxc.cheetoh-komodo.ts.net/jellyfin (access jellyfin web ui)
arrs-lxc.cheetoh-komodo.ts.net/sonarr (access sonarr web ui)
etc.

I have looked at other Caddy forum posts but I have not been able to get it working.

Thank you in advance for any help :grinning_face_with_smiling_eyes:

Trying to access Homarr (top image) and Jellyfin (bottom image):

curl -vL for Homarr (https://arrs-lxc.cheetoh-komodo.ts.net):

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host arrs-lxc.cheetoh-komodo.ts.net:443 was resolved.
* IPv6: (none)
* IPv4: 100.80.157.55
*   Trying 100.80.157.55:443...
* Connected to arrs-lxc.cheetoh-komodo.ts.net (100.80.157.55) port 443
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2074 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [78 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=arrs-lxc.cheetoh-komodo.ts.net
*  start date: Oct 13 22:41:13 2025 GMT
*  expire date: Jan 11 22:41:12 2026 GMT
*  subjectAltName: host "arrs-lxc.cheetoh-komodo.ts.net" matched cert's "arrs-lxc.cheetoh-komodo.ts.net"
*  issuer: C=US; O=Let's Encrypt; CN=E8
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://arrs-lxc.cheetoh-komodo.ts.net/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: arrs-lxc.cheetoh-komodo.ts.net]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.5.0]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: arrs-lxc.cheetoh-komodo.ts.net
> User-Agent: curl/8.5.0
> Accept: */*
> 
{ [5 bytes data]
< HTTP/2 200 
< alt-svc: h3=":443"; ma=2592000
< cache-control: private, no-cache, no-store, max-age=0, must-revalidate
< content-security-policy: default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; frame-ancestors *; frame-src *; form-action 'self'; img-src * data:; font-src * data:; media-src * data: blob:;
< content-type: text/html; charset=utf-8
< date: Tue, 14 Oct 2025 07:25:59 GMT
< link: </_next/static/media/e4af272ccee01ff0-s.p.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2", </_next/static/css/8b08ef1806374416.css>; rel=preload; as="style", </_next/static/css/911381571dda96a2.css>; rel=preload; as="style", </_next/static/css/f39bbcca36ea4634.css>; rel=preload; as="style", </_next/static/css/9dd5cec527b057a3.css>; rel=preload; as="style", </_next/static/css/23a2a6a2088b4525.css>; rel=preload; as="style", </_next/static/css/56b9c1f313681412.css>; rel=preload; as="style", </_next/static/css/ae110469aab9e883.css>; rel=preload; as="style", </_next/static/css/b6d4b690c76388c2.css>; rel=preload; as="style"
< server: nginx/1.28.0
< set-cookie: homarr.locale=en; Path=/; Expires=Wed, 14 Oct 2026 07:25:59 GMT; Max-Age=31536000; SameSite=lax
< vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
< via: 1.1 Caddy
< x-middleware-rewrite: /en
< x-powered-by: Next.js
< 
{ [5 bytes data]
100  162k    0  162k    0     0   939k      0 --:--:-- --:--:-- --:--:--  943k
* Connection #0 to host arrs-lxc.cheetoh-komodo.ts.net left intact

curl -vL for Jellyfin (https://arrs-lxc.cheetoh-komodo.ts.net/jellyfin):

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host arrs-lxc.cheetoh-komodo.ts.net:443 was resolved.
* IPv6: (none)
* IPv4: 100.80.157.55
*   Trying 100.80.157.55:443...
* Connected to arrs-lxc.cheetoh-komodo.ts.net (100.80.157.55) port 443
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2074 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [79 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=arrs-lxc.cheetoh-komodo.ts.net
*  start date: Oct 13 22:41:13 2025 GMT
*  expire date: Jan 11 22:41:12 2026 GMT
*  subjectAltName: host "arrs-lxc.cheetoh-komodo.ts.net" matched cert's "arrs-lxc.cheetoh-komodo.ts.net"
*  issuer: C=US; O=Let's Encrypt; CN=E8
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://arrs-lxc.cheetoh-komodo.ts.net/jellyfin
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: arrs-lxc.cheetoh-komodo.ts.net]
* [HTTP/2] [1] [:path: /jellyfin]
* [HTTP/2] [1] [user-agent: curl/8.5.0]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET /jellyfin HTTP/2
> Host: arrs-lxc.cheetoh-komodo.ts.net
> User-Agent: curl/8.5.0
> Accept: */*
> 
{ [5 bytes data]
< HTTP/2 302 
< alt-svc: h3=":443"; ma=2592000
< date: Tue, 14 Oct 2025 07:29:55 GMT
< location: web/
< server: Kestrel
< via: 1.1 Caddy
< content-length: 0
< 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host arrs-lxc.cheetoh-komodo.ts.net left intact
* Issue another request to this URL: 'https://arrs-lxc.cheetoh-komodo.ts.net/web/'
* Found bundle for host: 0x5ac4c1283b60 [can multiplex]
* Re-using existing connection with host arrs-lxc.cheetoh-komodo.ts.net
* [HTTP/2] [3] OPENED stream for https://arrs-lxc.cheetoh-komodo.ts.net/web/
* [HTTP/2] [3] [:method: GET]
* [HTTP/2] [3] [:scheme: https]
* [HTTP/2] [3] [:authority: arrs-lxc.cheetoh-komodo.ts.net]
* [HTTP/2] [3] [:path: /web/]
* [HTTP/2] [3] [user-agent: curl/8.5.0]
* [HTTP/2] [3] [accept: */*]
} [5 bytes data]
> GET /web/ HTTP/2
> Host: arrs-lxc.cheetoh-komodo.ts.net
> User-Agent: curl/8.5.0
> Accept: */*
> 
{ [5 bytes data]
< HTTP/2 308 
< alt-svc: h3=":443"; ma=2592000
< date: Tue, 14 Oct 2025 07:29:56 GMT
< location: /web
< refresh: 0;url=/web
< server: nginx/1.28.0
< via: 1.1 Caddy
< 
* Ignoring the response-body
100     4    0     4    0     0     93      0 --:--:-- --:--:-- --:--:--    93
* Connection #0 to host arrs-lxc.cheetoh-komodo.ts.net left intact
* Issue another request to this URL: 'https://arrs-lxc.cheetoh-komodo.ts.net/web'
* Found bundle for host: 0x5ac4c1283b60 [can multiplex]
* Re-using existing connection with host arrs-lxc.cheetoh-komodo.ts.net
* [HTTP/2] [5] OPENED stream for https://arrs-lxc.cheetoh-komodo.ts.net/web
* [HTTP/2] [5] [:method: GET]
* [HTTP/2] [5] [:scheme: https]
* [HTTP/2] [5] [:authority: arrs-lxc.cheetoh-komodo.ts.net]
* [HTTP/2] [5] [:path: /web]
* [HTTP/2] [5] [user-agent: curl/8.5.0]
* [HTTP/2] [5] [accept: */*]
} [5 bytes data]
> GET /web HTTP/2
> Host: arrs-lxc.cheetoh-komodo.ts.net
> User-Agent: curl/8.5.0
> Accept: */*
> 
{ [5 bytes data]
< HTTP/2 404 
< alt-svc: h3=":443"; ma=2592000
< cache-control: private, no-cache, no-store, max-age=0, must-revalidate
< content-security-policy: default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; frame-ancestors *; frame-src *; form-action 'self'; img-src * data:; font-src * data:; media-src * data: blob:;
< content-type: text/html; charset=utf-8
< date: Tue, 14 Oct 2025 07:29:56 GMT
< etag: "2o314feals4b7"
< server: nginx/1.28.0
< set-cookie: homarr.locale=en; Path=/; Expires=Wed, 14 Oct 2026 07:29:56 GMT; Max-Age=31536000; SameSite=lax
< vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
< via: 1.1 Caddy
< x-middleware-rewrite: /en/web
< x-nextjs-cache: HIT
< x-nextjs-prerender: 1
< x-nextjs-prerender: 1
< x-nextjs-stale-time: 300
< x-powered-by: Next.js
< 
{ [5587 bytes data]
100  5587    0  5587    0     0  89434      0 --:--:-- --:--:-- --:--:-- 89434
* Connection #0 to host arrs-lxc.cheetoh-komodo.ts.net left intact

2. Error messages and/or full log output:

Docker logs for Caddy:

INF ts=1760427360.9399948 msg=maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined

INF ts=1760427360.940232 msg=GOMEMLIMIT is updated package=github.com/KimMachineGun/automemlimit/memlimit GOMEMLIMIT=15003773337 previous=9223372036854776000

INF ts=1760427360.9402657 msg=using config from file file=/etc/caddy/Caddyfile

INF ts=1760427360.941334 msg=adapted config to JSON adapter=caddyfile

INF ts=1760427360.9423096 logger=admin msg=admin endpoint started address=localhost:2019 enforce_origin=false origins=["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]

INF ts=1760427360.9425063 logger=tls.cache.maintenance msg=started background certificate maintenance cache=0xc0003e2e00

INF ts=1760427360.9425178 logger=http.auto_https msg=server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS server_name=srv0 https_port=443

INF ts=1760427360.9425752 logger=http.auto_https msg=enabling automatic HTTP->HTTPS redirects server_name=srv0

DBG ts=1760427360.942639 logger=http.auto_https msg=adjusted config tls={"automation":{"policies":[{"subjects":["arrs-lxc.cheetoh-komodo.ts.net"]},{}]}} http={"servers":{"remaining_auto_https_redirects":{"listen":[":80"],"routes":[{},{}]},"srv0":{"listen":[":443"],"routes":[{"handle":[{"handler":"subroute","routes":[{"group":"group2","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite","strip_path_prefix":"/jellyfin"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"jellyfin:8096"}]}]}]}],"match":[{"path":["/jellyfin*"]}]},{"group":"group2","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"homarr:7575"}]}]}]}]}]}],"terminal":true}],"tls_connection_policies":[{}],"automatic_https":{}}}}

DBG ts=1760427360.943264 logger=http msg=starting server loop address=[::]:443 tls=true http3=false

INF ts=1760427360.943398 logger=http msg=enabling HTTP/3 listener addr=:443

INF ts=1760427360.9436002 msg=failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.

INF ts=1760427360.9439232 logger=http.log msg=server running name=srv0 protocols=["h1","h2","h3"]

DBG ts=1760427360.9444013 logger=http msg=starting server loop address=[::]:80 tls=false http3=false

WRN ts=1760427360.9445477 logger=http msg=HTTP/2 skipped because it requires TLS network=tcp addr=:80

WRN ts=1760427360.9446526 logger=http msg=HTTP/3 skipped because it requires TLS network=tcp addr=:80

INF ts=1760427360.9447098 logger=http.log msg=server running name=remaining_auto_https_redirects protocols=["h1","h2","h3"]

DBG ts=1760427360.9448068 logger=events msg=event name=started id=bafb41f6-8a50-4f4b-8581-59d4242a6704 origin= data=null

ERR ts=1760427360.9448915 msg=unable to autosave config file=/config/caddy/autosave.json error=open /config/caddy/autosave.json: permission denied

INF ts=1760427360.9449298 msg=serving initial configuration

WRN ts=1760427360.9449186 logger=tls msg=unable to get instance ID; storage clean stamps will be incomplete error=open /data/caddy/instance.uuid: permission denied

ERR ts=1760427360.945076 logger=tls msg=could not clean default/global storage error=unable to acquire storage_clean lock: creating lock file: open /data/caddy/locks/storage_clean.lock: permission denied

INF ts=1760427360.9451687 logger=tls msg=finished cleaning storage units

DBG ts=1760427376.072032 logger=events msg=event name=tls_get_certificate id=14df4b9b-63c6-4766-a81e-b003a808ab7f origin=tls data={"client_hello":{"CipherSuites":[4865,4867,4866,49195,49199,52393,52392,49196,49200,49162,49161,49171,49172,156,157,47,53],"ServerName":"arrs-lxc.cheetoh-komodo.ts.net","SupportedCurves":[4588,29,23,24,25,256,257],"SupportedPoints":"AA==","SignatureSchemes":[1027,1283,1539,2052,2053,2054,1025,1281,1537,515,513],"SupportedProtos":["h2","http/1.1"],"SupportedVersions":[772,771],"RemoteAddr":{"IP":"100.70.251.50","Port":44138,"Zone":""},"LocalAddr":{"IP":"172.18.0.4","Port":443,"Zone":""}}}

DBG ts=1760427376.0721753 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=arrs-lxc.cheetoh-komodo.ts.net

DBG ts=1760427376.0721815 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.cheetoh-komodo.ts.net

DBG ts=1760427376.0721848 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.ts.net

DBG ts=1760427376.0721877 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.net

DBG ts=1760427376.0721905 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.*

DBG ts=1760427376.075441 logger=tls.handshake msg=using externally-managed certificate remote_ip=100.70.251.50 remote_port=44138 sni=arrs-lxc.cheetoh-komodo.ts.net names=["arrs-lxc.cheetoh-komodo.ts.net"] expiration=1768171273

DBG ts=1760427376.0850456 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427376.0871305 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.002017185 request={"remote_ip":"100.70.251.50","remote_port":"44152","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Sec-Fetch-Mode":["websocket"],"Cache-Control":["no-cache"],"Cookie":["REDACTED"],"Accept-Language":["en-US,en;q=0.5"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Upgrade":["websocket"],"Via":["1.1 Caddy"],"Sec-WebSocket-Version":["13"],"X-Forwarded-For":["100.70.251.50"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Pragma":["no-cache"],"Accept":["*/*"],"Sec-WebSocket-Key":["WCIGC3O2dTMP0OR/s2mLZw=="],"X-Forwarded-Proto":["https"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Sec-Fetch-Dest":["empty"],"Connection":["Upgrade"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Fetch-Site":["same-origin"],"Sec-WebSocket-Extensions":["permessage-deflate"]},"tls":{"resumed":true,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:16 GMT"],"Connection":["upgrade"],"Upgrade":["websocket"],"Sec-Websocket-Accept":["73BWJyWeox7JQNdkLJp24h1jAIE="]} status=101

DBG ts=1760427376.087168 logger=http.handlers.reverse_proxy msg=upgrading connection upstream=homarr:7575 duration=0.002017185 request={"remote_ip":"100.70.251.50","remote_port":"44152","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Sec-Fetch-Mode":["websocket"],"Cache-Control":["no-cache"],"Cookie":["REDACTED"],"Accept-Language":["en-US,en;q=0.5"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Upgrade":["websocket"],"Via":["1.1 Caddy"],"Sec-WebSocket-Version":["13"],"X-Forwarded-For":["100.70.251.50"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Pragma":["no-cache"],"Accept":["*/*"],"Sec-WebSocket-Key":["WCIGC3O2dTMP0OR/s2mLZw=="],"X-Forwarded-Proto":["https"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Sec-Fetch-Dest":["empty"],"Connection":["Upgrade"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Fetch-Site":["same-origin"],"Sec-WebSocket-Extensions":["permessage-deflate"]},"tls":{"resumed":true,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} http_version=1

DBG ts=1760427383.2270064 logger=events msg=event name=tls_get_certificate id=3ff3c7e0-7ae4-4077-8542-3b7260701523 origin=tls data={"client_hello":{"CipherSuites":[4865,4867,4866,49195,49199,52393,52392,49196,49200,49162,49161,49171,49172,156,157,47,53],"ServerName":"arrs-lxc.cheetoh-komodo.ts.net","SupportedCurves":[4588,29,23,24,25,256,257],"SupportedPoints":"AA==","SignatureSchemes":[1027,1283,1539,2052,2053,2054,1025,1281,1537,515,513],"SupportedProtos":["h2","http/1.1"],"SupportedVersions":[772,771],"RemoteAddr":{"IP":"100.70.251.50","Port":46384,"Zone":""},"LocalAddr":{"IP":"172.18.0.4","Port":443,"Zone":""}}}

DBG ts=1760427383.2270584 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=arrs-lxc.cheetoh-komodo.ts.net

DBG ts=1760427383.227064 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.cheetoh-komodo.ts.net

DBG ts=1760427383.227067 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.ts.net

DBG ts=1760427383.2270696 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.net

DBG ts=1760427383.2270725 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.*

DBG ts=1760427383.2299848 logger=tls.handshake msg=using externally-managed certificate remote_ip=100.70.251.50 remote_port=46384 sni=arrs-lxc.cheetoh-komodo.ts.net names=["arrs-lxc.cheetoh-komodo.ts.net"] expiration=1768171273

DBG ts=1760427383.2323925 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427383.7427864 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.510343017 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/","headers":{"Sec-Fetch-User":["?1"],"Accept-Encoding":["gzip, deflate, br, zstd"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Via":["2.0 Caddy"],"Sec-Gpc":["1"],"Cookie":["REDACTED"],"Priority":["u=0, i"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Upgrade-Insecure-Requests":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"X-Forwarded-For":["100.70.251.50"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Site":["none"],"Accept-Language":["en-US,en;q=0.5"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Vary":["rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding"],"X-Powered-By":["Next.js"],"Content-Encoding":["gzip"],"Connection":["keep-alive"],"Link":["</_next/static/media/e4af272ccee01ff0-s.p.woff2>; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/woff2\", </_next/static/css/8b08ef1806374416.css>; rel=preload; as=\"style\", </_next/static/css/911381571dda96a2.css>; rel=preload; as=\"style\", </_next/static/css/f39bbcca36ea4634.css>; rel=preload; as=\"style\", </_next/static/css/9dd5cec527b057a3.css>; rel=preload; as=\"style\", </_next/static/css/23a2a6a2088b4525.css>; rel=preload; as=\"style\", </_next/static/css/56b9c1f313681412.css>; rel=preload; as=\"style\", </_next/static/css/ae110469aab9e883.css>; rel=preload; as=\"style\", </_next/static/css/b6d4b690c76388c2.css>; rel=preload; as=\"style\""],"Cache-Control":["private, no-cache, no-store, max-age=0, must-revalidate"],"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:23 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Security-Policy":["default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; frame-ancestors *; frame-src *; form-action 'self'; img-src * data:; font-src * data:; media-src * data: blob:;"],"X-Middleware-Rewrite":["/en"]} status=200

DBG ts=1760427384.1205447 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427384.124935 logger=events msg=event name=tls_get_certificate id=40a1651d-d792-4f55-ace1-bcc69a47bb71 origin=tls data={"client_hello":{"CipherSuites":[4865,4867,4866,49195,49199,52393,52392,49196,49200,49162,49161,49171,49172,156,157,47,53],"ServerName":"arrs-lxc.cheetoh-komodo.ts.net","SupportedCurves":[29,23,24,25,256,257],"SupportedPoints":"AA==","SignatureSchemes":[1027,1283,1539,2052,2053,2054,1025,1281,1537,515,513],"SupportedProtos":["http/1.1"],"SupportedVersions":[772,771],"RemoteAddr":{"IP":"100.70.251.50","Port":46394,"Zone":""},"LocalAddr":{"IP":"172.18.0.4","Port":443,"Zone":""}}}

DBG ts=1760427384.1249764 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=arrs-lxc.cheetoh-komodo.ts.net

DBG ts=1760427384.1249871 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.cheetoh-komodo.ts.net

DBG ts=1760427384.1249905 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.ts.net

DBG ts=1760427384.124993 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.net

DBG ts=1760427384.124996 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.*

DBG ts=1760427384.125964 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.005359663 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/logo/logo.png","headers":{"Cookie":["REDACTED"],"Sec-Fetch-Site":["same-origin"],"X-Forwarded-For":["100.70.251.50"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Sec-Gpc":["1"],"Te":["trailers"],"Sec-Fetch-Mode":["no-cors"],"Via":["2.0 Caddy"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Accept-Language":["en-US,en;q=0.5"],"Sec-Fetch-Dest":["image"],"X-Forwarded-Proto":["https"],"Referer":["https://arrs-lxc.cheetoh-komodo.ts.net/"],"Accept":["image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Priority":["u=6"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:24 GMT"],"Content-Length":["3408"],"Connection":["keep-alive"],"Accept-Ranges":["bytes"],"Last-Modified":["Fri, 10 Oct 2025 19:15:54 GMT"],"Etag":["W/\"d50-199cf8d1610\""],"Content-Type":["image/png"],"Content-Security-Policy":["default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; frame-ancestors *; frame-src *; form-action 'self'; img-src * data:; font-src * data:; media-src * data: blob:;"],"Cache-Control":["public, max-age=0"]} status=200

DBG ts=1760427384.1279807 logger=tls.handshake msg=using externally-managed certificate remote_ip=100.70.251.50 remote_port=46394 sni=arrs-lxc.cheetoh-komodo.ts.net names=["arrs-lxc.cheetoh-komodo.ts.net"] expiration=1768171273

DBG ts=1760427384.1302223 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427384.1316404 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.001372173 request={"remote_ip":"100.70.251.50","remote_port":"46394","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Sec-Fetch-Site":["same-origin"],"Sec-WebSocket-Version":["13"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Mode":["websocket"],"Accept":["*/*"],"Sec-Fetch-Dest":["empty"],"Pragma":["no-cache"],"Sec-WebSocket-Key":["MULe7kH7zAz4Ge3jM9NTlg=="],"Sec-Gpc":["1"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Connection":["Upgrade"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"X-Forwarded-For":["100.70.251.50"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Cookie":["REDACTED"],"Accept-Language":["en-US,en;q=0.5"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:24 GMT"],"Connection":["upgrade"],"Upgrade":["websocket"],"Sec-Websocket-Accept":["nOoNkKjf72LPYCyE+DtAbBNoSFQ="]} status=101

DBG ts=1760427384.1316657 logger=http.handlers.reverse_proxy msg=upgrading connection upstream=homarr:7575 duration=0.001372173 request={"remote_ip":"100.70.251.50","remote_port":"46394","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Sec-Fetch-Site":["same-origin"],"Sec-WebSocket-Version":["13"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Mode":["websocket"],"Accept":["*/*"],"Sec-Fetch-Dest":["empty"],"Pragma":["no-cache"],"Sec-WebSocket-Key":["MULe7kH7zAz4Ge3jM9NTlg=="],"Sec-Gpc":["1"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Connection":["Upgrade"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"X-Forwarded-For":["100.70.251.50"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Cookie":["REDACTED"],"Accept-Language":["en-US,en;q=0.5"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} http_version=1

DBG ts=1760427384.1764805 logger=http.handlers.reverse_proxy msg=streaming error upstream=homarr:7575 duration=0.001372173 request={"remote_ip":"100.70.251.50","remote_port":"46394","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Sec-Fetch-Site":["same-origin"],"Sec-WebSocket-Version":["13"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Mode":["websocket"],"Accept":["*/*"],"Sec-Fetch-Dest":["empty"],"Pragma":["no-cache"],"Sec-WebSocket-Key":["MULe7kH7zAz4Ge3jM9NTlg=="],"Sec-Gpc":["1"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Connection":["Upgrade"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"X-Forwarded-For":["100.70.251.50"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Cookie":["REDACTED"],"Accept-Language":["en-US,en;q=0.5"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}}

DBG ts=1760427384.1765847 logger=http.handlers.reverse_proxy msg=connection closed upstream=homarr:7575 duration=0.044848051 request={"remote_ip":"100.70.251.50","remote_port":"46394","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Sec-Fetch-Site":["same-origin"],"Sec-WebSocket-Version":["13"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Mode":["websocket"],"Accept":["*/*"],"Sec-Fetch-Dest":["empty"],"Pragma":["no-cache"],"Sec-WebSocket-Key":["MULe7kH7zAz4Ge3jM9NTlg=="],"Sec-Gpc":["1"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Connection":["Upgrade"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"X-Forwarded-For":["100.70.251.50"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Cookie":["REDACTED"],"Accept-Language":["en-US,en;q=0.5"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}}

DBG ts=1760427384.1776428 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427384.2082186 logger=events msg=event name=tls_get_certificate id=b7827aa9-d19e-49a2-a34f-1105befb8306 origin=tls data={"client_hello":{"CipherSuites":[4865,4867,4866,49195,49199,52393,52392,49196,49200,49162,49161,49171,49172,156,157,47,53],"ServerName":"arrs-lxc.cheetoh-komodo.ts.net","SupportedCurves":[29,23,24,25,256,257],"SupportedPoints":"AA==","SignatureSchemes":[1027,1283,1539,2052,2053,2054,1025,1281,1537,515,513],"SupportedProtos":["http/1.1"],"SupportedVersions":[772,771],"RemoteAddr":{"IP":"100.70.251.50","Port":46396,"Zone":""},"LocalAddr":{"IP":"172.18.0.4","Port":443,"Zone":""}}}

DBG ts=1760427384.208267 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=arrs-lxc.cheetoh-komodo.ts.net

DBG ts=1760427384.2082813 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.cheetoh-komodo.ts.net

DBG ts=1760427384.2082846 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.ts.net

DBG ts=1760427384.2082877 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.net

DBG ts=1760427384.2082906 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.*

DBG ts=1760427384.2113028 logger=tls.handshake msg=using externally-managed certificate remote_ip=100.70.251.50 remote_port=46396 sni=arrs-lxc.cheetoh-komodo.ts.net names=["arrs-lxc.cheetoh-komodo.ts.net"] expiration=1768171273

DBG ts=1760427384.2134466 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427384.2150817 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.001582812 request={"remote_ip":"100.70.251.50","remote_port":"46396","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Cookie":["REDACTED"],"Accept":["*/*"],"Sec-Fetch-Site":["same-origin"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Version":["13"],"Connection":["Upgrade"],"Pragma":["no-cache"],"Accept-Language":["en-US,en;q=0.5"],"Sec-Fetch-Mode":["websocket"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Fetch-Dest":["empty"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"X-Forwarded-For":["100.70.251.50"],"X-Forwarded-Proto":["https"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Sec-Gpc":["1"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Sec-WebSocket-Key":["pwLcRse43xx+c6l99HC8GA=="],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Date":["Tue, 14 Oct 2025 07:36:24 GMT"],"Connection":["upgrade"],"Upgrade":["websocket"],"Sec-Websocket-Accept":["FXTT4NW6nx21gamt4Tc4BYWhLS0="],"Server":["nginx/1.28.0"]} status=101

DBG ts=1760427384.2151206 logger=http.handlers.reverse_proxy msg=upgrading connection upstream=homarr:7575 duration=0.001582812 request={"remote_ip":"100.70.251.50","remote_port":"46396","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Cookie":["REDACTED"],"Accept":["*/*"],"Sec-Fetch-Site":["same-origin"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Version":["13"],"Connection":["Upgrade"],"Pragma":["no-cache"],"Accept-Language":["en-US,en;q=0.5"],"Sec-Fetch-Mode":["websocket"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Fetch-Dest":["empty"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"X-Forwarded-For":["100.70.251.50"],"X-Forwarded-Proto":["https"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Sec-Gpc":["1"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Sec-WebSocket-Key":["pwLcRse43xx+c6l99HC8GA=="],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} http_version=1

DBG ts=1760427384.2720566 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.094364526 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/auth/login","headers":{"Accept-Encoding":["gzip, deflate, br, zstd"],"Priority":["u=0, i"],"Referer":["https://arrs-lxc.cheetoh-komodo.ts.net/"],"X-Forwarded-Proto":["https"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Cookie":["REDACTED"],"Sec-Fetch-Site":["same-origin"],"Te":["trailers"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Dest":["document"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Gpc":["1"],"Sec-Fetch-Mode":["navigate"],"X-Forwarded-For":["100.70.251.50"],"Via":["2.0 Caddy"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"X-Middleware-Rewrite":["/en/auth/login"],"Vary":["rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding"],"Cache-Control":["private, no-cache, no-store, max-age=0, must-revalidate"],"Server":["nginx/1.28.0"],"Content-Type":["text/html; charset=utf-8"],"Connection":["keep-alive"],"Content-Security-Policy":["default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; frame-ancestors *; frame-src *; form-action 'self'; img-src * data:; font-src * data:; media-src * data: blob:;"],"Link":["</_next/static/media/e4af272ccee01ff0-s.p.woff2>; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/woff2\", </_next/static/css/8b08ef1806374416.css>; rel=preload; as=\"style\", </_next/static/css/911381571dda96a2.css>; rel=preload; as=\"style\", </_next/static/css/f39bbcca36ea4634.css>; rel=preload; as=\"style\", </_next/static/css/9dd5cec527b057a3.css>; rel=preload; as=\"style\", </_next/static/css/23a2a6a2088b4525.css>; rel=preload; as=\"style\", </_next/static/css/56b9c1f313681412.css>; rel=preload; as=\"style\", </_next/static/css/ae110469aab9e883.css>; rel=preload; as=\"style\", </_next/static/css/b6d4b690c76388c2.css>; rel=preload; as=\"style\""],"X-Powered-By":["Next.js"],"Content-Encoding":["gzip"],"Date":["Tue, 14 Oct 2025 07:36:24 GMT"]} status=200

DBG ts=1760427384.2852604 logger=http.handlers.reverse_proxy msg=streaming error upstream=homarr:7575 duration=0.001582812 request={"remote_ip":"100.70.251.50","remote_port":"46396","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Cookie":["REDACTED"],"Accept":["*/*"],"Sec-Fetch-Site":["same-origin"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Version":["13"],"Connection":["Upgrade"],"Pragma":["no-cache"],"Accept-Language":["en-US,en;q=0.5"],"Sec-Fetch-Mode":["websocket"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Fetch-Dest":["empty"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"X-Forwarded-For":["100.70.251.50"],"X-Forwarded-Proto":["https"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Sec-Gpc":["1"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Sec-WebSocket-Key":["pwLcRse43xx+c6l99HC8GA=="],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}}

DBG ts=1760427384.2854254 logger=http.handlers.reverse_proxy msg=connection closed upstream=homarr:7575 duration=0.070234698 request={"remote_ip":"100.70.251.50","remote_port":"46396","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Cookie":["REDACTED"],"Accept":["*/*"],"Sec-Fetch-Site":["same-origin"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Sec-WebSocket-Version":["13"],"Connection":["Upgrade"],"Pragma":["no-cache"],"Accept-Language":["en-US,en;q=0.5"],"Sec-Fetch-Mode":["websocket"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Fetch-Dest":["empty"],"Via":["1.1 Caddy"],"Cache-Control":["no-cache"],"X-Forwarded-For":["100.70.251.50"],"X-Forwarded-Proto":["https"],"Upgrade":["websocket"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Sec-Gpc":["1"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Sec-WebSocket-Key":["pwLcRse43xx+c6l99HC8GA=="],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}}

DBG ts=1760427384.4352264 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427384.5256996 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.090425176 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/_next/image?url=%2Flogo%2Flogo.png&w=96&q=75","headers":{"Priority":["u=5, i"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Gpc":["1"],"Sec-Fetch-Site":["same-origin"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br, zstd"],"X-Forwarded-Proto":["https"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Cookie":["REDACTED"],"Referer":["https://arrs-lxc.cheetoh-komodo.ts.net/auth/login"],"Sec-Fetch-Dest":["image"],"Via":["2.0 Caddy"],"Sec-Fetch-Mode":["no-cors"],"Te":["trailers"],"Accept":["image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5"],"X-Forwarded-For":["100.70.251.50"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:24 GMT"],"Content-Length":["3608"],"Vary":["Accept"],"Cache-Control":["public, max-age=60, must-revalidate"],"Etag":["vgUzXHgUkHjhlTSG6huH38CN-_Ti7Gg_ImjQYWXVBcE"],"X-Nextjs-Cache":["MISS"],"Content-Type":["image/webp"],"Connection":["keep-alive"],"Content-Security-Policy":["script-src 'none'; frame-src 'none'; sandbox;"],"Content-Disposition":["attachment; filename=\"logo.webp\""]} status=200

DBG ts=1760427384.63838 logger=events msg=event name=tls_get_certificate id=7f36777f-7ad9-486d-a7ca-eb061ecc29f8 origin=tls data={"client_hello":{"CipherSuites":[4865,4867,4866,49195,49199,52393,52392,49196,49200,49162,49161,49171,49172,156,157,47,53],"ServerName":"arrs-lxc.cheetoh-komodo.ts.net","SupportedCurves":[29,23,24,25,256,257],"SupportedPoints":"AA==","SignatureSchemes":[1027,1283,1539,2052,2053,2054,1025,1281,1537,515,513],"SupportedProtos":["http/1.1"],"SupportedVersions":[772,771],"RemoteAddr":{"IP":"100.70.251.50","Port":46406,"Zone":""},"LocalAddr":{"IP":"172.18.0.4","Port":443,"Zone":""}}}

DBG ts=1760427384.6384244 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=arrs-lxc.cheetoh-komodo.ts.net

DBG ts=1760427384.6384294 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.cheetoh-komodo.ts.net

DBG ts=1760427384.6384327 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.ts.net

DBG ts=1760427384.6384437 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.net

DBG ts=1760427384.6384466 logger=tls.handshake msg=no matching certificates and no custom selection logic identifier=*.*.*.*

DBG ts=1760427384.6414726 logger=tls.handshake msg=using externally-managed certificate remote_ip=100.70.251.50 remote_port=46406 sni=arrs-lxc.cheetoh-komodo.ts.net names=["arrs-lxc.cheetoh-komodo.ts.net"] expiration=1768171273

DBG ts=1760427384.6436005 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427384.6449893 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.001353038 request={"remote_ip":"100.70.251.50","remote_port":"46406","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Cache-Control":["no-cache"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Pragma":["no-cache"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Connection":["Upgrade"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Sec-WebSocket-Key":["yRqmsYLE07X120WT0DV4Iw=="],"Sec-Gpc":["1"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Sec-Fetch-Mode":["websocket"],"Upgrade":["websocket"],"Accept-Language":["en-US,en;q=0.5"],"Sec-WebSocket-Version":["13"],"X-Forwarded-For":["100.70.251.50"],"Via":["1.1 Caddy"],"Sec-Fetch-Site":["same-origin"],"Accept":["*/*"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Dest":["empty"],"Cookie":["REDACTED"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Upgrade":["websocket"],"Sec-Websocket-Accept":["rc8V6sBYglHjWne1eGb7KY/SYiA="],"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:24 GMT"],"Connection":["upgrade"]} status=101

DBG ts=1760427384.6450117 logger=http.handlers.reverse_proxy msg=upgrading connection upstream=homarr:7575 duration=0.001353038 request={"remote_ip":"100.70.251.50","remote_port":"46406","client_ip":"100.70.251.50","proto":"HTTP/1.1","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/websockets","headers":{"Cache-Control":["no-cache"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Pragma":["no-cache"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Connection":["Upgrade"],"Sec-WebSocket-Extensions":["permessage-deflate"],"Sec-WebSocket-Key":["yRqmsYLE07X120WT0DV4Iw=="],"Sec-Gpc":["1"],"Origin":["https://arrs-lxc.cheetoh-komodo.ts.net"],"Sec-Fetch-Mode":["websocket"],"Upgrade":["websocket"],"Accept-Language":["en-US,en;q=0.5"],"Sec-WebSocket-Version":["13"],"X-Forwarded-For":["100.70.251.50"],"Via":["1.1 Caddy"],"Sec-Fetch-Site":["same-origin"],"Accept":["*/*"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Dest":["empty"],"Cookie":["REDACTED"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"http/1.1","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} http_version=1

DBG ts=1760427393.202912 logger=http.handlers.rewrite msg=rewrote request request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/","headers":{"Sec-Fetch-Site":["none"],"Sec-Fetch-User":["?1"],"Priority":["u=0, i"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Gpc":["1"],"Cookie":["REDACTED"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"],"Te":["trailers"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br, zstd"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} method=GET uri=/

DBG ts=1760427393.202994 logger=http.handlers.reverse_proxy msg=selected upstream dial=jellyfin:8096 total_upstreams=1

DBG ts=1760427393.2059207 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=jellyfin:8096 duration=0.002891123 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/","headers":{"Upgrade-Insecure-Requests":["1"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Te":["trailers"],"Via":["2.0 Caddy"],"Sec-Fetch-Dest":["document"],"X-Forwarded-For":["100.70.251.50"],"Sec-Fetch-User":["?1"],"Priority":["u=0, i"],"Sec-Gpc":["1"],"Sec-Fetch-Mode":["navigate"],"X-Forwarded-Proto":["https"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Sec-Fetch-Site":["none"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Cookie":["REDACTED"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Location":["web/"],"Content-Length":["0"],"Date":["Tue, 14 Oct 2025 07:36:32 GMT"],"Server":["Kestrel"]} status=302

DBG ts=1760427393.218726 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427393.2228367 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.004072736 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/web/","headers":{"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Sec-Gpc":["1"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Mode":["navigate"],"Sec-Fetch-User":["?1"],"Priority":["u=0, i"],"Te":["trailers"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Upgrade-Insecure-Requests":["1"],"Sec-Fetch-Site":["none"],"Cookie":["REDACTED"],"Accept-Language":["en-US,en;q=0.5"],"X-Forwarded-For":["100.70.251.50"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Via":["2.0 Caddy"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:33 GMT"],"Connection":["keep-alive"],"Location":["/web"],"Refresh":["0;url=/web"]} status=308

DBG ts=1760427393.2305684 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427393.2481015 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.017486602 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/web","headers":{"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"X-Forwarded-For":["100.70.251.50"],"Priority":["u=0, i"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],"Accept-Language":["en-US,en;q=0.5"],"Via":["2.0 Caddy"],"Cookie":["REDACTED"],"Sec-Fetch-Dest":["document"],"Sec-Fetch-Site":["none"],"Sec-Gpc":["1"],"Sec-Fetch-Mode":["navigate"],"Sec-Fetch-User":["?1"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Te":["trailers"],"Upgrade-Insecure-Requests":["1"],"X-Forwarded-Proto":["https"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Vary":["rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding"],"X-Powered-By":["Next.js"],"X-Nextjs-Prerender":["1","1"],"Date":["Tue, 14 Oct 2025 07:36:33 GMT"],"Content-Type":["text/html; charset=utf-8"],"X-Middleware-Rewrite":["/en/web"],"X-Nextjs-Stale-Time":["300"],"Server":["nginx/1.28.0"],"X-Nextjs-Cache":["HIT"],"Etag":["\"2o314feals4b7\""],"Content-Encoding":["gzip"],"Connection":["keep-alive"],"Content-Security-Policy":["default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; frame-ancestors *; frame-src *; form-action 'self'; img-src * data:; font-src * data:; media-src * data: blob:;"],"Cache-Control":["private, no-cache, no-store, max-age=0, must-revalidate"]} status=404

DBG ts=1760427393.3645825 logger=http.handlers.reverse_proxy msg=selected upstream dial=homarr:7575 total_upstreams=1

DBG ts=1760427393.3697667 logger=http.handlers.reverse_proxy msg=upstream roundtrip upstream=homarr:7575 duration=0.005135244 request={"remote_ip":"100.70.251.50","remote_port":"46384","client_ip":"100.70.251.50","proto":"HTTP/2.0","method":"GET","host":"arrs-lxc.cheetoh-komodo.ts.net","uri":"/favicon.ico","headers":{"X-Forwarded-For":["100.70.251.50"],"Sec-Fetch-Site":["same-origin"],"Sec-Fetch-Dest":["image"],"X-Forwarded-Proto":["https"],"Accept":["image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5"],"Priority":["u=6"],"X-Forwarded-Host":["arrs-lxc.cheetoh-komodo.ts.net"],"Sec-Gpc":["1"],"Te":["trailers"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"],"Sec-Fetch-Mode":["no-cors"],"Via":["2.0 Caddy"],"Accept-Language":["en-US,en;q=0.5"],"Accept-Encoding":["gzip, deflate, br, zstd"],"Referer":["https://arrs-lxc.cheetoh-komodo.ts.net/web"],"Cookie":["REDACTED"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"arrs-lxc.cheetoh-komodo.ts.net"}} headers={"Connection":["keep-alive"],"Etag":["W/\"2affe-199cf8d1610\""],"Vary":["Accept-Encoding"],"Content-Type":["image/x-icon"],"Content-Security-Policy":["default-src 'self'; script-src * 'unsafe-inline' 'unsafe-eval'; worker-src * blob:; base-uri 'self'; connect-src *; style-src * 'unsafe-inline'; frame-ancestors *; frame-src *; form-action 'self'; img-src * data:; font-src * data:; media-src * data: blob:;"],"Accept-Ranges":["bytes"],"Cache-Control":["public, max-age=0"],"Last-Modified":["Fri, 10 Oct 2025 19:15:54 GMT"],"Content-Encoding":["gzip"],"Server":["nginx/1.28.0"],"Date":["Tue, 14 Oct 2025 07:36:33 GMT"]} status=200

3. Caddy version:

v2.10.2 h1:g/gTYjGMD0dec+UgMw8SnfmJ3I9+M2TdvoRL/Ovu6U8=

4. How I installed and ran Caddy:

I used Docker Compose to run Caddy, here is a snippet:

  caddy:
    container_name: caddy
    image: caddy:latest
    user: "1000:1000"
    restart: always
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./caddy/conf:/etc/caddy
      - ./caddy/site:/srv
      - caddy_data:/data
      - caddy_config:/config
      - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock:ro

a. System environment:

The host PC is running Proxmox Virtual Environment 8.4.14, and the LXC hosting the services (Tailscale, Caddy, Docker) is running Ubuntu 24.04 standard amd64. Docker version is 28.5.1, and Tailscale version is 1.88.3.

b. Command:

I run Caddy using Docker Compose, so after every edit of the Caddyfile I run:

docker compose exec -w /etc/caddy caddy caddy reload

c. Service/unit/compose file:

services:
  caddy:
    container_name: caddy
    image: caddy:latest
    user: "1000:1000"
    restart: always
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./caddy/conf:/etc/caddy
      - ./caddy/site:/srv
      - caddy_data:/data
      - caddy_config:/config
      - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock:ro

  homarr:
    container_name: homarr
    image: ghcr.io/homarr-labs/homarr:latest
    restart: always
    ports:
      - '7575:7575'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./homarr/appdata:/appdata
    environment:
      - SECRET_ENCRYPTION_KEY=<redacted>

  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    devices:
      - /dev/dri:/dev/dri
    ports:
      - 8096:8096
      - 8920:8920 #optional
      - 7359:7359/udp #optional
      - 1900:1900/udp #optional
    volumes:
      - ./jellyfin/config:/config
      - ./media/ToshibaRAID/tvshows:/data/tvshows
      - ./media/ToshibaRAID/movies:/data/movies
    restart: always

volumes:
  caddy_data:
  caddy_config:

d. My complete Caddy config:

{
        debug
}

arrs-lxc.cheetoh-komodo.ts.net {
        handle_path /jellyfin* {
                reverse_proxy jellyfin:8096
        }

        # dashboard
        handle {
                reverse_proxy homarr:7575
        }
}

5. Links to relevant resources:

I used this post to start out my Caddyfile: