frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

ChatGPT Developer Mode: Full MCP client access

https://platform.openai.com/docs/guides/developer-mode
269•meetpateltech•4h ago•137 comments

Show HN: Term.everything – Run any GUI app in the terminal

https://github.com/mmulet/term.everything
459•mmulet•1d ago•62 comments

Defeating Nondeterminism in LLM Inference

https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/
103•jxmorris12•3h ago•36 comments

Show HN: Haystack – Review pull requests like you wrote them yourself

https://haystackeditor.com
31•akshaysg•2h ago•10 comments

Launch HN: Recall.ai (YC W20) – API for meeting recordings and transcripts

35•davidgu•4h ago•17 comments

The HackberryPi CM5 handheld computer

https://github.com/ZitaoTech/HackberryPiCM5
93•kristianpaul•2d ago•25 comments

OrioleDB Patent: now freely available to the Postgres community

https://supabase.com/blog/orioledb-patent-free
319•tosh•9h ago•109 comments

I didn't bring my son to a museum to look at screens

https://sethpurcell.com/writing/screens-in-museums/
550•arch_deluxe•4h ago•211 comments

Dotter: Dotfile manager and templater written in Rust

https://github.com/SuperCuber/dotter
16•nateb2022•1h ago•3 comments

UGMM-NN: Univariate Gaussian Mixture Model Neural Network

https://arxiv.org/abs/2509.07569
12•zakeria•1h ago•1 comments

Harvey Mudd Miniature Machine

https://www.cs.hmc.edu/~cs5grad/cs5/hmmm/documentation/documentation.html
23•nill0•2d ago•7 comments

'Clearest sign' yet of ancient life on Mars

https://www.nature.com/articles/s41586-025-09413-0
45•stevenjgarner•56m ago•4 comments

Bild AI (YC W25) Is Hiring

https://www.ycombinator.com/companies/bild-ai/jobs/m2ilR5L-founding-engineer-applied-ai
1•rooppal•3h ago

Jiratui – A Textual UI for interacting with Atlassian Jira from your shell

https://jiratui.sh/
67•gjvc•5h ago•22 comments

The origin story of merge queues

https://mergify.com/blog/the-origin-story-of-merge-queues
59•jd__•4h ago•18 comments

Clojure's Solutions to the Expression Problem

https://www.infoq.com/presentations/Clojure-Expression-Problem/
7•adityaathalye•3d ago•0 comments

Show HN: TailGuard – Bridge your WireGuard router into Tailscale via a container

https://github.com/juhovh/tailguard
69•juhovh•16h ago•21 comments

Kerberoasting

https://blog.cryptographyengineering.com/2025/09/10/kerberoasting/
124•feross•8h ago•42 comments

Zoox robotaxi launches in Las Vegas

https://zoox.com/journal/las-vegas
132•krschultz•5h ago•173 comments

Anthropic Services Down

https://status.anthropic.com/incidents/k6gkm2b8cjk9
139•rob•4h ago•68 comments

TikTok has turned culture into a feedback loop of impulse and machine learning

https://www.thenexus.media/tiktok-won-now-everything-is-60-seconds/
215•natalie3p•4h ago•164 comments

Insufficiently sanitized data allows unauthenticated access to FreePBX Admin

https://labs.watchtowr.com/you-already-have-our-personal-data-take-our-phone-calls-too-freepbx-cv...
38•Tiberium•2h ago•6 comments

Distributing your own scripts via Homebrew

https://justin.searls.co/posts/how-to-distribute-your-own-scripts-via-homebrew/
47•ingve•2d ago•7 comments

We can’t circumvent the work needed to train our minds

https://zettelkasten.de/posts/the-scam-called-you-dont-have-to-remember-anything/
278•maksimur•6h ago•136 comments

Tarsnap is cozy

https://til.andrew-quinn.me/posts/tarsnap-is-cozy/
69•hiAndrewQuinn•8h ago•53 comments

Delphi 13 Florence Released

https://blogs.embarcadero.com/announcing-the-availability-of-rad-studio-13-florence/
44•andsoitis•2h ago•19 comments

Semantic Line Breaks (2017)

https://sembr.org
62•Bogdanp•3d ago•44 comments

Rayhunter: IMSI Catchers We Have Found So Far

https://www.eff.org/deeplinks/2025/09/rayhunter-what-we-have-found-so-far
42•cooperq•1h ago•3 comments

Things you can do with a debugger but not with print debugging

https://mahesh-hegde.github.io/posts/what_debugger_can/
169•never_inline•3d ago•178 comments

Charlie Kirk shot at event in Utah

