From: Giorgio Ravera Date: Mon, 31 Aug 2026 21:11:24 +0000 (+0200) Subject: Fixed docs location X-Git-Url: http://git.giorgioravera.it/?a=commitdiff_plain;h=c3c9382c7de7440a2c6440b14fd65a3a7954c5b9;p=network-manager.git Fixed docs location --- diff --git a/backend/docs/wiki/Home.md b/backend/docs/wiki/Home.md deleted file mode 100644 index 083e10b..0000000 --- a/backend/docs/wiki/Home.md +++ /dev/null @@ -1,182 +0,0 @@ -# Network Manager - -Welcome to the **Network Manager Wiki**. - -Network Manager is a web-based platform designed to simplify the administration of network infrastructure through a centralized management interface. It integrates DNS, DHCP, and certificate management into a single solution, providing administrators with complete visibility and control over their network environment. - ---- - -## 🌐 What is Network Manager? - -Network Manager is an integrated frontend for: - -- **BIND DNS** -- **Kea DHCP** -- **Let's Encrypt** certificate management - -The application automatically generates and manages network configurations while maintaining a local configuration history that supports auditing and rollback operations. It is designed to reduce operational complexity, eliminate manual configuration errors, and provide a single source of truth for network services management. - ---- - -## ✨ Key Features - -### DNS Management - -Manage DNS zones and records through a modern web interface. - -### DHCP Management - -Configure and administer DHCP services and network hosts. - -### Automated Configuration Generation - -Generate DNS and DHCP configurations automatically from your defined domain and network settings. - -### Configuration Versioning - -Track changes, review history, and roll back to previous configurations when required. - -### Security & Authentication - -- Administrator authentication -- Configurable login rate limiting -- Docker Secrets support -- Secure session management with customizable session keys - -### Lightweight & Self-Hosted - -- SQLite-based persistence -- Minimal infrastructure requirements -- Easy deployment with Docker and Docker Compose - -### Centralized Administration - -Manage hosts, DNS zones, DHCP leases, and certificates from a single interface. - ---- - -## 🏗 Architecture Overview - -```text -┌─────────────────────────┐ -│ Web Interface │ -└────────────┬────────────┘ - │ - ▼ -┌─────────────────────────┐ -│ Network Manager │ -│ Backend/API │ -└───────┬─────────┬───────┘ - │ │ - ▼ ▼ - BIND DNS Kea DHCP - │ - ▼ - Let's Encrypt -``` - ---- - -## 🚀 Getting Started - -Deploying Network Manager is straightforward: - -1. Prepare a Docker environment. -2. Configure application settings through environment variables. -3. Launch the application using Docker Compose. -4. Access the web interface and start managing your network services. - -For detailed installation instructions, continue with the **Getting Started** section of this wiki. - ---- - -## 📚 Documentation - -### Introduction - -- Overview -- Architecture -- Design Principles - -### Installation - -- Requirements -- Docker Deployment -- Environment Setup - -### Configuration - -- Environment Variables -- Authentication -- Session Management -- Logging - -### Administration - -- DNS Management -- DHCP Management -- Host Management -- Certificate Management - -### Operations - -- Backup & Restore -- Configuration Rollback -- Monitoring & Logs -- Troubleshooting - -### Development - -- Development Setup -- Project Structure -- Roadmap -- Contributing - ---- - -## 📦 Technology Stack - -- Python Backend -- SQLite Database -- BIND DNS -- Kea DHCP -- Let's Encrypt -- Docker -- Docker Compose - ---- - -## 🎯 Project Goals - -Network Manager aims to provide: - -- A unified interface for network service administration -- Automated generation of service configurations -- Secure and auditable infrastructure management -- Simplified deployment and maintenance -- Reliable configuration tracking and recovery mechanisms - ---- - -## 🚧 Project Status - -Network Manager is an actively developed project. New features and improvements are continuously planned and tracked through the project roadmap and TODO list. - ---- - -## 🤝 Contributing - -Contributions, bug reports, feature requests, and feedback are welcome. - -If you'd like to help improve Network Manager: - -1. Open an issue to discuss proposed changes. -2. Fork the repository. -3. Create a feature branch. -4. Submit a pull request. - -Together we can build a powerful, modern, and easy-to-use network management platform. - ---- - -**Next:** → [[Getting Started]] diff --git a/backend/docs/wiki/Quick-Start.md b/backend/docs/wiki/Quick-Start.md deleted file mode 100644 index 2386252..0000000 --- a/backend/docs/wiki/Quick-Start.md +++ /dev/null @@ -1,136 +0,0 @@ -# Quick Start - -This guide deploys a persistent Network Manager instance for homelab or small network environments. -For production deployments, review the security recommendations before exposing the application to untrusted networks. - -## Prerequisites - -- Docker Engine with the Compose plugin, or another compatible container runtime. -- TCP port 8000 available on the host. -- A writable data volume for the SQLite database, backups, and logs. -- A modern web browser. - -## Option 1: Docker Compose - -Download the homelab Compose file and start WebSSH: - -```bash -mkdir network-manager-deployment -cd network-manager-deployment -curl -O https://raw.githubusercontent.com/xraver/network-manager/main/docker-compose.yaml -docker compose up -d -``` - -PowerShell: - -```powershell -New-Item -ItemType Directory -Path network-manager-deployment -Set-Location network-manager-deployment -Invoke-WebRequest ` - https://raw.githubusercontent.com/xraver/network-manager/main/docker-compose.yaml ` - -OutFile docker-compose.yml -docker compose up -d -``` - -Open `http://localhost:8000` or replace `localhost` with the host address. - -## Option 2: Docker run - -```bash -docker run -d \ - --name network-manager \ - -p 8000:8000 \ - -e DOMAIN=example.com \ - -e EXTERNAL_NAME=dyndns.example.com \ - -e ADMIN_USER=admin \ - -e ADMIN_PASSWORD=admin \ - -v network_manager_data:/data \ - --restart unless-stopped \ - ghcr.io/xraver/network-manager:latest -``` - -The persistent volume is essential. It stores: -- SQLite database -- Configuration data -- Backups -- Application logs - -Removing the volume will permanently remove all stored data. - -## Administrator Password - -By default, the application creates the administrator account using the configured environment variables: -```bash -ADMIN_USER=admin -ADMIN_PASSWORD=admin -``` -For production environments, avoid plaintext passwords and use a Docker secret containing a bcrypt password hash. - -Generate a password hash: -```python -python - <<'PY' -import bcrypt - -password = b"SecurePassword" -print(bcrypt.hashpw(password, bcrypt.gensalt()).decode()) -PY -``` -Save the result to: -```bash -./secrets/admin_password_hash -``` - -and reference it through: -```bash -ADMIN_PASSWORD_HASH_FILE: /run/secrets/admin_password_hash -``` - -## Verify the instance - -Check container state and readiness: - -```bash -docker compose ps -curl -fsS http://localhost:8000/about -curl -fsS http://localhost:8000/api/health -``` - -You should receive an HTTP response from the application. - -```json -{ - "app": { - "name": "network-manager", - "version": "1.0.0" - }, - "domain": "example.org", - "server_time": "2026-08-31T05:33:19.344005+00:00" -} -``` - -```json -{ - "status": "healthy", - "latency_ms": 0.69, - "database": { - "status": "healthy", - "version": "3.53.2", - "tables": 6, - "size_mb": 0.07 - } -} -``` - -Review logs: -```bash -docker compose logs --tail=200 network-manager -``` - -Open the web interface and log in using the configured administrator account. - -## Next steps - -- [Docker and Docker Compose](Docker-and-Docker-Compose) -- [Production Deployment](Production-Deployment) -- [Users and Account Management](Users-and-Account-Management) -- [Backup, Restore and Secret Rotation](Backup-Restore-and-Secret-Rotation) diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md new file mode 100644 index 0000000..083e10b --- /dev/null +++ b/docs/wiki/Home.md @@ -0,0 +1,182 @@ +# Network Manager + +Welcome to the **Network Manager Wiki**. + +Network Manager is a web-based platform designed to simplify the administration of network infrastructure through a centralized management interface. It integrates DNS, DHCP, and certificate management into a single solution, providing administrators with complete visibility and control over their network environment. + +--- + +## 🌐 What is Network Manager? + +Network Manager is an integrated frontend for: + +- **BIND DNS** +- **Kea DHCP** +- **Let's Encrypt** certificate management + +The application automatically generates and manages network configurations while maintaining a local configuration history that supports auditing and rollback operations. It is designed to reduce operational complexity, eliminate manual configuration errors, and provide a single source of truth for network services management. + +--- + +## ✨ Key Features + +### DNS Management + +Manage DNS zones and records through a modern web interface. + +### DHCP Management + +Configure and administer DHCP services and network hosts. + +### Automated Configuration Generation + +Generate DNS and DHCP configurations automatically from your defined domain and network settings. + +### Configuration Versioning + +Track changes, review history, and roll back to previous configurations when required. + +### Security & Authentication + +- Administrator authentication +- Configurable login rate limiting +- Docker Secrets support +- Secure session management with customizable session keys + +### Lightweight & Self-Hosted + +- SQLite-based persistence +- Minimal infrastructure requirements +- Easy deployment with Docker and Docker Compose + +### Centralized Administration + +Manage hosts, DNS zones, DHCP leases, and certificates from a single interface. + +--- + +## 🏗 Architecture Overview + +```text +┌─────────────────────────┐ +│ Web Interface │ +└────────────┬────────────┘ + │ + ▼ +┌─────────────────────────┐ +│ Network Manager │ +│ Backend/API │ +└───────┬─────────┬───────┘ + │ │ + ▼ ▼ + BIND DNS Kea DHCP + │ + ▼ + Let's Encrypt +``` + +--- + +## 🚀 Getting Started + +Deploying Network Manager is straightforward: + +1. Prepare a Docker environment. +2. Configure application settings through environment variables. +3. Launch the application using Docker Compose. +4. Access the web interface and start managing your network services. + +For detailed installation instructions, continue with the **Getting Started** section of this wiki. + +--- + +## 📚 Documentation + +### Introduction + +- Overview +- Architecture +- Design Principles + +### Installation + +- Requirements +- Docker Deployment +- Environment Setup + +### Configuration + +- Environment Variables +- Authentication +- Session Management +- Logging + +### Administration + +- DNS Management +- DHCP Management +- Host Management +- Certificate Management + +### Operations + +- Backup & Restore +- Configuration Rollback +- Monitoring & Logs +- Troubleshooting + +### Development + +- Development Setup +- Project Structure +- Roadmap +- Contributing + +--- + +## 📦 Technology Stack + +- Python Backend +- SQLite Database +- BIND DNS +- Kea DHCP +- Let's Encrypt +- Docker +- Docker Compose + +--- + +## 🎯 Project Goals + +Network Manager aims to provide: + +- A unified interface for network service administration +- Automated generation of service configurations +- Secure and auditable infrastructure management +- Simplified deployment and maintenance +- Reliable configuration tracking and recovery mechanisms + +--- + +## 🚧 Project Status + +Network Manager is an actively developed project. New features and improvements are continuously planned and tracked through the project roadmap and TODO list. + +--- + +## 🤝 Contributing + +Contributions, bug reports, feature requests, and feedback are welcome. + +If you'd like to help improve Network Manager: + +1. Open an issue to discuss proposed changes. +2. Fork the repository. +3. Create a feature branch. +4. Submit a pull request. + +Together we can build a powerful, modern, and easy-to-use network management platform. + +--- + +**Next:** → [[Getting Started]] diff --git a/docs/wiki/Quick-Start.md b/docs/wiki/Quick-Start.md new file mode 100644 index 0000000..2386252 --- /dev/null +++ b/docs/wiki/Quick-Start.md @@ -0,0 +1,136 @@ +# Quick Start + +This guide deploys a persistent Network Manager instance for homelab or small network environments. +For production deployments, review the security recommendations before exposing the application to untrusted networks. + +## Prerequisites + +- Docker Engine with the Compose plugin, or another compatible container runtime. +- TCP port 8000 available on the host. +- A writable data volume for the SQLite database, backups, and logs. +- A modern web browser. + +## Option 1: Docker Compose + +Download the homelab Compose file and start WebSSH: + +```bash +mkdir network-manager-deployment +cd network-manager-deployment +curl -O https://raw.githubusercontent.com/xraver/network-manager/main/docker-compose.yaml +docker compose up -d +``` + +PowerShell: + +```powershell +New-Item -ItemType Directory -Path network-manager-deployment +Set-Location network-manager-deployment +Invoke-WebRequest ` + https://raw.githubusercontent.com/xraver/network-manager/main/docker-compose.yaml ` + -OutFile docker-compose.yml +docker compose up -d +``` + +Open `http://localhost:8000` or replace `localhost` with the host address. + +## Option 2: Docker run + +```bash +docker run -d \ + --name network-manager \ + -p 8000:8000 \ + -e DOMAIN=example.com \ + -e EXTERNAL_NAME=dyndns.example.com \ + -e ADMIN_USER=admin \ + -e ADMIN_PASSWORD=admin \ + -v network_manager_data:/data \ + --restart unless-stopped \ + ghcr.io/xraver/network-manager:latest +``` + +The persistent volume is essential. It stores: +- SQLite database +- Configuration data +- Backups +- Application logs + +Removing the volume will permanently remove all stored data. + +## Administrator Password + +By default, the application creates the administrator account using the configured environment variables: +```bash +ADMIN_USER=admin +ADMIN_PASSWORD=admin +``` +For production environments, avoid plaintext passwords and use a Docker secret containing a bcrypt password hash. + +Generate a password hash: +```python +python - <<'PY' +import bcrypt + +password = b"SecurePassword" +print(bcrypt.hashpw(password, bcrypt.gensalt()).decode()) +PY +``` +Save the result to: +```bash +./secrets/admin_password_hash +``` + +and reference it through: +```bash +ADMIN_PASSWORD_HASH_FILE: /run/secrets/admin_password_hash +``` + +## Verify the instance + +Check container state and readiness: + +```bash +docker compose ps +curl -fsS http://localhost:8000/about +curl -fsS http://localhost:8000/api/health +``` + +You should receive an HTTP response from the application. + +```json +{ + "app": { + "name": "network-manager", + "version": "1.0.0" + }, + "domain": "example.org", + "server_time": "2026-08-31T05:33:19.344005+00:00" +} +``` + +```json +{ + "status": "healthy", + "latency_ms": 0.69, + "database": { + "status": "healthy", + "version": "3.53.2", + "tables": 6, + "size_mb": 0.07 + } +} +``` + +Review logs: +```bash +docker compose logs --tail=200 network-manager +``` + +Open the web interface and log in using the configured administrator account. + +## Next steps + +- [Docker and Docker Compose](Docker-and-Docker-Compose) +- [Production Deployment](Production-Deployment) +- [Users and Account Management](Users-and-Account-Management) +- [Backup, Restore and Secret Rotation](Backup-Restore-and-Secret-Rotation)