← Back to DevOps & Cloud
DevOps & Cloud by @snopoke

tailscale-serve

tailscale-serve

Tailscale Serve Skill

Manage multiple paths with tailscale serve without conflicts.

Key Commands

Check what's currently served

tailscale serve status

Serve a directory or file at a specific path

# Directory
tailscale serve --bg --set-path /slides /path/to/directory

# Single file
tailscale serve --bg --set-path /presentation /path/to/file.html

# Port (for running services)
tailscale serve --bg --set-path /api http://localhost:8080

Serve from a port at root (replaces everything)

tailscale serve --bg 8888

Remove a specific path

tailscale serve --https=443 /slides off

Reset all serving

tailscale serve reset

Important Notes

  • Path conflicts: Serving at / will override all other paths
  • Background mode: Use --bg to keep it running
  • Multiple paths: You can serve multiple things simultaneously with different paths
  • Status first: Always check tailscale serve status before adding new paths

Common Patterns

Serve presentation alongside control UI

# If control UI is at /, serve presentation at a subpath
tailscale serve --bg --set-path /slides ~/clawd/personal-agents-presentation.html

# Access at: https://[hostname].ts.net/slides

Serve multiple directories

tailscale serve --bg --set-path /docs ~/documents
tailscale serve --bg --set-path /slides ~/presentations
tailscale serve --bg --set-path /files ~/files

Serve a local dev server

tailscale serve --bg --set-path /app http://localhost:3000

Workflow

  1. Check current status: tailscale serve status
  2. Choose an unused path (e.g., /slides, /docs, /api)
  3. Serve with --set-path /your-path /source
  4. Verify with tailscale serve status again
  5. Share the full URL: https://[hostname].ts.net/your-path

Troubleshooting

"Can't access my served content"

  • Check tailscale serve status - is it at the path you expect?
  • Did something else overwrite the root /?

"Want to replace everything with a port"

tailscale serve reset
tailscale serve --bg 8888

"Want to add to existing setup"

# Don't use reset! Just add with --set-path
tailscale serve --bg --set-path /newpath /source