https://www.nbcnews.com/news/us-news/live-blog/live-updates-shooting-charlie-kirk-event-utah-rcna...
158•david927•1h ago•236 comments
Open in hackernews

Show HN: TailGuard – Bridge your WireGuard router into Tailscale via a container

https://github.com/juhovh/tailguard
68•juhovh•16h ago
My elderly parents are behind a 5G connection in rural areas, and I help them manage their network from overseas. I found a reasonably priced 5G router that can do external antennas required for it to work, but the only reasonable ways to get access to it is either through OpenVPN or WireGuard, the latter of which is much more lightweight and preferred with the memory constraints of the device.

The problem with WireGuard is that it requires handling key management oneself, and configuring the keys to every device you want to access it from. It also doesn't play nicely together with other VPNs, meaning I ended up connecting and disconnecting VPNs whenever I wanted to use them. This is especially evident on my phone, which only allows one VPN app at a time.

I was already using Tailscale as an easy way to handle homelab access with SSO, even if some computers are behind ISP CGNAT, and came up with this idea of spinning up a Docker container to connect the two. I found some suggestions for it online, but nothing ready to use. It ended up being more work than I expected to fine tune the routing, IPv6, firewall settings, re-resolving the DNS of the router on IP address changes etc.

I got it very stable eventually though, and wanted to share with everyone else. I think it's cool to have the WireGuard router looking like any other Tailscale node in my tailnet now.

Comments

notadeveloper•5h ago
What about the Subnet Router functionality that Tailscale has?
salviati•4h ago
I had a very similar problem to the one OP was facing, and I solved it by connecting my fenced router (a router with no fixed public IP) via Wireguard to one machine in my tailscale network, and set up subnet routers so I can access it from any machine in my tailscale.

It works great.

I might misunderstand, but to me it looks like the solution in this post might be better than my setup because if that single node is down I won't be able to reach the fenced router.

juhovh•4h ago
Cool, this sounds like a very similar setup actually!

Even in this case, you still need to have a node somewhere to run the container and store the WireGuard keys, to be able to link the tailnet and the WireGuard endpoint. So that single point of failure still unfortunately remains.

The benefit of having it all configured in a single container means it's pretty easy to spin up anywhere (where the fenced router is accessible), all you need is the tunnel config file.

I also wanted to make sure it works for both IPv4 and IPv6 connections, because many ISPs in my area are starting to only give public IPv6 addresses. That way as long as the WireGuard router has IPv6 and the node running the container has IPv4/IPv6 dual stack, one can still access the Wireguard from an IPv4 only device.

juhovh•4h ago
This is using the subnet router functionality of Tailscale. However, instead of advertising subnets of the local physical network, as explained in the Tailscale docs, it's automatically parsing the given WireGuard config and advertising the subnets at the other end of the WireGuard tunnel.

It will also by default route traffic to the already advertised other subnets in the tailnet, but taking that into use requires a bit of manual configuration on the other end of the WireGuard tunnel. Each subnet needs to be routed through the WireGuard tunnel first to make it work.

benley•3h ago
Interesting - this could actually be good functionality to add to tailscale-manager (https://github.com/singlestore-labs/tailscale-manager), which currently just handles AWS prefix lists and DNS lookups.
juhovh•2h ago
Thank you, wasn't aware of this project, but it makes total sense!

Managing the advertised subnets manually is a bit of a pain, while the downsides of accidentally advertising a subnet are negligible, since you still have full control over them in the Tailscale console.

jasonriddle•4h ago
So, it looks like this might work with fly.io?

fly.io provides a way to connect to their servers via wireguard (https://fly.io/docs/blueprints/connect-private-network-wireg...), and so tailguard could connect to their wireguard instance?

juhovh•4h ago
Not super familiar with fly.io, but with a quick look at that page it should work just fine.

Just instead of dropping that camellia.conf to the WireGuard MacOS client or Linux wg-quick, spin up the TailGuard container somewhere (pretty much anywhere, but with good ping to fly.io). That way you should have the fly.io private network accessible in your Tailscale tailnet, it runs wg-quick internally alongside Tailscale anyway, just with a bit of scripting to automatically configure the network and the firewall to avoid connections leaking.

If it doesn't work, feel free to raise an issue and I can have a look.

oe•3h ago
Which 5G router do you use?
juhovh•3h ago
The one they ended up using was TP-Link Deco X50-5G, but honestly I'm not sure if I can fully recommend that. It has had its own share of problems...
toomuchtodo•2h ago
I recommend Glinet's mobile routers: https://www.gl-inet.com/products/

I have several of them in a cross Atlantic Wireguard mesh, and they are bulletproof.

juhovh•2h ago
I actually use the non-mobile Flint 2 myself at home, and it's one of the devices in my tailnet. I worked with their engineers on the forums to get better IPv6 support for their WireGuard tunnels. Running both Tailscale and WireGuard on it can mess up the routing at times though, so I prefer to stick to just either or.

It's a bit unfortunate they decided to go with Broadcom for their Flint 3 router, since Broadcom is known to not play well with open source. One of the reasons I got Flint 2 was its Mediatek chip, since stock OpenWRT support for that should get reasonably good eventually. They're all still way more open than TP-Link Decos.

Jnr•3h ago
I use tailscale and wireguard and I route traffic between them, so I can't understand why are so many lines of code needed? Can't you simply enable subnet routing on the tailscale node (single argument does that) and perhaps add additional subnet to the addresses list of wireguard peer?
juhovh•3h ago
You definitely don't need that many lines of code, started with just a couple. After that I started having several small issues:

- the router is behind DDNS and changes its IP address on every connect, had to set up reresolve script and cron

- my WireGuard was capturing the default route and I wanted to use the DNS server behind the tunnel when using it as exit node, but that initially broke the DNS reresolve

- one WireGuard tunnel only supported IPv4, but the node I was running on had dual stack, half of the traffic ended up using IPv6 and not going through the tunnel at all

- when routing incoming connections from the other end of the tunnel to the tailnet, I realised Tailscale does SNAT by default for connections from tailnet to the router (this can be disabled), but the WireGuard connections were coming from an unknown subnet and I had to add masquerading rules

- Tailscale doesn't work so nicely with firewalls, it wants to either inject its chains as first or make you configure it after the startup, worked around by modifying a healthcheck to fix the firewall after startup

- I wanted to exclude the WireGuard device from Tailscale monitoring to avoid noise, there's a patch and multiple issues for that on GitHub that haven't been merged, included the patches in my image

I may have forgotten some other edge cases that came up, but here's a few. In addition, I wanted it to automatically parse the advertised subnets from the WG config, which added to the scripts a bit.

In short, it started out as a hack I didn't even think worth sharing, but more things broke than I would've imagined. So wanted to share with anyone who might find it useful.

supernetworks•3h ago
We have a similar container @juhovh, for a plugin for the router we work on. in case this is helpful for you, feel free to to review https://github.com/spr-networks/spr-tailscale/blob/main/Dock...
juhovh•2h ago
Looks interesting, I see you've added a light React UI and a simple REST API on the Go service to query for status and control the Tailscale interface. I'll make a note for sure!

I myself didn't really have a need to disable the interface during the lifecycle of the container, so I went with the standard containerboot process provided by Tailscale. I also wanted the container to be "invisible" and not respond to any incoming connections, so that it feels like you're running Tailscale on the actual router.

Keeping things a bit more granular and flexible for this use case makes total sense.

vladvasiliu•2h ago
> It also doesn't play nicely together with other VPNs, meaning I ended up connecting and disconnecting VPNs whenever I wanted to use them. This is especially evident on my phone, which only allows one VPN app at a time.

What do you mean? I've had great luck using specific routes over wireguard with the official app on my phone. It works great with "on-demand" wg, and only routing my home subnet over it.

Now, some "business" vpns suck donkey balls, but these are usually borked beyond belief without any external help. I'm specifically thinking about the dotted red square one.

EnigmaCurry•1h ago
This is at least a limitation in Android itself:

https://developer.android.com/reference/android/net/VpnServi...

"There can be only one VPN connection running at the same time. The existing interface is deactivated when a new one is created."

Note this is not about routing some traffic to the VPN and other traffic to the clear net. This is about running two VPN connections simultaneously.

vladvasiliu•1h ago
Fair enough. I haven't used an Android device since 2017... Do people have these issues on iOS too?

On Linux, I have no problem running either bare wireguard or tailscale alongside Forticlient. On Windows and macOS it's a bit more janky, specifically the DNS resolution, but I don't daily drive these platforms so I may be missing some kind of knowledge to fix this.

EnigmaCurry•1h ago
Yea on Linux I can run 10 different VPNs (or 10 wg peers) no problem, this limitation of Android is super annoying to me. I think OPs solution is quite a good one for Android users.
syntaxing•1h ago
Neat idea but getting a 5G GL inet router would probably be more robust. Built in tailscale and wireguard so you don’t have to worry about this. Best thing about GL inet routers are the IMEI cloning. It’s pretty popular for wireless ISP like T-Mobile and Verizon 5G home internet.