cmd/tsidp: use advertised env vars for config

Fixes #14491

Signed-off-by: Kot <kot@kot.pink>
This commit is contained in:
Kot 2025-03-28 14:17:13 -07:00 committed by Brad Fitzpatrick
parent 65c7a37bc6
commit 85bcc2e3bd
3 changed files with 15 additions and 7 deletions

View File

@ -31,11 +31,11 @@ WORKDIR /app
# Environment variables
ENV TAILSCALE_USE_WIP_CODE=1 \
TS_HOSTNAME=tsidp \
TS_HOSTNAME=idp \
TS_STATE_DIR=/var/lib/tsidp
# Expose the default port
EXPOSE 443
# Run the application
ENTRYPOINT ["/app/tsidp"]
ENTRYPOINT ["/app/tsidp"]

View File

@ -38,7 +38,7 @@
--name `tsidp` \
-p 443:443 \
-e TS_AUTHKEY=YOUR_TAILSCALE_AUTHKEY \
-e TS_HOSTNAME=tsidp \
-e TS_HOSTNAME=idp \
-v tsidp-data:/var/lib/tsidp \
tsidp:latest
```
@ -88,7 +88,7 @@ The `tsidp` server supports several command-line flags:
- `TS_AUTHKEY`: Your Tailscale authentication key (required)
- `TS_HOSTNAME`: Hostname for the `tsidp` server (default: "idp")
- `TS_STATE_DIR`: State directory (default: "/var/lib/tsidp")
- `TS_STATE_DIR`: State directory (default: "/var/lib/tsidp" in Docker, otherwise tsnet default)
- `TAILSCALE_USE_WIP_CODE`: Enable work-in-progress code (default: "1")
## Support
@ -97,4 +97,4 @@ This is an [experimental](https://tailscale.com/kb/1167/release-stages#experimen
## License
BSD-3-Clause License. See [LICENSE](../../LICENSE) for details.
BSD-3-Clause License. See [LICENSE](../../LICENSE) for details.

View File

@ -65,9 +65,17 @@ var (
flagLocalPort = flag.Int("local-port", -1, "allow requests from localhost")
flagUseLocalTailscaled = flag.Bool("use-local-tailscaled", false, "use local tailscaled instead of tsnet")
flagFunnel = flag.Bool("funnel", false, "use Tailscale Funnel to make tsidp available on the public internet")
flagDir = flag.String("dir", "", "tsnet state directory; a default one will be created if not provided")
flagHostname = flag.String("hostname", envOr("TS_HOSTNAME", "idp"), "tsnet hostname to use instead of idp")
flagDir = flag.String("dir", envOr("TS_STATE_DIR", ""), "tsnet state directory; a default one will be created if not provided")
)
func envOr(key, defaultVal string) string {
if result, ok := os.LookupEnv(key); ok {
return result
}
return defaultVal
}
func main() {
flag.Parse()
ctx := context.Background()
@ -121,7 +129,7 @@ func main() {
defer cleanup()
} else {
ts := &tsnet.Server{
Hostname: "idp",
Hostname: *flagHostname,
Dir: *flagDir,
}
if *flagVerbose {