Description
Problem
I would like to see support for editable DNS records via headplane.
At the moment, my headscale instance and configuration is managed via NixOS module. So I would like to keep the headscale configuration read only. However, I have configured dns.extra_records_path to point to a read/write location on disk.
# ls -hal /var/lib/headscale/extra_dns_records.json
-rw-rw---- 1 headscale headscale 66 Aug 22 23:00 /var/lib/headscale/extra_dns_records.json
# cat /var/lib/headscale/extra_dns_records.json
[{"Name":"init.example.com","Type":"A","Value":"100.64.1.2"}]
Path is accessible by the headplane process and observe this in logs:
# journalctl -u headplane
...
Aug 22 22:26:33 ... headplane[140794]: {"level":"warn","timestamp":"2026-08-22T22:26:33.341Z","pid":140794,"hostname":"...","component":"config","msg":"Headscale configuration file at /nix/store/9cybgwk1dycrqnsl3030ks73i9v8r3yj-headscale.yaml is not writable"}
Aug 22 22:26:33 ... headplane[140794]: {"level":"info","timestamp":"2026-08-22T22:26:33.373Z","pid":140794,"hostname":"...","component":"config","msg":"Found a valid Headscale DNS file at /var/lib/headscale/extra_dns_records.json"}
...
However, on the actual instance itself it's not loading the DNS record(s) in file and not able to add records via headplane web interface.
Workaround(s)
use dummy headscale configuration
- Make copy of generated headscale configuration that exists in
/nix/store/...
- Set
services.headplane.settings.headscale.config_path to point to copy of headscale configuration
- Rebuild system
The drawback here is that UI is misleading and indicates other configurable options (dns nameservers) can be changed. Only DNS records are modifiable here.
Other Issue
At least for my instance, records not added via headplane are not visible in the UI.
Description
Problem
I would like to see support for editable DNS records via
headplane.At the moment, my headscale instance and configuration is managed via NixOS module. So I would like to keep the headscale configuration read only. However, I have configured
dns.extra_records_pathto point to a read/write location on disk.Path is accessible by the
headplaneprocess and observe this in logs:However, on the actual instance itself it's not loading the DNS record(s) in file and not able to add records via headplane web interface.
Workaround(s)
use dummy headscale configuration
/nix/store/...services.headplane.settings.headscale.config_pathto point to copy of headscale configurationThe drawback here is that UI is misleading and indicates other configurable options (dns nameservers) can be changed. Only DNS records are modifiable here.
Other Issue
At least for my instance, records not added via headplane are not visible in the UI.