Good morning!
I have been happily using headscale (self hosted implementation tailscale's management service) for some time. An update was over-due but I was struggling to get things working in a satisfactory way. And I didn't like that my set-up wasn't portable (a lot of manual set-up is required).
This led me to plan out what my ideal headscale project would look like:
* Everything runs in docker
* Containers for headscale, headscale-ui, and caddy
* Re-implement user names in the MagicDNS (eg "mobile" is a user, resulting in "iain-t480s.mobile.example.com") that was removed in 0.23.0+ versions of headscale
* Backup and restore procedures
* Single file configuration
Over a few cocktails while on holiday, I instructed OpenCode, with the Big Pickle model, to develop this project.
The result is https://github.com/bigcalm/headscale-compose
A simple project I can clone to any public facing server and hit the ground running with minimal config set-up.
A few notes:
* I have 20 years experience of linux server management, programming, devops, project management, and quality assurance.
* While OpenCode created all of the file contents, I provided the requirements, code review, testing, feedback, and more testing.
* This has been an iterative process to create a fully working project that I am happy with. Not a single prompt and ship whatever gets created.
* I am not a tech bro.
* Agentic development is a useful tool. But only a tool that I have been able to use due to my prior knowledge.
The project isn't perfect, but it suits my needs. Maybe it can help somebody else too :)


