Skip to content

Releases: mickey/tailhome

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 07:17

A theme button and a new icon.

  • Pick light or dark without changing your system. The button after "add" cycles auto, light and dark. Auto follows your system, as before. The choice stays in your browser, so everyone who opens a shared home/ keeps their own.
  • The house icon is gone. The new one, four tiles with one lit, says start page rather than smart home, and keeps its shape on a black home screen. If you added tailhome to a home screen, remove it and add it again to get the new icon.

No configuration changes.
To upgrade, pull ghcr.io/mickey/tailhome:0.7.1 or download a binary below.

Changelog

  • 6ec4c4a Add a theme button to the page header
  • 6365da1 Show both themes and the agent loop in the README
  • 75da77f Replace the house icon with a launcher grid

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 23:29

tailhome now lists what your coding agents build. An agent publishes a preview with tailscale serve, and it shows up at the top of home/ with the title and description the agent chose.

  • Ask your agent "can I see this on my phone?" and get a working link. The new tailnet-preview skill lets Claude Code, Codex, omp and other agents publish a preview, write its card, check the link and later remove only what they created. It works without tailhome too. See the README for installation.
  • Agents usually publish previews on ports other than 443, which tailhome never looked at. Set TAILHOME_PREVIEW_PORTS=8443-8452, the range the skill uses, and those previews appear in home/ on their own, next to your apps, so you can open them from any device without copying links. The setting is empty by default, so nothing changes until you set it.
  • Previews say what they are. An app can serve a small JSON card at /.well-known/tailhome.json with a title, description and icon, so its tile reads "Short hero" with "One call to action" under it, instead of "Devbox :8443". Versions in the same set share one heading with A, B and C badges, so you can compare them side by side.
  • Routine checks on previews are TLS handshakes rather than HTTP requests, so tailhome does not show up in your app's logs or reset a preview tool's idle timer on every refresh. A preview that stops answering is hidden, then comes back on its own.
  • Short links reach previews too: /go/devbox:8443 opens one. A shortcut that matches nothing now shows a short page instead of a bare error.

Changes to watch for:

  • Even with no preview ports, tailhome now requests /.well-known/tailhome.json on port 443 when it first finds a device app, when the app comes back, and on manual refresh. Apps without a card answer 404 or their usual page, and tailhome ignores both.
  • /api/services.json gains a previews list. Entries in both JSON endpoints gain temporary, set, version, check and unverified, and previews come first in list.json. The "Unverified HTTPS" note moved from description to unverified.
  • If a device-list refresh fails, the page keeps the last list and shows the error, instead of dropping devices.

To upgrade, pull ghcr.io/mickey/tailhome:0.7.0 or download a binary below.

Changelog

  • b0d798c Document previews and the skill
  • b20fe8e Add the tailnet-preview skill for coding agents
  • ef05505 List previews from preview ports and preview cards

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 27 Oct 13:21

The add panel now starts with the simplest way to publish an app.

  • One command for one app. For an app on another port, such as nas:8080, the panel and docs now show tailscale serve --bg --https=443 8080. Run it on the device: Tailscale serves the app at the device's HTTPS address and tailhome lists it on the next refresh, with no tag, Service or approval needed.
  • Simplest path first. The panel goes from one app on a device, to several apps with one Service each, to DockTail, to apps that already have their own device.
  • Shorter address for other devices. "Open on another device" shows http://home/ first, with the full address as a fallback.
  • Clearer docs. A new "App on another port" section in docs/apps.md covers renaming the tile, several apps on one device, and which names become public through HTTPS certificates.

No configuration changes.
To upgrade, pull ghcr.io/mickey/tailhome:0.6.3 or download a binary below.

Changelog

  • b3826f9 Lead the add panel with tailscale serve on one device

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 26 Oct 22:21

Other websites can no longer trigger a refresh through your browser.

  • Refresh by POST. Since v0.6.0, a refresh also probes every device of your tailnet. Any website could trigger one by loading http://home/?refresh in a visitor's browser. The refresh button now sends a POST to /refresh, and tailhome rejects browser requests that come from another site, including other apps on your tailnet.

No configuration changes. If you scripted /?refresh, send POST /refresh instead.
To upgrade, pull ghcr.io/mickey/tailhome:0.6.2 or download a binary below.

Changelog

  • 6545072 Protect manual refresh from cross-site browser requests
  • 3272678 Shorten the icons privacy line again

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 21:46

Fixes and privacy improvements after the v0.6.0 launch review.

  • Copying .env.example no longer turns on OAuth. Its placeholder client ID and secret were active, so a .env copied to set the new device options made tailhome exit. Both lines are now commented out.
  • tailhome names itself in app logs. Health checks, device probes and the icon list download send User-Agent: tailhome/<version> (+https://github.com/mickey/tailhome) instead of Go's default.
  • Icon requests no longer reveal your tailnet name. The page sets Referrer-Policy: same-origin, so jsDelivr sees icon names but not home.<tailnet>.ts.net. It also sets X-Content-Type-Options: nosniff.
  • Clearer docs. The README states exactly what device discovery sends and how to limit it, troubleshooting covers invalid OAuth credentials, and the setup issue form asks about device apps.

No configuration changes. To upgrade, pull ghcr.io/mickey/tailhome:0.6.1 or download a binary below.

Changelog

  • 8f4a805 Fix docs found in review
  • 8178434 Tidy the User-Agent and header code after review
  • 1ff4d88 Describe the optional svc: prefix the same way everywhere
  • 6146dc1 Cover device apps in the setup issue form
  • b43839a Say exactly what device discovery sends
  • 73f1b96 Say tailhome keeps no separate app list
  • 4bee5b9 Keep the tailnet name out of icon requests
  • 1567317 Name tailhome in the User-Agent of its requests
  • 9997796 Keep OAuth off when .env.example is copied

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 21:00

tailhome now lists apps that run on their own tailnet device, next to your Tailscale Services.

  • Device apps. A device of your tailnet that answers HTTPS on port 443 with a valid certificate gets a tile, such as an app published by TSDProxy v2, tsbridge, ScaleTail or tailscale serve on the device. Tiles join your groups like Services; the tooltip says "device".
  • Own certificates. A NAS or router with its own certificate appears once you tag it and list the tag in TAILHOME_DEVICE_INSECURE_TLS_TAGS. Its tile says "Unverified HTTPS". Until then, the log names it once.
  • Apps group. The default group is now "Apps" instead of "Services".
  • Docs. A shorter README, and setup, discovery, customization and troubleshooting in docs/.

New tiles may appear after you upgrade. To try only some devices, set TAILHOME_DEVICE_TAGS=tag:app; to turn discovery off, set TAILHOME_DEVICES=off; to hide one tile, set hidden: true in overrides. JSON entries gain a source field (service or device).

To upgrade, pull ghcr.io/mickey/tailhome:0.6.0 or download a binary below.

Changelog

  • 4e7ab20 Rewrite the README and move reference into docs
  • df73f73 List apps that run on their own tailnet device

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 09:11

Add apps from the page, get better icons, and open tiles from the address bar.

  • Add an app. Select add at the top right to see the DockTail labels and the tailscale serve command that publish an app as a Service, and this page's address for your other devices. An empty page shows the same steps.
  • Icons. Names such as immich-server and homeassistant now get their app's icon. A name with no icon shows its first letter.
  • Shortcuts. Type home/go/jellyfin in the address bar to open the Jellyfin tile.
  • Docs. The README explains how tailhome pairs with DockTail and how to recover from an expired node key.

To upgrade, pull ghcr.io/mickey/tailhome:0.5.0 or download a binary below. No configuration changes.

Changelog

  • e4cc3eb Use the tag message as the release notes
  • a4b6d4c Explain how to recover from an expired node key
  • a5b1235 Add /go/ shortcuts for exact Service names
  • 2067061 Match Service names to available icons
  • 47f5c06 Add app setup help and an empty state
  • b767587 Explain how tailhome pairs with DockTail

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 15:43

Changelog

  • 28ec654 Add a web app manifest for the home screen
  • ee37a0e Build the image from one Dockerfile
  • 9837348 Fix stale and drifted docs
  • 7049bc0 Simplify URL checks and page embedding

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 10:50

Changelog

  • f3a8449 Ignore local tool folders
  • 8073f25 Improve contrast and screen reader labels
  • 65b93a4 Copy a connection string for non-web Services
  • 3020348 Add /api/list.json and Homepage and Glance recipes
  • af8199d Refresh the README screenshots

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 21 Oct 11:04

Changelog

  • c0e987a Build with Go 1.27.3, add a favicon and document page notices
  • bef46bf Show setup guidance when the page lists no Services
  • 106ed69 Add a setup issue form and link Discussions
  • 2100553 Reorder the README and keep overrides in ./config