Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RootGuard — Self-hosted DNS protection

Deutsch · English

RootGuard – Self-hosted DNS protection

Product preview

These screenshots show a verified local development stack with the documented default account and loopback-only DNS endpoint. No real network or access data is included.

RootGuard dashboard showing protected DNS status, stack metrics, and running services

RootGuard guided setup showing the protected DNS chain and completed deployment steps

Deutsch

RootGuard schützt alle Geräte in deinem Netzwerk zentral vor Werbung und bekannten Trackern. Eine übersichtliche Weboberfläche verbindet dafür AdGuard Home mit einem eigenen rekursiven Unbound-Resolver – als vollständiger, selbst betriebener Docker-Compose-Stack für netzwerkweite DNS-Filterung, rekursive DNS-Auflösung und DNSSEC-Validierung.

Release CI License Website

Website · Handbuch · Wiki · Roadmap · Releases

Important

RootGuard befindet sich in einer öffentlichen Alpha. Die Version ist zum Ausprobieren und für reproduzierbare Rückmeldungen gedacht. Sie ist noch nicht für den Einsatz als einziger DNS-Dienst in einer Produktivumgebung vorgesehen.

Warum RootGuard?

Ein DNS-Filter kann Werbung und Tracker für Fernseher, Smartphones, Spielekonsolen und Computer blockieren, ohne auf jedem Gerät eine Erweiterung zu installieren. RootGuard ergänzt diese Filterung um einen eigenen Resolver und eine gemeinsame Bedienoberfläche.

  • Netzwerkweite Filterung: AdGuard Home stoppt unerwünschte DNS-Anfragen.
  • Eigene DNS-Auflösung: Unbound fragt die DNS-Hierarchie rekursiv ab und validiert DNSSEC.
  • Zentrale Verwaltung: Setup, Konfiguration, Updates und Rollbacks laufen über die RootGuard-Weboberfläche.
  • Geführtes lokales DNS: Lokale Einträge, private Domains, Conditional Forwarding und sichere RFC1918-Reverse-Zonen kommen ohne rohe Unbound-Konfiguration aus.
  • Self-hosted und offen: Daten und Kontrolle bleiben auf dem eigenen Docker-Host; der Quellcode ist unter AGPL-3.0-or-later verfügbar.
Geräte im Netzwerk → AdGuard Home → Unbound → DNS-Hierarchie
                         Filter       DNSSEC

Quick Start

Voraussetzung ist ein Rechner mit Docker Compose v2. Die öffentliche Alpha verwendet fertige Images für amd64 und arm64; ein lokaler Build ist nicht notwendig.

mkdir rootguard-alpha && cd rootguard-alpha
curl -LO https://raw.githubusercontent.com/foxly-it/rootguard/v0.1.0-alpha.5/compose.alpha.yaml
curl -Lo .env https://raw.githubusercontent.com/foxly-it/rootguard/v0.1.0-alpha.5/.env.alpha.example

Erzeuge zwei voneinander unabhängige Sicherheitsschlüssel:

openssl rand -hex 32
openssl rand -hex 32

Trage in .env ein eigenes starkes ROOTGUARD_ADMIN_PASSWORD sowie die beiden Werte getrennt als ROOTGUARD_API_TOKEN und ROOTGUARD_RECOVERY_TOKEN ein. Starte anschließend den Stack:

docker compose -f compose.alpha.yaml up -d

Öffne http://<IP-des-Docker-Hosts>:8080/login und folge dem geführten Setup. Dabei kannst du zwischen dem empfohlenen Stable-Kanal und einer ausdrücklich als experimentell gekennzeichneten AdGuard-Home-Beta wählen. Beta kann Fehler enthalten; DNS-Auflösung und Blocking dürfen deshalb nicht als ausfallsicher betrachtet werden. Die vollständigen Voraussetzungen, Router-Einrichtung und Fehlerbehebung stehen im Handbuch.

Was ist enthalten?

Komponente Aufgabe
RootGuard WebApp Login, Dashboard und geführte Bedienung
RootGuard Core Orchestrierung und geprüfte Konfigurationsänderungen
RootGuard Updater Gemeinsame Core-/WebApp-Updates mit Rollback
AdGuard Home Netzwerkweite DNS-Filterung
Unbound Rekursive DNS-Auflösung und DNSSEC-Validierung

Die Live-Produktansicht zeigt die aktuelle Oberfläche. Architektur, Vertrauensgrenzen und Update-Abläufe sind bewusst aus diesem Einstieg ausgelagert:

Entwicklung

