Proxmox: Webinterface von DebianDEV #v22.01-1
Webinterface von DebianDEV
Hallo zusammen,
kurz vorab: Dieses Webinterface wird es nicht zum Download geben. Gründe dafür sind die verschiedensten APIs die angesteuert werden wie beispielsweise die der MyLOC managed IT AG (routing und RDNS) und die API meines PowerDNS-Admin (pdns) Cluster für die DNS Einträge.
In diesem Beitrag möchte ich euch das Ganze gerne einfach mal Vorstellen und euch über den Status auf dem Laufenden halten.
Die Idee dazu kam mir vor langer Zeit und das was hier im Artiel beschrieben wird ist nicht die erste Version sondern es handelt sich hierbei um das zweite Release. Der Grund wieso ist der, dass die Web-Gui von Proxmox eher bescheiden ist, wenn es darum geht anderen Usern ein Webinterface zur Verfügung stellen zu wollen – also habe ich mich hingesetzt und angefangen etwas eigenes zu schreiben.
Many Thanks:
https://github.com/Saleh7/ProxmoxVE_PHP_API – Saleh (modiffiziert)
https://github.com/ThingEngineer/PHP-MySQLi-Database-Class – ThingEngineer
https://github.com/PHPMailer/PHPMailer – PHPMailer
Folgende Virtualisierung wird derzeit unterstützt:
– LXC
– QEMU / KVM (beta)
Das Frontend
Nice to Know: Das System ist hybrig aufgebaut. Es arbeitet sehr viel mit “Live-Informationen” aus dem Cluster. Als Backend steht neine SQL-Datenbank zur Verfügung die diverse Informationen zum Container, dessen Ressourcen, IP-Adressmanagement (IPAM), Usern und so weiter bevorratet.
Das Frontend, welches den “Kunden” zur Verfügung gestellt wird beherrscht folgende Funktionen:
- Benutzerebene
- Login / Logout
- Passwort vergessen
- Nach Login: Passwort Änderung
- Nach Login: Fullscreen-Mode
- Nach Login: Darkmode
- vServer Verwaltung:
- vServer Übersicht inkl. On-Demand Live Auslastung und Quick-Action (Start, Stop, Reboot)
- vServer editieren:
- Live-Auslastung
- Start, Stop, Reboot
- Neu installieren (diverse Images auf Proxmox-Node Storage)
- Backup einspielen
- NoVNC Konsole aufrufen
- Firewall und Firewallregeln hinzufügen, löschen und sortieren
- Reverse-DNS für die IPs setzen
- Cluster-Logs einsehen
- Serverstatistik einsehen
Hier mal ein paar Bilder:
Das Backend
Das Backend ist ein klassisches Adminmenü.
- Benutzerverwaltung
- Hinzufügen, editieren und löschen
- vServer Verwaltung
- LXC hinzufügen
- Automatisches setzen der Route für die IP zu der richtigen Cluster Node
- Automatisches setzen der DNS Einträge für den Hostnamen
- Automatisches setzen der RDNS Einträge passend zum Hostnamen
- Senden einer E-Mail mit Infos für den Benutzer
- LXC hinzufügen
- API-Verwaltung (MyLOC, PowerDNS-Admin, Mail und Proxmox)
- IPAM (IP Adressmanagement) inkl. Re-routing Funktion und RDNS Management
Vom Backend spare ich mir Bilder, da ich hier sonst stark aufpassen muss, keine Namen und so weiter zu publizieren.
Programmierung
Primär wurde das Webinterface in PHP (oop) geschrieben. Vorallem die On-Demand Funktionen wurden in Javascript / JQuery abgebildet. Als HTML-Framework wurde Bootstrap eingesetzt. Das Design ist gekauft und stark angepasst. HTML und CSS brauche ich sicher nicht zu erwähnen, damit das Ganze schön aussieht.
Develeopment Umgebung
Programmiert wurde ausschließlich mit Visual Studio Code.
Das publishing passiert bei mir mittels sshfs-win und einem bash-user zum htdocs-Verzeichnis.
Changelogs werden hier im Blog folgen 🙂
Bei Fragen oder Anregungen gerne per Kontaktformular melden.
Sehr cool
Ist die Oberfläche käuflich ?
Guten Tag Herr Knapp,
die Oberfläche ist nicht käuflich, da ich diese Maßgeschneidert auf meine speziellen Bedürfnisse zugeschnitten habe.
Viele Grüße
Nico