Skip to content

Should be able to edit DNS records even if headscale configuration is read only #615

Description

@debtquity

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.

Image

Workaround(s)

use dummy headscale configuration

  1. Make copy of generated headscale configuration that exists in /nix/store/...
  2. Set services.headplane.settings.headscale.config_path to point to copy of headscale configuration
  3. 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.

Image

Other Issue

At least for my instance, records not added via headplane are not visible in the UI.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

BugSomething isn't workingConfigRelated to Headplane specific configurationFeatureAdditions to Headplane

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions