🛠️

ScaleTail: Private Docker Services over Tailscale

A practical self-hosting resource for exposing Docker apps inside a private Tailnet instead of opening router ports, reverse proxies, and public subdomains by default.

Jun 1, 2026

Quick summary

A practical self-hosting resource for exposing Docker apps inside a private Tailnet instead of opening router ports, reverse proxies, and public subdomains by default.

Read more
Status & Access
Current access and latest update details.
Access
Free
Updated
Jun 1, 2026, 01:08 AM

LinkLoot AI review

Start code only in isolation

Score: 68/100
Repository checked statically and in isolation

Reviewed loot: ScaleTail: Private Docker Services over Tailscale

My take: as an audit-harness guide, this loot is useful because it turns a large-codebase review into a followable workflow.

Keeps promise84/100
Safe to try45/100
Easy to try56/100
Trust signals66/100
Worth following61/100
LLQI auditVerdict: RISKY
security & trust68/100
functionality & value76/100
quality & structure72/100
sources checked
code signals checked
snapshot optional
No package dependencies

Automated AI review. Decision aid, not a safety guarantee. · 2026-05-31 23:38:15 UTC

What this is

ScaleTail is a collection of ready-to-run Docker Compose stacks that attach common self-hosted apps to a Tailscale tailnet through a sidecar container. The useful idea is simple: make private tools reachable from your own devices without turning every dashboard, password vault, document archive, or admin panel into a public web service.

Best use case

Use this when you run services such as Vaultwarden, Paperless-ngx, Jellyfin, Immich, Pi-hole, AdGuard Home, Home Assistant, Open WebUI, Portainer, or Uptime Kuma and want remote access without a new router port, reverse-proxy rule, or public DNS entry for every app.

Workflow

  1. Create a reusable Tailscale auth key in the Tailscale admin console.
  2. Pick the ScaleTail template matching your service.
  3. Review the Docker Compose file before running it, especially volumes, environment variables, and exposed ports.
  4. Bind the app container to the Tailscale sidecar network stack with the template's network_mode: service: pattern.
  5. Start the stack with Docker Compose and confirm the service appears in your Tailnet.
  6. Use Tailscale Serve for private Tailnet access. Only use Funnel when the service is intentionally public.

Security notes

  • ScaleTail reduces accidental public exposure, but it does not replace Docker hardening, backups, patching, or least-privilege access controls.
  • Treat every template as code: inspect the image source, tags, volume mounts, environment variables, and update policy before production use.
  • Keep admin panels, password managers, document stores, and local AI interfaces private unless you have a strong reason to expose them publicly.
  • Do not confuse Tailscale Serve with Funnel: Serve is private to the Tailnet, while Funnel publishes a service to the public internet.

Quick decision table

NeedUse ScaleTail?Caveat
Private remote access to homelab appsYesRequires Tailscale and Docker Compose
Public webhook endpointMaybeFunnel can be public; harden it carefully
Full site publishingNoUse a normal deployment and security model
Multi-service homelab on one hostYesStill plan backups, updates, and separation

Source check

The Tarnkappe article explains the privacy angle, the Serve/Funnel distinction, and why ScaleTail fits self-hosted Docker services that should not be exposed publicly by default. The ScaleTail GitHub repository confirms that the project provides Docker Compose sidecar configurations for connecting self-hosted apps to a Tailnet. Tailscale's own Docker documentation provides the official baseline for running Tailscale with containers.

Discussion

Sign in to join the discussion and vote on comments.

No comments yet. Start the discussion.
Keep exploring

More from this topic

More in Tools & Apps