Lists
TSDProxy can be configured to proxy using a YAML configuration file. Multiple lists can be used, and they are referred to as target providers. Organize your proxies into groups or use a single file for all targets — whatever works best for your setup.
Caution
Configuration files are case sensitive
How to enable?
In your /config/tsdproxy.yaml, specify the lists you want to use, just
like this example where the critical and media providers are defined.
lists:
critical:
filename: /config/critical.yaml
defaultProxyProvider: tailscale1
defaultProxyAccessLog: true
media:
filename: /config/media.yaml
defaultProxyProvider: default
defaultProxyAccessLog: falsenas1:
ports:
443/https:
targets:
- http://nas1.local:5001
80/http:
targets:
- nas1.funny-name.ts.net
isRedirect: true
nas2:
ports:
443/https:
targets:
- https://nas2.local:5001music:
ports:
443/https:
targets:
- http://192.168.1.10:3789
video:
ports:
443/https:
targets:
- http://192.168.1.10:8080
photos:
ports:
443/https:
targets:
- http://192.168.1.10:8181
host-ssh:
ports:
22/tcp:
targets:
- tcp://192.168.1.10:22
neko:
ports:
443/https:
targets:
- http://192.168.1.10:8080
56000-56002/udp:
targets:
- udp://192.168.1.10:56000This configuration will create two groups of proxies:
- nas1.funny-name.ts.net and nas2.funny-name.ts.net
- Self-signed tls certificates
- Both use ’tailscale1’ Tailscale provider
- All access logs are enabled
- music.ts.net, video.ts.net and photos.ts.net.
- On the same host with different ports
- Use ‘default’ Tailscale provider
- Don’t enable access logs
Provider Configuration options
lists:
critical: # Name the target provider
filename: /config/critical.yaml # file with the proxy list
defaultProxyProvider: tailscale1 # (optional) default proxy provider
defaultProxyAccessLog: true # (optional) Enable access logs
autoRestart: true # (optional) Enable automatic re-resolution on backend failure (default: true)
healthCheckEnabled: true # (optional) Enable health probes (default: true)
healthCheckInterval: 30 # (optional) Seconds between health probes (default: 30)
healthCheckFailures: 3 # (optional) Consecutive failures before re-resolution (default: 3)
healthCheckCooldown: 0 # (optional) Fixed cooldown in seconds, 0 for exponential backoff (default: 0)See Health Check for details on how backend health monitoring and re-resolution work.
Proxy list file options
proxyname: # Name of the proxy
proxyProvider: default # (optional) name of the proxy provider
domain: app.example.com # (optional) custom domain for this proxy
dnsProvider: cloudflare # (optional) DNS provider name (defaults to defaultDNSProvider)
tlsProvider: acme # (optional) TLS provider name (defaults to defaultTLSProvider)
tailscale: # (optional) Tailscale configuration for this proxy
authKey: asdasdas # (optional) Tailscale authkey
ephemeral: false # (optional) (defaults to false) Enable ephemeral mode
runWebClient: false # (optional) (defaults to false) Run web client
verbose: false # (optional) (defaults to false) Run in verbose mode
tags: "tag:example,tag:server" # (optional) tags to apply
# (will override the default provider tags)
ports:
port/protocol: #example 443/https, 80/http, 22/tcp, 56000-56002/udp
targets: # list of targets (in this version only the first will be used)
- http://sub.domain.com:8111 # change to your target
tailscale: # (optional)
funnel: true # (optional) (defaults to false), enable funnel mode
isRedirect: true # (optional) (defaults to false), redirect to the target
tlsValidate: false # (optional) /defaults to true), disable targets TLS validation
dashboard:
visible: false # (optional) (defaults to true) doesn't show proxy in dashboard
label: "" # (optional), label to be shown in dashboard
icon: "" # (optional), icon to be shown in dashboardTip
TSDProxy will reload the proxy list when it is updated. You only need to restart TSDProxy if your changes are in /config/tsdproxy.yaml
Note
See available icons in icons.
List proxy with custom domain
homepage:
domain: "home.example.com"
dnsProvider: cloudflare
tlsProvider: acme
ports:
443/https:
targets:
- http://192.168.1.10:3000See Custom Domains for full setup instructions.