No description
- C 93.3%
- Shell 3.1%
- Makefile 1.7%
- HTML 1.4%
- Dockerfile 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
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
|
||
| .gitea/workflows | ||
| deploy | ||
| docs | ||
| scripts | ||
| src | ||
| tests | ||
| third_party | ||
| web | ||
| .clang-format | ||
| .clang-tidy | ||
| .editorconfig | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| SECURITY.md | ||
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.