Skip to content

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.

/config/tsdproxy.yaml
lists:
  critical:
    filename: /config/critical.yaml
    defaultProxyProvider: tailscale1
    defaultProxyAccessLog: true
  media:
    filename: /config/media.yaml
    defaultProxyProvider: default
    defaultProxyAccessLog: false
/config/critical.yaml
nas1:
  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:5001
/config/media.yaml
music:
  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

This 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

/config/tsdproxy.yaml
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

Proxy list file options

/config/filename.yaml
proxyname: # Name of the proxy
 proxyProvider: default # (optional) name of the proxy provider

  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
    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 dashboard

Tip

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.

Last updated on