No description
  • C 93.3%
  • Shell 3.1%
  • Makefile 1.7%
  • HTML 1.4%
  • Dockerfile 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ramon Smit de1ef9234f
All checks were successful
ci / dependency-scan (push) Successful in 1m31s
ci / ci-image (push) Successful in 3m41s
ci / build-test (push) Successful in 1m49s
ci / fuzz-smoke (push) Successful in 2m11s
ci / sanitizers (push) Successful in 3m7s
ci / integration (push) Successful in 1m25s
ci / sandboxing-integration (push) Successful in 1m34s
ci / static-analysis (push) Successful in 3m54s
ci / docker-publish (push) Successful in 1m54s
feat(favicon): add favicon image to the web directory
2026-09-07 13:39:55 +02:00
.gitea/workflows Exclude dependency-scan from docker-publish job dependencies to prevent blocking on third-party mirror issues 2026-08-17 09:33:44 +02:00
deploy feat(zone): enhance zone update API to accept primary_ns and admin_email as optional parameters 2026-08-18 09:39:49 +02:00
docs feat(audit): implement audit log pruning with configurable retention 2026-09-07 12:46:31 +02:00
scripts fix(dns): bind UDP/TCP listeners on both IPv4 and IPv6 for the wildcard address 2026-08-18 10:15:06 +02:00
src feat(audit): implement audit log pruning with configurable retention 2026-09-07 12:46:31 +02:00
tests feat(audit): implement audit log pruning with configurable retention 2026-09-07 12:46:31 +02:00
third_party Add admin key management functions and unit tests 2026-08-16 13:02:59 +02:00
web feat(favicon): add favicon image to the web directory 2026-09-07 13:39:55 +02:00
.clang-format Refactor code structure for improved readability and maintainability 2026-07-14 18:27:29 +02:00
.clang-tidy Add admin key management functions and unit tests 2026-08-16 13:02:59 +02:00
.editorconfig Refactor code structure for improved readability and maintainability 2026-07-14 18:27:29 +02:00
.gitignore Refactor code structure for improved readability and maintainability 2026-07-14 18:27:29 +02:00
LICENSE feat(license): add MIT license file and update README with licensing information 2026-09-07 12:49:24 +02:00
Makefile feat(audit): implement audit log pruning with configurable retention 2026-09-07 12:46:31 +02:00
README.md feat(license): add MIT license file and update README with licensing information 2026-09-07 12:49:24 +02:00
SECURITY.md Refactor code structure for improved readability and maintainability 2026-07-14 18:27:29 +02:00

Loreji DNS

Authoritative DNS server + DDNS, written in C for the Loreji webhosting platform. See docs/architecture.md for the full design context and rationale.

Quick start

make build
export LOREJI_DNS_PEPPER=$(head -c32 /dev/urandom | base64)  # persist this in real deployments!
export LOREJI_DNS_DB_PATH=/tmp/loreji-dns.db
export LOREJI_DNS_PORT=15353       # unprivileged port for local testing
export LOREJI_DNS_API_PORT=18053

./build/loreji-dns admin-key create --name local-test   # save the printed token
./build/loreji-dns serve &

curl -H "Authorization: Bearer <token>" -X POST http://127.0.0.1:18053/api/v1/zones \
  -d '{"name":"example.test","owner_ref":"me","primary_ns":"ns1.example.test","admin_email":"admin.example.test"}'

dig @127.0.0.1 -p 15353 example.test SOA

Development

Command Does
make build Compile build/loreji-dns.
make test Run all unit test suites.
make test-asan Same, under ASan+UBSan.
make fuzz-smoke 60s libFuzzer run against the wire parser.
make integration Build + run the real binary through dig/curl end to end.
make fmt / make lint clang-format / clang-tidy, if installed.
make docker-build Build the deployment image.
make docker-run Build + run the image locally (unprivileged ports, throwaway pepper) for a quick smoke test.

Full docs: docs/api.md, docs/ddns.md, docs/panel.md, docs/backups.md, docs/data-model.md, docs/security.md.

License

MIT -- see LICENSE. Vendored third-party sources under third_party/ keep their own original licenses (all permissive -- public domain or MIT); see third_party/README.md for the exact list.