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. Each target provider could be used to group the way you decide better to help you manage your proxies. Or can use a single file to proxy all your targets.

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

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