hcornet 83a21095ed
CI / check (push) Successful in 17s
CI / security (push) Successful in 9s
CI / publish-brand (push) Skipped
CI / Promote to main (push) Skipped
ci: every push is tracked in GLPI; docs of the releases; version 0.7.13
2026-10-08 09:11:04 +02:00
2026-10-03 20:22:19 +02:00
2026-10-03 20:22:19 +02:00
2026-10-04 18:50:01 +02:00

Warda — documentation

Warda: from ward (to protect, guardian).

The single place of every document of Warda. No other repository keeps a copy: the code repositories link here.

Folder Content
warda/ Technical reference of the software (the DNS filter).
cloud/ The online service of Warda (names and certificates of the encrypted DNS, the exchanges of the collective base): API and deployment.
analyst/ warda-analyst, the analysis service of Warda ("master of doubt") behind the online service: the checks of the doubtful domains, the living list of verdicts, the interface of the team, its sources and their terms, deployment and move to another server; from 0.7.11 its module Lists: the admission of a list, the names proposed to add or remove, the dead names, the test bench, the model of warda-ml as a second opinion.
portal/ warda-portal, the customer area account.warda-dns.com (from 0.7.5): accounts, boxes linked by code, plans and their signed statements, Warda Business, the interface of the team; deployment, the plan key, backups, move to another server.
ml/ warda-ml, the weekly learning job from the collective base (from 0.7.5): the export it reads, the models proposed and their report, deployment, the key of the models; from 0.7.11 the push of the signed model to warda-analyst.
website/ The site warda-dns.com: pages and languages, build, security, search engines, deployment.
lists/ warda-lists: the sources, the categories and the curated lists every box downloads; from 0.7.11 the two figures of each list (entries and names), the files written by warda-analyst and the safety of the nightly build.
docs-site/ docs.warda-dns.com: the documentation site built from this repository.
support/ warda-support: the support platform support.warda-dns.com (GLPI 11.0.9 in Docker Compose), its deployment, upgrades and backups.
domains/ The domains of Warda (warda-dns.com, .net, .fr, .eu): their records, the Terraform repository that manages them, the tokens, the steps at the registrars; the runbook of the failover if Cloudflare is lost.
ci/ warda-ci: what the CI of every repository shares. Every push tracked in GLPI by the CI (a Change for a push, a release for a version): the states and the comments, the steps to add to a workflow, the settings, what happens when GLPI does not answer.
operations/ Operations, for the owner: the servers (srv-warda-01, SLDOKP03), the firewall of srv-warda-01, releasing and deploying a version, the rules and the fields of OpenBao (no secret ever shown), GitHub (organisation, repository of the releases, token, verified domains).
warda/comparison.md Warda beside Pi-hole and AdGuard Home, and what it does not do yet.
warda/guide/ User guide, step by step, in English, français, español, Deutsch, Nederlands, italiano and português.
brand/ Charte Améthyste (colours, fonts, logos) and its package @warda-dns/brand, used by every interface.
design/ Design documents, in French, not published on docs.warda-dns.com: roles and groups (the roles of the accounts, reworked in 0.6.8), collective base (exchanges and analysis service done in 0.6.8, next phases under discussion), data loss prevention for Warda Business (P1 and unblock requests done in 0.6.8), high availability and sites of Warda Business (phase 1 done in 0.6.8, next phases), under discussion: HTTPS inspection and DLP; in English: the servers of Warda (the four servers of the target, the flows between them, what scaling needs), warda-portal (the customer area: v0.1 built in 0.7.5, decisions taken by default, open questions), warda-ml (learning from the collective base, privacy-preserving: v0.1 built in 0.7.5, models proposed only), a web proxy for Warda Business (a proposal for decision, nothing built) and the IPv6 DNS of the box (the case of 2026-10-03, the proposals and their state after 0.7.10, the boxes to verify).

Versions

Each release of Warda tags this repository with the same vX.Y.Z as the code: the documentation of a version is the one of its tag. The branch develop describes the version in progress.

Branches

Every repository of Warda (warda, warda-cloud, warda-analyst, warda-portal, warda-ml, warda-website, warda-docs, warda-docs-site, warda-lists, warda-terraform-cloudflare, warda-support, warda-ci) follows the same flow: the work is pushed on develop; when its CI passes, the job Promote to main pushes the same commit on main (fast-forward only, with the secret RELEASE_TOKEN), and the CI of main runs on it. A vX.Y.Z tag is only released from a commit of develop or main; protect the tags v* in the settings of each repository (only the administrators, and the owner of RELEASE_TOKEN for warda-docs, whose tag is set by the release of warda).

The package @warda-dns/brand has its own version (in brand/package.json): the CI publishes a new version to the npm registry of the organization as soon as it appears on develop or main, and each interface chooses when to move to it.

Rules

  • One subject, one place. A document moves; it is never copied.
  • The seven guides keep the shape of the English one: same chapters, same subsections, a short box at the start of each chapter, the same commands.
  • Every page of every interface of Warda has exactly the same style: the charter is the only source of colours, fonts and logos.
  • An image of a document lives in an images/ folder beside it, with a text for those who do not see it; in the guide, one image for every language or one by language: adding images (en français).
  • brand/warda.css is generated from brand/tokens.json (node brand/scripts/build.mjs), never edited by hand.

Checks

npm test (Node.js 22, no dependency): the guides, the links between the documents, the images (each shown exists, has its text, a name in lower case, PNG, JPEG, WebP or a safe SVG, at most 500 KB; no file of an images/ folder forgotten), and the charter. The CI runs them on every push, and publishes the charter package on develop and main.

Security checks

The job security runs beside the checks, and a finding stops the promotion to main and the publication of the charter as a failed check does: secrets committed by mistake (gitleaks, pinned image, reading the committed files on its standard input: no bind mount). Without npm dependency (no package-lock.json), there is nothing for npm audit; no nightly workflow either, gitleaks only finds something new when the files change.

S
Description
Multilingual documentation and support
Readme
7.1 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 58.4%
CSS 20.9%
Shell 17.5%
Dockerfile 3.2%