Skip to content

[Enhancement]: Tailscale Serve Setup Options #3937

Description

@Shrinks99

App Name

Tailscale

Current Version (TrueNAS Catalog App Version)

1.3.26

Enhancement Description

Tailscale Serve is an easy way of exposing specific services to your Tailscale network. When used in conjunction with Tailscale Services, one can easily expose a service running on any port to a subdomain on their Tailscale network subdomain.example-tailnet.ts.net Neat!

Unfortunately right now within the Talescale app in TrueNAS, there is no way to run tailscale serve commands on container launch. We can add tailscale set commands with the "extra arguments" field1, set Tailscale Daemon flags, and set environment variables. All helpful, but none of them allow me to run multiple tailscale serve commands in the background.

Use Case

I'm trying to provision certs for the various services on my NAS, most notably Nextcloud which requires it for its sync client despite the fact that all my NAS services are behind Tailscale (an encrypted VPN). Despite this, tailscale serve should make it very easy to provision certs, as this is automatically done for the user for each service they have configured.

Proposed Solution

It would be really handy to expose both tailscale serve in the app setup UI? Being able to assign ports to tailscale serve along with a service name (if configured) with --service=svc:SERVICENAME would be a super easy way to provision certs and configure subdomains for individual services!

Alternatives Considered

There are good guides out there for using Tailscale with Nginx Proxy Manager or using the TS_SERVE_CONFIG environment variable to point to a dataset containing a json file instead of using CLI flags. Generally I like to keep my apps as self-contained and stock-configured as possible. Adding these flags to the stock Tailscale config would give me the piece of mind to know that they'll likely continue to work across versions, or that a migration path will be documented somewhere.

Additional Context

tailscale cert could also be nice, though the command it isn't really relevant as part of what I'm trying to do.

Tailscale Funnel also has its own commands which are similarly useful, but not something I need.

Footnotes

  1. Should probably also rename this to "Tailscale set flags" or similar as all arguments run under tailscale set??

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions