Skip to content
tailscale-devPublic

About

Ready-to-run Docker Compose stacks for 120+ self-hosted apps, each with a Tailscale sidecar and automatic HTTPS

Topics

Resources

Code of conduct

Contributing

Stars

2.1k stars

Watchers

12 watching

Forks

Repository files navigation

ScaleTail

GitHub stars License Docker Tailscale

ScaleTail is a collection of ready-to-run Docker Compose stacks that connect self-hosted applications to your Tailnet. Each stack runs a Tailscale sidecar container, so the application joins your Tailnet as its own device. Most stacks publish the application at an HTTPS address such as https://vaultwarden.<tailnet>.ts.net, reachable from your Tailnet only.

Table of contents

Featured by Tailscale

In this video from the Tailscale YouTube channel, Alex deploys a ScaleTail service in under 10 minutes.

Watch "We got self-hosted apps for days with ScaleTail"

Quick Start

You need:

  • A Linux host with Docker Engine, Docker Compose 2.23.1 or later, and Git. Check the Compose version with docker compose version.
  • MagicDNS and HTTPS certificates enabled for your Tailnet, on the DNS page of the admin console. Without them, the https:// address of a stack does not work. With HTTPS enabled, device names appear in public certificate transparency logs.
  1. Create an auth key on the Keys page of the admin console.

    • Leave Ephemeral off. Tailscale removes an ephemeral device 30 to 60 minutes after it goes offline, for example when you stop the stack.
    • Turn on Pre-approved if your Tailnet uses device approval.
    • Turn on Reusable to use the key for more than one stack.
  2. Get the stacks and choose a service.

    git clone https://github.com/tailscale-dev/ScaleTail.git
    cd ScaleTail/services/<service>

    Replace <service> with the directory from the Details link in Available configurations, for example uptime-kuma.

  3. Read the service README. "Before you start" lists what the service needs beyond these steps, such as secrets to generate. Until you set them, Compose stops with an error such as required variable DB_PASSWORD is missing a value.

  4. Edit .env. Open the hidden file .env, for example with nano .env. Paste your auth key after TS_AUTHKEY= and set the values that the service README asks for.

  5. Start the stack.

    docker compose up -d
    docker compose ps

    The application starts after the tailscale container reports healthy. If a container is not running, read the logs with docker compose logs.

  6. Open the service. From a device in your Tailnet, open the address from "At a glance" in the service README, usually https://<SERVICE>.<tailnet>.ts.net.

    • <SERVICE> is the value of SERVICE in .env.
    • <tailnet>.ts.net is your Tailnet DNS name, for example tail1234.ts.net.
    • The first request can take up to a minute, because Tailscale requests the certificate at that moment.

    Then follow "First run" in the service README. Some stacks have no web interface, and their service README says how to reach them.

  7. Keep the device connected. Its node key expires after 180 days by default. To prevent that, disable key expiry for the device on the Machines page.

Every stack starts from the same standard setup, which explains the containers, the Tailnet address, the data folders, and the settings in .env.

Available configurations

Networking and security

Service Description Link
AdGuard Home DNS server that blocks ads and trackers on every device that uses it. Details
AdGuard Home Sync Tool that copies the configuration of one AdGuard Home instance to replicas. Details
Caddy Web server and reverse proxy with automatic HTTPS. Details
DDNS Updater Updater that keeps DNS records pointed at your current public IP address. Details
FlareSolverr Proxy that solves Cloudflare challenges for apps such as Prowlarr. Details
Nessus Vulnerability scanner from Tenable, with the limited free Nessus Essentials license. Details
NetBox Network documentation tool for IP addresses, racks, devices, connections, and circuits. Details
Pi-hole DNS server that blocks ads and trackers for every device that uses it. Details
Pocket ID OpenID Connect provider that signs users in to your services with passkeys. Details
RustDesk Server Your own ID and relay server for RustDesk clients, so they skip the public servers. Details
Tailscale App Connector Node App connector that sends Tailnet traffic for chosen domains through this host. Details
Tailscale Exit Node Exit node that routes the internet traffic of other Tailnet devices through this host. Details
Tailscale Subnet Router Node Subnet router that gives your Tailnet access to a local network. Details
Technitium DNS DNS server with ad blocking, forwarders, and your own DNS zones. Details
Traefik Reverse proxy and load balancer that routes requests to Docker containers by label. Details
Vaultwarden Password manager server that works with the Bitwarden apps and browser extensions. Details

Media and entertainment

Service Description Link
ArtistTrackarr Tracker for new and upcoming albums and EPs, using MusicBrainz and optionally Spotify. Details
Audiobookshelf Server for audiobooks and podcasts, with playback progress synced across devices. Details
Bazarr Subtitle downloader for movies and series managed by Radarr and Sonarr. Details
BookLore Book manager and browser reader, with Kobo and KOReader sync. Details
Configarr Tool that applies YAML settings and TRaSH Guides profiles to Radarr and Sonarr, then exits. Details
FreshRSS Feed reader for RSS and Atom, with themes, extensions, and no separate database server. Details
Hytale Hytale game server in a community image, for players on your Tailnet. Details
Immich Photo and video library that backs up mobile media, with search and sharing. Details
Jellyfin Media server that organizes and streams your movies, series, and music. Details
Kavita Digital library for comics, manga, and books, with progress synced across devices. Details
MeTube Web UI for yt-dlp that downloads videos and audio from YouTube and other sites. Details
Minecraft Minecraft Java Edition server that players reach over your Tailnet. Details
Miniflux Minimalist feed reader for RSS, Atom, and JSON feeds, with a PostgreSQL database. Details
Navidrome Music server that streams your collection to its web player and Subsonic-compatible apps. Details
Picard MusicBrainz tag editor that writes tags and cover art, used in your browser. Details
Plex Media server that streams your movies, series, and music to Plex apps; needs a Plex account. Details
Posterizarr Poster, background, and title card generator for Plex, Jellyfin, and Emby libraries. Details
Prowlarr Indexer manager for Usenet and torrent trackers, used by apps such as Radarr and Sonarr. Details
qBittorrent BitTorrent client with a web interface. Details
Radarr Movie manager that searches Usenet and BitTorrent and sorts files into your library. Details
Recyclarr Tool that applies TRaSH Guides quality profiles from a YAML file to Radarr and Sonarr on a schedule. Details
Seerr Request manager for Plex, Jellyfin, and Emby that sends approved requests to Radarr and Sonarr. Details
Slink Image hosting platform that shares uploads through links. Details
Sonarr Series manager that searches Usenet and BitTorrent for new episodes. Details
Swing Music Music player and streaming server for your local audio files. Details
Tautulli Monitoring tool for Plex Media Server, with viewing history, statistics, and notifications. Details

Productivity and collaboration

