My wife and I have a mobile group/shared bot system where we can make mini apps and collab.
Anything from baby stuff, groceries, shopping, planning, wine tracker app, simple/fun/useful data things, etc…
We have Tailscale on our phones and can instantly and privately see without deployment or anything crazy via our secure VPN.
Think shared Claude Artifacts that don’t live @ Anthropic.
Tried to first do this with Cloudflare Tunnels (because I love Cloudflare), but between the broken dashboard side of Zero Trust and nightmare of Warp… it was basically impossible to setup. I guess that’s all super enterprise, which seems to be very anti-Cloudflare philosophically to not be able to self do things.
Will check out Quick Tunnels but I think it’s missing the bigger integration offerings Tailscale has/does still.
Only reason I have it (cloud flare tunnels) setup for personal use is because I had to do it for work years ago and yeah, Enterprise(tm) is a good description, haven't touched it in years so when it breaks I'll likely use something else.
Getting it to do what I wanted with a traefik front router with cloudflared talking to arbitrary subdomain that is spun up and broadcast from the other project side was very painful in a "this could be more friendly" way.
It has been truly bulletproof though since then so that's almost enough to make me go reread all the docs.
Us too, consider using your bots to migrate your tailnet to headscale. Daily driving Headscale + Headplane + Tailscale’s graciously provided/compatible native apps makes me feel like my devices are truly under my control.
If only headscale supported tailnet lock and multiple control servers. They consider both features "enterprise" even though the former is arguably a bare minimum and the latter nice even for home users in the event their lab gets taken offline.
I’m not GP, but run something that’s pretty close to GPs description. It’s been a fun journey to set up.
The core is chat+audio/video call server running locally on my m3 Mac Studio. Centrifugo has handled the chat concerns very well. LiveKit was a really nice foundation for video and audio calls. There are a few different options for local STT if you want that.
I used RN via expo for the client and have my friends and family on TestFlight as beta testers. Utility over polish.
With messages and call transcripts on my own box, I can prompt Claude code or Codex to operate on any message or transcript content. And follow up in chat with a message. I do most of that from Claude or ChatGPT mobile apps via remote control to my sessions running in the box.
From there, if I give enough of a specc, anything that happens in chat or call transcripts can become an additional custom workspace in the main app. I think GP calls these mini apps. But they’re essentially rich clients under the main app umbrella. There’s other details, but yeah it’s a strange new world. Check my profile and reach out directly if you want.
Not OP- I think there’s been some cool solutions popping up around hosting personal apps. On the front page this week was Capsule (<a href="https://withcapsule.app/" rel="nofollow">https://withcapsule.app/). My personal solution is Exhibit (<a href="https://github.com/momja/Exhibit" rel="nofollow">https://github.com/momja/Exhibit) which also has the goal of being a self-hostable artifact store.
I’ve been building something similar with [Homestead](<a href="https://myhomestead.dev" rel="nofollow">https://myhomestead.dev). It’s my OSS solution for building mini apps. Each mini app is a Resct frontend and the backend (storage, auth, MCP, API, etc) just comes for free.
I have my own solution here that also works for sharing stuff with clients with configurable whitelists at artifacts.iofold.com (also open-source for self hosting on cf workers for almost free, github linked on the homepage)
I run something similar, and in my system an app artifact is typically just a rich react component in a React Native client. They usually start as prototypes in chat, similar to what the labs provide in their native apps. If I or someone else in my user group wants more depth than a chat widget, then the artifacts can grow into a “workspace”. Oddly enough my richest workspaces have most been for entertainment. DnD, MtG deck building, HN comment thread parsing. And system management. Intrusion detection, feature life cycle/LLM handoff management, call telemetry. I do have a workspace for public county permit lookup which has been handy too. Reach out and I can share more.
Tailscale is truly a cheat code. I have a web app that I run locally to control terminals on my Mac. I access the website on my phone using the 100.xx IP address and can code on the go. No need for a Mac or iOS app.
You can also use Tailscale serve to get a HTTPS url like Cloudflared but it's only visible to your tailnet. Be careful using Cloudflare tunnels because they are public and bots start poking around immediately.
Tailscale funnel works well but you can only have 1 per Tailscale instance (1 per machine) at the https endpoint so if you want to have a few apps, the others will go on non-https, custom-port URLs.
You can set up paths that route to different local ports. As long as your apps don't need to live at the root path you can have as many as you like. And you can still have something on the root path as long as it doesn't need the subpath.
Here's `tailscale funnel status` on my machine:
I have multiple funnels running at once. I just put a tailscale container into my compose stack and that way each compose stack gets its own tailscale instance and thus its own funnel. Happy to share the setup if at all interested.
Alternatively, Netbird has been a dream to use over the last half year or so. I think their server software has had some hiccups on new releases, but I stagger those updates anyways. All self hosted, similar concept to Tailscale, very good management UI baked into the self hosted product.
Netbird's great. I've been using Pangolin (<a href="https://pangolin.net/">https://pangolin.net/) lately for my homelab. It's very similar in functionality to Netbird, but I like the UX of it better.
Also a very good alternative. I went on a spree and tried out all of the self hostable alternatives and this was definitely a runner up to netbird. The self hosted tailscale is also good, just not as polished as these two projects are.
I switched from Tailscale to Netbird purely because of Tailscale's bizarre pricing tiers - I wanted just the SSH features, with multiple users, but the paid tier up from free didn't include the SSH features.
I think Tailscale would've fit my needs perfectly fine, but the management makes access control and grouping dead simple in netbird. It also generates a nice little map of your peers, their groups, and connected nodes etc. Quick visual on your topology.
For those who use Netbird or Pangolin, I'm trying to understand where it would come in handy over my Wireguard-Easy setup with my phone & laptops configured to connect to my Wireguard network externally.
Is this primarily for multi-user scenarios or complex setups?
Both support multi-user setups with SSO or built-in auth.
Beyond that, compared to a typical hub-and-spoke WireGuard setup, the main advantage is peer-to-peer connectivity. Clients connect directly to each other when possible, which lowers latency by bypassing a central relay.
AFAIK, they also have different origins:
Pangolin started as an internet-facing reverse proxy (Traefik) combined with a WireGuard server for backend nodes. It has gradually added VPN-like features, including client device access and an internal HTTPS proxy similar to Tailscale Serve.
NetBird is a self-hostable Tailscale alternative that started as a mesh VPN focused on P2P traffic. It recently added its own reverse proxy features (Traefik-based, coincidentally), also similar to Tailscale Serve.
Pangolin is centered on endpoint and ingress management, while NetBird focuses on mesh networking, though their feature sets are increasingly converging.
No, it’s not. It handles the keys, provisioning, DNS, NAT traversal, and a bunch of other stuff. WireGuard is a great technology - Tailscale is like a usability layer on top of it.
Wireguard is great for a point-to-point or multipoint VPN set up by a competent network administrator between machines with static addresses. But that's the only thing it does. It does not handle authentication or mobility very well.
I have the same experience and I once found a GitHub issue about it. I don’t think it sounded like they planned to fix it anytime soon. I just added the Tailscale toggle button to my phone’s quick control panel and turn it on whenever I want to check all my syncthing nodes or something. I keep meaning to see if I can script up something with Shortcuts to make it turn back off automatically.
Were you using an exit node? Because that really does hammer the battery, but vanilla TS without a bunch of traffic doesn't seem to do much to mine.
The only always-on TS service on my phone is Immich for photo backup, and I don't take enough photos for that to matter much.
My endpoint is a pretty stable (though technically dynamic) IPv4 on one end, but the other might be a cell phone with CGNAT, some random WiFi, blah blah etc. TS does that. If you don't want to use it, cool. Don't. I'm willing to make the tradeoffs to use TS for now. That could change in the future.
No but hole punching isn't really needed in that scenario. Open a port on the IPv4 side + dyanmic DNS. More than likely that is what tailscale is doing for you. Opening a port on that end w/UPnP. But can't argue with how simple it is with tailscale.
Does this work with remote agents though? I want my claude.ai agents running on my phone to be able to hit my local MCPs on my Mac Mini - my understanding is that tailscale wouldn't work because the execution is being called remotely. But seems like these tunnels would support that.
if both your mac mini and your phone are on the same tailnet, can't you just ssh to your mac mini from your phone's terminal emulator and have claude code/codex run on it?
I just use /remote-control. You can't do everything from remote but it's was easier just opening the Claude app than using ssh. And I don't need to be on my tailnet either.
If by local MCP you mean stdio, then a tailnet won't help you unless you proxy the local MCP using something like mcp-proxy: <a href="https://github.com/sparfenyuk/mcp-proxy" rel="nofollow">https://github.com/sparfenyuk/mcp-proxy . That local mcp is only exposed to apps on the machine.
The flow is Phone client --> agent harness or whatev --> Tailnet --> Mac Mini --> mcp-proxy http listener --> local mcp. But you need to wrap the local mcp runner in the proxy (check the docs).
EDIT you don't mean running on your actual phone lol, you mean in the web browser at Claude.ai. Anyway, if you use mcp-proxy for a stdio mcp, or if it's an http mcp alone, then you would need a public endpoint for Claude.ai to connect to. Tailscale will only help you if you use Funnel, but this cloudflare thing is exactly what you need (w/o Tailscale).
> it’s missing the bigger integration offerings Tailscale has/does still.
Until I had tailscale serve generating valid certs, I had a good reason to use Cloudflare tunnels.
But in general I don't want to put everything on the internet side of things.
Mostly, I don't want something open, but more like a "share with" for people who are in the same office (virtually over tailnet, not physically on the same LAN).
This still works great for a demo instead of a product pitch, to send an link out to see something.
I'd still use a real host over a laptop for those.
Don't think we had any issues with Warp but Cloudflare APIs are a bit of a mess. Seems like they've cobbled together and then renamed/rearranged things multiple times now and it's a bit hard to keep up.
Terraform has worked decently well especially since there's a few random settings here and there that aren't exposed anywhere in the UI (facepalm)
> Think shared Claude Artifacts that don’t live @ Anthropic.
Shameless plug, I've built a self-hosted capability here with things like live collaboration for humans and agents. There is a native cloudflare deplyoment and integration with Cloudflare Artifacts. PR for tunnel would be appreciated.
I have really enjoyed the experience of OpenZiti for this purpose. Being able to host dark services and impose granular access controls and routing for different clients is a game changer.
For the few services I host that require SSL (eg; WebUSB), I serve the dark service via a standard domain (example.com) so I can still get a LetsEncrypt cert, but public access to that domain resolves to a static page; "Plz connect to OpenZiti & try again". This allows me to have SSL on required dark services without requiring to install a private CA for each client.
I use public dns routed to private Tailscale ips for all my home services. If i want to expose something for friends who don’t use Tailscale I connect a cloudflare tunnel… it’s pretty much a couple clicks and typing in a subdomain name once cloudflared is running on a server… what were you having trouble with?
I would say that I've been doing most of that already with a reverse proxy+SSO/IDP for a very long time. Not the same, but close-enough and open to the "traditional internet" in a manner that does not require my users to install and configure tailscale, which is a massive plus. I do appreciate tailscale for the option to keep my effective host IP address hidden/local, but then I've been having a front on the internet (with a public IP/domain/...) for decades and I don't see a problem continuing.
Sad to read. Do people in China also love CCP and the Great Firewall? I know CF is more than just that MITM proxy as a service but that's their main product.
TIPSIO · · focus · HN ↗
Anything from baby stuff, groceries, shopping, planning, wine tracker app, simple/fun/useful data things, etc…
We have Tailscale on our phones and can instantly and privately see without deployment or anything crazy via our secure VPN.
Think shared Claude Artifacts that don’t live @ Anthropic.
Tried to first do this with Cloudflare Tunnels (because I love Cloudflare), but between the broken dashboard side of Zero Trust and nightmare of Warp… it was basically impossible to setup. I guess that’s all super enterprise, which seems to be very anti-Cloudflare philosophically to not be able to self do things.
Will check out Quick Tunnels but I think it’s missing the bigger integration offerings Tailscale has/does still.
noir_lord · · focus · HN ↗
Getting it to do what I wanted with a traefik front router with cloudflared talking to arbitrary subdomain that is spun up and broadcast from the other project side was very painful in a "this could be more friendly" way.
It has been truly bulletproof though since then so that's almost enough to make me go reread all the docs.
nemosaltat · · focus · HN ↗
DaSHacka · · focus · HN ↗
_blk · · focus · HN ↗
cbsks · · focus · HN ↗
> Anything from baby stuff, groceries, shopping, planning, wine tracker app, simple/fun/useful data things, etc…
Can you elaborate on this? Sounds really cool!
SwamyM · · focus · HN ↗
[deleted] · · focus · HN ↗
[deleted]
U4E4 · · focus · HN ↗
The core is chat+audio/video call server running locally on my m3 Mac Studio. Centrifugo has handled the chat concerns very well. LiveKit was a really nice foundation for video and audio calls. There are a few different options for local STT if you want that.
I used RN via expo for the client and have my friends and family on TestFlight as beta testers. Utility over polish.
With messages and call transcripts on my own box, I can prompt Claude code or Codex to operate on any message or transcript content. And follow up in chat with a message. I do most of that from Claude or ChatGPT mobile apps via remote control to my sessions running in the box.
From there, if I give enough of a specc, anything that happens in chat or call transcripts can become an additional custom workspace in the main app. I think GP calls these mini apps. But they’re essentially rich clients under the main app umbrella. There’s other details, but yeah it’s a strange new world. Check my profile and reach out directly if you want.
dizzard · · focus · HN ↗
rambleraptor · · focus · HN ↗
ilusion · · focus · HN ↗
FridayCuriousit · · focus · HN ↗
U4E4 · · focus · HN ↗
theturtletalks · · focus · HN ↗
You can also use Tailscale serve to get a HTTPS url like Cloudflared but it's only visible to your tailnet. Be careful using Cloudflare tunnels because they are public and bots start poking around immediately.
SparkyMcUnicorn · · focus · HN ↗
For public access, similar to these cloudflare tunnels, there's Tailscale Funnel.
<a href="https://tailscale.com/docs/features/tailscale-funnel" rel="nofollow">https://tailscale.com/docs/features/tailscale-funnel
nacs · · focus · HN ↗
[deleted] · · focus · HN ↗
[deleted]
fragmede · · focus · HN ↗
[dead]
MattCruikshank · · focus · HN ↗
The CLI doesn't let you do as much as the go library does.
bakkoting · · focus · HN ↗
Here's `tailscale funnel status` on my machine:
Natfan · · focus · HN ↗
[0]: <a href="https://tailscale.com/blog/docker-tailscale-guide" rel="nofollow">https://tailscale.com/blog/docker-tailscale-guide
justinc8687 · · focus · HN ↗
havnagiggle · · focus · HN ↗
0x1ch · · focus · HN ↗
garettmd · · focus · HN ↗
0x1ch · · focus · HN ↗
nickspacek · · focus · HN ↗
BOOSTERHIDROGEN · · focus · HN ↗
drcongo · · focus · HN ↗
0x1ch · · focus · HN ↗
allthetime · · focus · HN ↗
drcongo · · focus · HN ↗
drakenot · · focus · HN ↗
Is this primarily for multi-user scenarios or complex setups?
usagisushi · · focus · HN ↗
Beyond that, compared to a typical hub-and-spoke WireGuard setup, the main advantage is peer-to-peer connectivity. Clients connect directly to each other when possible, which lowers latency by bypassing a central relay.
AFAIK, they also have different origins:
Pangolin started as an internet-facing reverse proxy (Traefik) combined with a WireGuard server for backend nodes. It has gradually added VPN-like features, including client device access and an internal HTTPS proxy similar to Tailscale Serve.
NetBird is a self-hostable Tailscale alternative that started as a mesh VPN focused on P2P traffic. It recently added its own reverse proxy features (Traefik-based, coincidentally), also similar to Tailscale Serve.
Pangolin is centered on endpoint and ingress management, while NetBird focuses on mesh networking, though their feature sets are increasingly converging.
_user_account · · focus · HN ↗
herpdyderp · · focus · HN ↗
titularcomment · · focus · HN ↗
matthewmacleod · · focus · HN ↗
pocksuppet · · focus · HN ↗
jallmann · · focus · HN ↗
dlopes7 · · focus · HN ↗
girvo · · focus · HN ↗
tenuousemphasis · · focus · HN ↗
eloisius · · focus · HN ↗
devilbunny · · focus · HN ↗
The only always-on TS service on my phone is Immich for photo backup, and I don't take enough photos for that to matter much.
aborsy · · focus · HN ↗
devilbunny · · focus · HN ↗
My endpoint is a pretty stable (though technically dynamic) IPv4 on one end, but the other might be a cell phone with CGNAT, some random WiFi, blah blah etc. TS does that. If you don't want to use it, cool. Don't. I'm willing to make the tradeoffs to use TS for now. That could change in the future.
yesb · · focus · HN ↗
devilbunny · · focus · HN ↗
EDIT:good call, though.
girvo · · focus · HN ↗
prtmnth · · focus · HN ↗
timwis · · focus · HN ↗
peter_retief · · focus · HN ↗
layerv-ai · · focus · HN ↗
[dead]
roberttod · · focus · HN ↗
parthdesai · · focus · HN ↗
wildzzz · · focus · HN ↗
threecheese · · focus · HN ↗
EDIT you don't mean running on your actual phone lol, you mean in the web browser at Claude.ai. Anyway, if you use mcp-proxy for a stdio mcp, or if it's an http mcp alone, then you would need a public endpoint for Claude.ai to connect to. Tailscale will only help you if you use Funnel, but this cloudflare thing is exactly what you need (w/o Tailscale).
dalberto · · focus · HN ↗
<a href="https://github.com/dalberto/mcp-ferry" rel="nofollow">https://github.com/dalberto/mcp-ferry
I also use CF managed auth to make auth easier.
gopalv · · focus · HN ↗
Until I had tailscale serve generating valid certs, I had a good reason to use Cloudflare tunnels.
But in general I don't want to put everything on the internet side of things.
Mostly, I don't want something open, but more like a "share with" for people who are in the same office (virtually over tailnet, not physically on the same LAN).
This still works great for a demo instead of a product pitch, to send an link out to see something.
I'd still use a real host over a laptop for those.
unixhero · · focus · HN ↗
nijave · · focus · HN ↗
Terraform has worked decently well especially since there's a few random settings here and there that aren't exposed anywhere in the UI (facepalm)
ramoz · · focus · HN ↗
Shameless plug, I've built a self-hosted capability here with things like live collaboration for humans and agents. There is a native cloudflare deplyoment and integration with Cloudflare Artifacts. PR for tunnel would be appreciated.
<a href="https://github.com/plannotator/artifact-server" rel="nofollow">https://github.com/plannotator/artifact-server
gibs0ns · · focus · HN ↗
For the few services I host that require SSL (eg; WebUSB), I serve the dark service via a standard domain (example.com) so I can still get a LetsEncrypt cert, but public access to that domain resolves to a static page; "Plz connect to OpenZiti & try again". This allows me to have SSL on required dark services without requiring to install a private CA for each client.
allthetime · · focus · HN ↗
pruneau · · focus · HN ↗
fr2029 · · focus · HN ↗
[dead]
ezst · · focus · HN ↗
pbreit · · focus · HN ↗
epolanski · · focus · HN ↗
neop1x · · focus · HN ↗
Sad to read. Do people in China also love CCP and the Great Firewall? I know CF is more than just that MITM proxy as a service but that's their main product.