Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Offical apps | Community apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Community Packages
  3. Headscale – self-hosted Tailscale control server with Cloudron SSO and a built-in DERP relay

Headscale – self-hosted Tailscale control server with Cloudron SSO and a built-in DERP relay

Scheduled Pinned Locked Moved Community Packages
1 Posts 1 Posters 39 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • marcusquinnM
    marcusquinnM
    marcusquinn
    CA Maintainer Super Fan
    wrote last edited by
    #1

    I've packaged Headscale, the open-source, self-hosted Tailscale control server, as a community app. Your devices keep using the official Tailscale apps (Linux, macOS, Windows, iOS, Android), but join a private WireGuard mesh coordinated by your Cloudron instead of Tailscale's hosted service.

    Headscale on Cloudron

    Install: add this catalog under Settings → Community apps, then install Headscale from the App Store:

    https://raw.githubusercontent.com/marcusquinn/cloudron-headscale-app/main/CloudronVersions.json
    

    or cloudron install --versions-url <that URL> --location headscale.example.com.

    What fits in with Cloudron

    • Single sign-on: tailscale up --login-server https://headscale.example.com opens a Cloudron login. The app's access control decides who can add devices, and Headscale creates a user for each person on first sign-in.
    • Pre-auth keys for servers and headless devices, created with the headscale CLI in the app's Terminal.
    • One HTTPS domain carries the control protocol, Noise and the embedded DERP relay through Cloudron's reverse proxy. The only extra port is STUN on UDP 3480 by default (3478 is Cloudron's TURN port, and the NetBird package's optional STUN port defaults to 3479).
    • Backups: the SQLite database, server keys and config.yaml live in /app/data, so a restore brings back the same server identity and enrolled devices keep working.

    Good to know

    • Headscale has no web interface. You manage users, devices, routes and exit nodes with headscale in the Terminal; the README has the common commands.
    • A sign-in link only works while tailscale up is still waiting, and Headscale replaces it every 15 minutes. If you see "Gone: Your session has expired", run tailscale up again.
    • Devices connect directly where they can and fall back to the embedded relay. Tailscale's public relays stay in the config as a second fallback; you can remove them to rely only on your server. Disabling the STUN port disables the embedded relay.
    • config.yaml is yours to edit (DNS, ACL policy, relays). The package reapplies only the keys it owns: server URL, listeners, the relay switch and the SSO block.
    • The image uses the checksum-verified upstream release binary on a digest-pinned Cloudron base image. Images and the catalog carry GitHub build provenance.

    Tested on Cloudron 9.1 with Tailscale 1.104.1 clients: enrolment by SSO and pre-auth key, direct connections, relay-only connections through the embedded DERP server, restart, backup and restore, and an update between builds.

    Links

    • Package, setup guide and issues: https://github.com/marcusquinn/cloudron-headscale-app
    • Headscale docs: https://headscale.net/stable/

    This is a first release, so feedback is welcome, especially from people running it with many devices, subnet routers or exit nodes. I maintain the package independently of the Headscale project and I'm not affiliated with Tailscale Inc.; please report packaging problems on the package repo rather than upstream.

    Web Design & Development: https://www.evergreen.je
    Technology & Apps: https://www.marcusquinn.com

    1 Reply Last reply
    2
    • marcusquinnM marcusquinn referenced this topic
    • marcusquinnM marcusquinn referenced this topic
    • marcusquinnM marcusquinn referenced this topic

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Bookmarks
    • Search