diff --git a/README.md b/README.md index 51b5004..a10c85a 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,39 @@ -# Aruba PoE +# PoE Manager Web-App -``` -Dieses Repo konfiguriert auf Ubuntu/Debian einen Service, -dieser Service ist in der Lage IPs zu Pingen und entsprechend daran POE auf vorgegebenen Ports an einem Aruba Switch -zu Aktivieren bzw. Deaktivieren. -``` +Webbasierte Verwaltung und Monitoring von PoE-Devices und Switches. +Die App ermöglicht: -## Wichtig: +- Anzeige von Device-Status (Online/Offline) +- Verwaltung von Devices und Switches +- Einstellung des Prüfintervalls +- Live-Log-Ansicht +- Benutzerverwaltung mit Adminrechten -User und Passwort setzen! -/usr/local/bin/custom/poe.sh +--- + +## **Installation (nach einem frischen Clone)** + +```bash +# Repo klonen +git clone https://gitea.int.eertmoed.net/WiS/Aruba-PoE.git /srv/poe_manager +cd /srv/poe_manager + +# Virtuelle Umgebung erstellen +python3 -m venv venv +source venv/bin/activate + +# Abhängigkeiten installieren +pip install --upgrade pip +pip install -r requirements.txt + +# Datenbank initialisieren +python create_db.py + +# Admin-Benutzer erstellen +python create_admin.py + +# Web-App starten +python app.py --host=0.0.0.0 --port=5000 Download: diff --git a/srv/poe_manager/create_db.py b/srv/poe_manager/create_db.py new file mode 100644 index 0000000..8fc2b24 --- /dev/null +++ b/srv/poe_manager/create_db.py @@ -0,0 +1,46 @@ + +--- + +## **create_db.py** + +```python +import sqlite3 + +conn = sqlite3.connect("sqlite.db") +c = conn.cursor() + +# Switches +c.execute(""" +CREATE TABLE IF NOT EXISTS switches ( + hostname TEXT PRIMARY KEY, + ip TEXT NOT NULL, + username TEXT NOT NULL, + password TEXT NOT NULL +); +""") + +# Devices +c.execute(""" +CREATE TABLE IF NOT EXISTS devices ( + mac TEXT PRIMARY KEY, + rpi_ip TEXT NOT NULL, + switch_hostname TEXT NOT NULL, + port TEXT NOT NULL, + name TEXT NOT NULL, + FOREIGN KEY (switch_hostname) REFERENCES switches(hostname) +); +""") + +# Benutzer +c.execute(""" +CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + username TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + is_admin INTEGER DEFAULT 0 +); +""") + +conn.commit() +conn.close() +print("Datenbank sqlite.db wurde initialisiert.")