Gates / frontend (push) Successful in 2m8s
Gates / test (push) Successful in 2m46s
Gates / test-aarch64 (push) Successful in 8m38s
Gates / package (push) Successful in 4m39s
Gates / container (push) Successful in 15s
CI / gates (push) Successful in 31m58s
querylog.db carries a schema version; migrations run at startup as one transaction after a vacuumed 0600 backup, and every failure refuses startup (exit 2, no systemd restart loop) instead of starting empty. corruption is the only automatic recreate left. the cut gate now requires a fixture-proven migration or an explicit versioned break with restore instructions, and locks shipped migration files and fixtures byte-for-byte.
3.6 KiB
3.6 KiB
nxdns documentation
The pages are split by what you are trying to do, following Diátaxis. Each page serves one of four purposes, and knowing which one you want is the fastest way to the right page.
| Mode | For | Read it when |
|---|---|---|
| Tutorial | Someone who has never run nxdns | You want to learn what it does by making it work once |
| How-to guides | An operator with a job to do | You know what you want and need the steps |
| Reference | Anyone who needs an exact answer | You want a field, a flag, a route or an exit code |
| Explanation | Anyone deciding or debugging | You want to know why it works the way it does |
Tutorial
A lesson, not a procedure: one path with one outcome, on a scratch directory you can delete afterwards.
- tutorial/first-run.md — build nxdns, resolve a name, block a domain from a real blocklist, open the web interface, stop cleanly.
How-to guides
Steps for a goal you already have. They assume you know what nxdns is.
- how-to/verify-a-release.md — check the signature and the checksums before you run anything, and what they prove.
- how-to/install-with-systemd.md — a real install as a system service, including the Raspberry Pi 5 aarch64 binary.
- how-to/install-with-docker.md — the published container image and the compose file.
- how-to/upgrade.md — move to a new release without losing state.
- how-to/troubleshoot.md — what to do when it does not answer, does not block, or will not start.
- how-to/enable-doh-and-dot.md — serve encrypted DNS with certificates.
- how-to/set-up-admin-authentication.md — put a password on the web interface and the API.
- how-to/back-up-and-restore.md — export and import the configuration, and what to copy.
- how-to/measure-performance.md — run the benchmark harness on your own hardware.
Reference
Descriptions of what is there. No procedures, no advice.
- reference/configuration.md — every configuration section, field, default and range.
- reference/api.md — every REST route, authentication and the event stream.
- reference/cli.md — the six subcommands, every flag, every exit code.
- reference/files-and-directories.md — the data directory layout and file modes.
- reference/query-log-lifecycle.md — how
querylog.dbis versioned, migrated, backed up and, rarely, recreated. - reference/performance.md — the targets and the measured numbers.
Explanation
Background. Nothing here is needed to operate nxdns; it is here so the decisions are inspectable.
- explanation/architecture.md — the module map and the design it comes from.
- explanation/configuration-model.md — why there are two authority modes, how each one is selected, and what each is for.
- explanation/performance-and-testing.md — why the targets exist, why CI does not gate on them, and what the hermetic tests do and do not prove.
Scope and per-milestone contracts live outside this directory, in ../PLAN.md and ../specs/.