Für Änderungen am gesamten Projekt wird das Repository mit seinen Komponenten-Submodules geklont:

git clone --recurse-submodules https://github.com/foxly-it/rootguard.git
cd rootguard
cp .env.example .env
docker compose up --build -d

Die Komponenten bleiben eigenständige Repositories:

Repository Verantwortung
rootguard-core Control Plane und DNS-Orchestrierung
rootguard-webapp Weboberfläche und Sitzungsverwaltung
rootguard-updater Kontrollierte Control-Plane-Updates
rootguard-unbound Gehärtetes Unbound-Image

Mitwirken

Beiträge, Tests und verständliche Dokumentation sind willkommen. Der Beitragsleitfaden erklärt Entwicklungssetup, Zuständigkeiten, Tests und Pull Requests.

Ein guter Einstieg sind Issues mit good first issue oder help wanted. Sicherheitsprobleme bitte nicht öffentlich melden, sondern den Hinweisen in SECURITY.md folgen.

Lizenz und Marke

RootGuard ist freie Software unter GNU AGPL-3.0-or-later. Hinweise zur Nutzung der Namen und Logos von RootGuard und Foxly IT stehen in TRADEMARKS.md.


English

RootGuard centrally protects every device on your network from ads and known trackers. Its approachable web interface combines AdGuard Home with a private, recursive Unbound resolver in one self-hosted Docker Compose stack for network-wide DNS filtering, recursive DNS, and DNSSEC validation.

Website · Documentation · Wiki · Roadmap · Releases

Important

RootGuard is a public alpha intended for evaluation and reproducible feedback. It is not yet recommended as the only DNS service for a production network.

Why RootGuard?

A DNS filter can block ads and trackers for TVs, smartphones, game consoles, computers, and IoT devices without installing an extension on every device. RootGuard adds a private recursive resolver and one coherent management interface.

  • Network-wide ad and tracker blocking: AdGuard Home filters unwanted DNS requests before they reach your devices.
  • Private recursive DNS: Unbound resolves names through the DNS hierarchy and validates DNSSEC signatures.
  • Unified management: Guided setup, configuration, updates, health checks, diagnostics, and rollbacks live in the RootGuard WebGUI.
  • Guided local DNS: Manage local records, private domains, conditional forwarding, and RFC1918 reverse zones without editing raw Unbound files.
  • Self-hosted and open source: Data and control remain on your Docker host; the source is available under AGPL-3.0-or-later.
Network devices → AdGuard Home → Unbound → DNS hierarchy
                       filtering      DNSSEC

Quick start

RootGuard requires Docker Compose v2. The public alpha provides ready-made amd64 and arm64 container images, so no local build is required.

mkdir rootguard-alpha && cd rootguard-alpha
curl -LO https://raw.githubusercontent.com/foxly-it/rootguard/v0.1.0-alpha.5/compose.alpha.yaml
curl -Lo .env https://raw.githubusercontent.com/foxly-it/rootguard/v0.1.0-alpha.5/.env.alpha.example

Generate two independent random security tokens:

openssl rand -hex 32
openssl rand -hex 32

Set a strong ROOTGUARD_ADMIN_PASSWORD in .env and use the generated values separately for ROOTGUARD_API_TOKEN and ROOTGUARD_RECOVERY_TOKEN. Then start the stack:

docker compose -f compose.alpha.yaml up -d

Open http://<docker-host-ip>:8080/login and follow the guided setup. The setup offers the recommended Stable channel and an explicitly experimental AdGuard Home Beta channel. Beta may contain bugs; DNS resolution and blocking must not be treated as fail-safe when it is selected. See the installation guide for requirements, router configuration, upgrades, and troubleshooting.

Included components

Component Responsibility
RootGuard WebApp Login, dashboard, and guided management
RootGuard Core Orchestration and validated configuration changes
RootGuard Updater Coordinated Core/WebApp updates with rollback
AdGuard Home Network-wide DNS filtering
Unbound Recursive DNS resolution and DNSSEC validation

Further technical information:

Development and contributions

Clone the main repository with all component submodules:

git clone --recurse-submodules https://github.com/foxly-it/rootguard.git
cd rootguard
cp .env.example .env
docker compose up --build -d

Contributions, testing, and clear documentation are welcome. Read CONTRIBUTING.md before opening a pull request. Report security vulnerabilities privately by following SECURITY.md.

License and trademark

RootGuard is free and open-source software licensed under GNU AGPL-3.0-or-later. See TRADEMARKS.md for the RootGuard and Foxly IT name and logo policy.

Releases

Packages

Used by

Contributors

Languages