# ⚡ DebTik Network Appliance Controller ## Overview DebTik is a lightweight, open‑source controller for network appliances running on Proxmox. It provides a web UI and CLI to manage BGP, routing, firewall, VPN, DHCP, DNS and other services. All components are designed to run on Debian‑based systems and integrate tightly with the BIRD routing daemon. ## Features - **Unified Management** – Control BGP, OSPF, static routes, firewall, VPN, DHCP, DNS from a single interface. - **Web UI** – Responsive dashboard (HTTPS support optional, disabled by default). - **CLI** – Powerful command line tool (`debtik-cli`) for scripting and automation. - **Certificate Management** – Create self‑signed CA, client certificates, and optional Let's Encrypt integration. - **Dynamic Routing** – Automatic route updates based on service status. - **Extensible Plugins** – Add custom services via the internal API. ## Installation ### Prerequisites - Debian/Ubuntu (or compatible) server - `bird` daemon (installed by package manager) - `systemd` (for service management) - `git` (for source checkout) ### Binary Installation ```bash curl -L -o debtik.tar.gz https://example.com/debtik-latest.tar.gz mkdir -p /opt/debtik && tar xzf debtik.tar.gz -C /opt/debtik ln -s /opt/debtik/bin/proxmox-router /usr/local/bin/debtik ``` ### Build from Source ```bash git clone https://github.com/yourorg/DebTik.git cd DebTik make build sudo cp bin/* /usr/local/bin/ ``` ### Systemd Service ```bash sudo cp systemd/proxmox-router.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now proxmox-router.service ``` ## Configuration Configuration files are located in `/etc/debtik/`. - `debtik.yaml` – Main configuration (service ports, logging, etc.). - `bird/` – BIRD routing daemon configuration generated by DebTik. - `certs/` – Certificate storage. Use the **Certificates** section in the web UI to generate a CA, self‑signed certificates, or enable Let's Encrypt (requires a public domain and port 80). ### Enabling HTTPS HTTPS is disabled by default. To enable it: 1. Add a certificate via **Certificates → Add → Let's Encrypt** or upload a self‑signed cert. 2. Edit `debtik.yaml`: ```yaml web: https_enabled: true cert_file: /etc/debtik/certs/fullchain.pem key_file: /etc/debtik/certs/privkey.pem ``` 3. Restart the service: ```bash sudo systemctl restart proxmox-router.service ``` ## Usage ### Web UI Open `http://:8080` (or `https://:8443` when HTTPS is enabled). The dashboard shows system status, routing tables, VPN connections, and logs. ### CLI (`debtik-cli`) ```bash debtik-cli --help debtik-cli bgp peer list debtik-cli route add --dest 10.0.0.0/24 --gw 192.168.1.1 ``` Refer to the built‑in help for each sub‑command. ## API DebTik exposes a REST API on port `9090` (configurable). Authentication is token‑based. ## Contributing 1. Fork the repository. 2. Create a feature branch. 3. Ensure code passes `make test`. 4. Submit a pull request. ## License DebTik is released under the **MIT License**.