Service Description Link
Actual Budget Personal finance and budgeting app for tracking accounts and spending. Details
AFFiNE Open-source alternative to Notion and Miro, for documents, whiteboards, and databases. Details
Anchor Note-taking app that works offline and syncs notes when you are back online. Details
BentoPDF PDF toolkit that merges, splits, compresses, converts, and edits PDFs in your browser. Details
ClipCascade Server that syncs your clipboard across devices, with end-to-end encryption. Details
Copyparty File server with resumable uploads, browser access, and WebDAV. Details
Docmost Team wiki with real-time collaborative editing, diagrams, comments, and permissions. Details
Donetick Task and chore manager for households and small groups. Details
DumbDo To-do list app that keeps its lists in one file, with no database. Details
Eigenfocus Project and task manager with boards, time tracking, and focus tools. Details
EspoCRM Customer relationship manager for contacts, companies, and sales opportunities. Details
Excalidraw Virtual whiteboard for sketching diagrams in a hand-drawn style. Details
File Browser Archived. Web file manager for one folder on your server, with no further security fixes. Details
flatnotes Note-taking app that stores notes as plain Markdown files, with no database. Details
Formbricks Survey and feedback platform for websites, apps, and links. Details
Ghost Publishing platform for blogs and newsletters. Details
Gokapi File sharing server with links that expire after a set number of downloads or days. Details
Gramps Web Genealogy web app for browsing and editing family trees together. Details
Haptic Markdown note editor that keeps notes in the browser, not on the server. Details
Isley Cannabis grow journal for logging plants, watering, feeding, and harvests. Details
Joplin Server Sync server for the Joplin note-taking apps, with notes kept in a PostgreSQL database. Details
Kaneo Open-source project tracker with boards and tasks, an alternative to Trello and Linear. Details
Karakeep Bookmark manager that archives links, notes, and images, with full-text search. Details
LanguageTool Grammar and spelling checker server for browser extensions, with no web interface. Details
linkding Bookmark manager to save, tag, and search links, with a browser extension. Details
Mattermost Team chat platform with channels, direct messages, and integrations. Details
Memos Note-taking app for short Markdown notes, shown on a timeline. Details
Nanote Note-taking app that stores notes as Markdown files in folders. Details
NextExplorer Web file manager for browsing, uploading, and editing files in one folder on your server. Details
Open WebUI Chat interface for AI models, through Ollama or OpenAI-compatible APIs. Details
Paperless-ngx Document management system that turns scans and files into a searchable archive. Details
Pingvin Share Archived. File sharing platform with links that can expire. Details
Radicale CalDAV and CardDAV server that syncs calendars, to-do lists, and contacts. Details
Resilio Sync Peer-to-peer tool that syncs folders between your devices, without a central server. Details
Seafile File sync and sharing platform that stores files in libraries. Details
Stirling-PDF PDF toolbox for merging, splitting, converting, compressing, signing, and editing. Details
SubTrackr Subscription tracker that shows monthly and yearly costs and when each one renews. Details
Sure Fork of the archived Maybe finance app, for tracking accounts, investments, and net worth. Details
Vikunja To-do and project management app with lists, boards, Gantt charts, and reminders. Details
Wallos Subscription and expense tracker with payment reminders and budget help. Details
XWiki Wiki platform for documentation and knowledge management, with extensions. Details

Dashboards and visualization

Service Description Link
Glance Dashboard that puts feeds, such as RSS, weather, and markets, on one page. Details
Homarr Dashboard with user accounts that shows live data from the apps you connect. Details
Homepage Dashboard that you set up in YAML files, with bookmarks and live data from apps and Docker. Details
NewWallpaperWhoDis Wallpaper server that rotates your collection on browsers, tablets, TVs, and dashboards. Details

Development tools

Service Description Link
Arcane Web UI to manage Docker containers, images, networks, volumes, and Compose projects. Details
Coder Platform that provisions development environments from Terraform templates. Details
CyberChef Web app for encoding, decoding, encrypting, compressing, and analyzing data. Details
Dockge Web interface to manage Docker Compose stacks. Details
Dockhand Web interface to manage Docker containers and Compose stacks on local and remote hosts. Details
Dozzle Real-time log viewer for Docker containers. Details
Forgejo Community-governed fork of Gitea with pull requests, issues, packages, and CI. Details
FossFLOW Tool for drawing isometric infrastructure diagrams. Details
Gitea Lightweight Git service with repositories, pull requests, issues, packages, and CI. Details
GitSave Backup tool for your Git repositories, run on a schedule. Details
IT-Tools Online tools for developers and IT staff, such as converters and generators. Details
Mailpit Email testing tool that captures outgoing mail over SMTP for viewing and debugging. Details
Node-RED Low-code, flow-based tool for wiring devices, APIs, and online services together. Details
Ollama Runtime for large language models, with an OpenAI-compatible API and no login. Details
Portainer Web interface to manage Docker containers, images, volumes, and networks. Details
SearXNG Metasearch engine that combines results from many search engines without tracking. Details

Monitoring and analytics

Service Description Link
Beszel Agent Agent that sends system and Docker stats to a Beszel hub. Details
Beszel Hub Server monitor with history, Docker stats, and alerts. Details
changedetection.io Monitor that watches web pages and notifies you when their content changes. Details
Portracker Port tracker that discovers the services on your systems and maps the ports they use. Details
Speedtest Tracker Tool that runs scheduled internet speed tests and charts the results over time. Details
Umami Web analytics that uses no cookies and collects no personal data. Details
Uptime Kuma Monitor for websites and services that alerts you when they go down. Details

Smart home

Service Description Link
Frigate Network video recorder with real-time AI object detection for IP cameras, using an optional GPU or accelerator. Details
Home Assistant Home automation platform for controlling smart devices. Details

Utilities

Service Description Link
ConvertX Web file converter for documents, images, audio, video, and many other formats. Details
Gotify Push notification server that shows messages from your scripts in its web interface and Android app. Details
Hemmelig Archived. Encrypted secret sharing by link, with secrets deleted after reading or on expiry. Details
Homebox Home inventory for items, with location, quantity, warranty, and purchase details. Details
LubeLogger Tracker for vehicle maintenance and fuel use, with reminders for upcoming services. Details
Mini QR Web app to create, style, and scan QR codes. Details
ntfy Notification service that lets scripts and apps push messages to phones and browsers over HTTP. Details
Tracktor Tracker for vehicle fuel use, maintenance, insurance, and documents, with renewal dates. Details
Transmute Converter and compressor for images, video, audio, and documents, with a web UI and API. Details

Food and wellness

Service Description Link
KitchenOwl Grocery list and recipe manager for households, with meal planning and expenses. Details
Mealie Recipe manager and meal planner with shopping lists and imports from web addresses. Details
Tandoor Recipes Recipe manager and meal planner with shopping lists. Details

Update a stack

Most stacks use the latest image tag. To get newer images, run this from the service directory:

docker compose pull
docker compose up -d

To get the latest version of the stacks, update your clone. Git does not overwrite files that you changed, such as .env, so set your changes aside first:

git stash
git pull
git stash pop

If git stash pop reports a conflict in .env, open the file, keep your values, delete the <<<<<<<, =======, and >>>>>>> lines, then run git reset and git stash drop.

Before you restart the stack, read the "Upgrading" section of the service README, if it has one.

Remove a stack

From the service directory, run docker compose down --volumes. To remove the stack completely, also remove the device on the Machines page and delete the service directory. It contains the Tailscale state in ./ts/state and the application data. The containers create some of these folders as root, so deleting them may need sudo.

Get help

  • Read the "Troubleshooting" section of the service README, and check the logs with docker compose logs.
  • Ask questions in the Tailscale Discord.
  • Report a problem with a stack in a GitHub issue.

Tailscale Serve and Funnel

Tailscale Serve routes traffic from other devices in your Tailnet to a service on one device. Tailscale Funnel routes traffic from the public internet to that service, so people without Tailscale can reach it.

Stacks that use Serve keep Funnel off ("AllowFunnel":{"$${TS_CERT_DOMAIN}:443":false} in compose.yaml), so they are reachable from your Tailnet only. Umami has an opt-in public mode; see its README.

To make a service reachable from the internet:

  1. Add funnel to nodeAttrs in your Tailnet policy file for the device, as described in Tailscale Funnel.
  2. In compose.yaml, change false to true in the AllowFunnel line.
  3. Recreate the stack with docker compose up -d --force-recreate.

Funnel is in beta and listens only on ports 443, 8443, and 10000. It requires MagicDNS and HTTPS certificates, as in the Quick Start. Anyone on the internet can then reach the application, so turn on its login first.

Diagram of Tailscale Funnel: a client on the public internet reaches a controlled gateway, which exposes one service in the Tailnet, while private services get no access.

Diagram of Tailscale Serve: a Tailnet node reaches a lightweight web service through Serve with private access only. Funnel, shown separately, is the only part that publishes a service to the public internet.

Documentation

In this repository:

From Tailscale:

Contributors

Thank you to everyone who has contributed to ScaleTail.

ScaleTail contributors

Made with contrib.rocks.

Contributing

To add or update a service, follow CONTRIBUTING.md and start from the service template.

Star history

Star History Chart

License

MIT

About

Ready-to-run Docker Compose stacks for 120+ self-hosted apps, each with a Tailscale sidecar and automatic HTTPS

Topics

Resources

Code of conduct

Contributing

Stars

2.1k stars

Watchers

12 watching

Forks

Used by

Contributors

Languages