Skip to content

foxly-it/rootguard-webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡 RootGuard WebApp

License Backend Frontend Docker Status


📌 Overview

RootGuard WebApp is the authenticated HTTP and UI layer of the RootGuard ecosystem. It contains no direct Docker control code and communicates with RootGuard Core over an internal token-protected API.

It exposes infrastructure orchestration capabilities provided by RootGuard Core and delivers a modern web-based control plane for DNS stack management.

The WebApp is intentionally separated from the engine layer to maintain:

  • Clear responsibility boundaries
  • Replaceable transport layers
  • Modular evolution
  • Security isolation

🏗 System Architecture

Browser
   ↓
RootGuard WebApp
   ├── REST API (Go)
   └── UI (React + Vite)
   ↓
RootGuard Core (Engine)
   ↓
Docker / System Services

RootGuard WebApp acts purely as a presentation and API transport layer.

The current UI includes service health and lifecycle controls, previewed and validated Unbound settings with version history, rollback, and diagnostics, and a one-click AdGuard Home bootstrap that keeps generated credentials inside RootGuard Core.


📂 Repository Structure

rootguard-webapp/
├── backend/
│   ├── cmd/
│   │   └── rootguard-webapp/
│   ├── internal/
│   │   ├── httpapi/
│   │   └── unboundctl/
│   └── go.mod
│
├── frontend/
│   ├── src/
│   ├── public/
│   ├── package.json
│   └── vite.config.ts
│
└── Dockerfile

🚀 Local Development

Backend

cd backend
ROOTGUARD_CORE_URL=http://localhost:8081 \
ROOTGUARD_API_TOKEN=development-token \
ROOTGUARD_ADMIN_PASSWORD=change-me \
go run ./cmd/rootguard-webapp

Frontend

cd frontend
npm install
npm run dev

🐳 Containerized Deployment

Build Image

docker build -t rootguard-webapp:dev .

Run Container

docker run -p 8080:8080 \
  -e ROOTGUARD_CORE_URL=http://rootguard-core:8081 \
  -e ROOTGUARD_API_TOKEN=replace-me \
  -e ROOTGUARD_ADMIN_PASSWORD=replace-me \
  rootguard-webapp:dev

Test Endpoints

curl http://localhost:8080/health
curl -u admin:replace-me http://localhost:8080/api/version

🔐 Design Principles

RootGuard WebApp follows strict design constraints:

  • No orchestration logic duplication
  • No direct system-level manipulation
  • API-only exposure of infrastructure actions
  • Minimal runtime surface (distroless container)
  • Deterministic build process

🛣 Roadmap

Planned development stages:

  • DNS filtering and client-management UI
  • Stack deployment interface
  • Live container monitoring
  • Session-based authentication and role management
  • Multi-architecture image builds
  • GitHub Actions CI/CD
  • GHCR image distribution

📜 License

RootGuard WebApp is licensed under the Apache License 2.0.

See the LICENSE file for full details.


⚠ Development Status

This project is currently under active development.

Breaking changes may occur prior to v1.0.0.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors