Wie OliveTin es Ihnen ermöglicht, Server-Bash-Skripte über einen Browser ohne SSH auszuführen
Ich mag SSH, aber ich liebe es nicht, es öffnen zu müssen und einen Benutzernamen und ein Passwort zu merken, nur um die gleichen langweiligen Befehle immer wieder auszuführen. Dieses kleine Ärgernis ist der Grund, warum ich dieses Projekt überhaupt erst gestartet habe.
Ich habe ein paar Server in meinem Homelab, aber einer davon braucht besonders viel Aufmerksamkeit, Überprüfungen des Speicherplatzes, Backups und Updates, weil er die Hausautomation steuert. Diese Aufgaben sind nicht schwierig, und einige von ihnen sind automatisiert. Aber die kleinen, nervigen manuellen Aufgaben fühlen sich einfach zu klein an, um eine SSH-Sitzung zu rechtfertigen.
OliveTin hat das auf eine wirklich einfache Weise gelöst. Es ermöglichte mir, meine eigenen Bash-Skripte in Browser-Buttons zu verwandeln, auf die ich jederzeit in meinem Heimnetzwerk zugreifen und klicken konnte. Nachdem ich OliveTin nativ auf meinem Debian-Home-Ops-Server installiert hatte, verwandelte ich die Unannehmlichkeit einer weiteren sicheren SSH-Sitzung in ordentliche Werkzeuge.
Was ich wirklich brauchte, war ein Bedienfeld und kein weiteres Admin-Kommandozentrum
OliveTin ist einfach genug, dass es nicht im Weg steht
Ich wollte nicht, dass mein Home-Ops-Server sich in noch ein weiteres Dashboard verwandelt. Das liegt daran, dass ich ein Homelab betreibe, nicht die Missionskontrolle in Houston, und bereits genug nutzlose Dashboards in meinem Leben habe. Ich brauchte etwas viel Einfacheres. Nur eine private Seite mit ein paar Schaltflächen für Skripte, denen ich bereits vertraute. Was ich nicht brauchte, waren Diagramme, Widgets, Plugins oder eine vollständige Serververwaltungskonsole.
OliveTin ergibt hier vollkommen Sinn, weil es im Grunde ein Web-Launcher für vordefinierte Befehle ist, was es ideal für Smart-Home-Upgrades, Automatisierungen und die Administration persönlicher Server macht. Ich brauchte Tasten für Dinge wie Server-Gesundheitsberichte, Speicherberichte, das Ein- und Ausschalten von SSH und Firewalls sowie das Herunterfahren des Servers. OliveTin macht genau das, was es verspricht, na ja, auf den Punkt gebracht.
Mit OliveTin habe ich die Skripte geschrieben, die Aktionen definiert, und OliveTin läuft auf einem Webserver und verwandelt sie in eine nützliche browserbasierte App. Die Installation von OliveTin ist einfach genug. Ich habe es nativ auf meinem Home-Ops-Debian-Server installiert, seine Konfigurationsdatei bearbeitet und den Dienst aktiviert:
sudo apt install ./OliveTin_linux_amd64.deb
sudo systemctl enable --now OliveTinDa OliveTin auf Port 1337 läuft, habe ich diesen Port in der Debian UFW-Firewall freigegeben und dann eine kleine Testkonfiguration für OliveTin erstellt, die einen einfachen Button enthält, der einige grundlegende Systeminformationen zurückgibt, nur als Test, um zu sehen, ob alles funktioniert:
actions:
- title: "Hello from home-ops"
icon: "👋"
popupOnStart: execution-dialog-stdout-only
shell: echo "OliveTin is running natively on $(hostname) at $(date)"Dann habe ich den Dienst neu gestartet:
sudo systemctl restart OliveTinDie Schaltfläche selbst machte nichts Nützliches, aber genau das war der Sinn. Ich musste nur nachweisen, dass der Dienst läuft, dass die Seite geladen wird und dass OliveTin die Befehlsausgabe im Browser anzeigen kann.
OliveTin-Schaltflächen können HTML-Entity-Codes für Symbole verwenden, sodass Sie kleine Emoji-Labels in YAML für ein schöneres Dashboard hinzufügen können.
Meine ersten paar OliveTin-Buttons haben alle langweiligen Server-Skripte ersetzt
Gesundheitsprüfungen, Speicherberichte, Servicestatus, all die Dinge, für die ich Skripte erstellt habe, die ich dann aber vernachlässigt habe, bis etwas kaputtging
Da der Testknopf funktionierte, war es Zeit, all die Dinge zu ersetzen, die ich eigentlich öfter überprüfen wollte, durch coole Knöpfe auf OliveTin. Das ist die ziemlich peinliche Wahrheit über die Hälfte meiner Heimserver-Wartung. Ich weiß bereits, welche Befehle benötigt werden. Ich habe sogar Skripte für die meisten von ihnen geschrieben. Ich konnte mich nur nicht dazu aufraffen, mich per SSH einzuloggen, um sie auszuführen.
Also, die ersten Buttons, die ich in OliveTin erstellt habe, führten Skripte für grundlegende Server-Admin-Aufgaben aus:
- Servergesundheit
- Speicherberichte
- Service-Status
- Paketaktualisierung und -upgrade
- Systemkonfigurationssicherung
- Firewall-Status
Der Server-Gesundheitsbutton fasste alle Linux-Überwachungsbefehle, die ich normalerweise manuell ausführe, auf einmal zusammen. Das Skript, mit dem der Button verknüpft ist, führt einfach grundlegende Prüfungen durch und gibt dann die Ergebnisse in einem schön lesbaren Format zurück:
uptime
free -h
df -h /Die anderen Skripte zeigten Lastdurchschnitte und die wichtigsten CPU-Prozesse, was mir eine gute Übersicht über den Server gab, ohne das Terminal zu öffnen. Der Speicher-Button erstellte einen Bericht über den freien Festplattenspeicher, die Nutzung des Dateisystems und die größten/var-Verzeichnisse. Der Dienst
Status-Button geprüft SSH, OliveTin selbst und Docker.
Das Hinzufügen einer Backup-Taste ließ OliveTin wie ein richtiges Werkzeug erscheinen
Mit allen in Schaltflächen organisierten losen Skripten hatte ich ein leistungsstarkes internes Werkzeug
Sobald die Schaltflächen des Überwachungstools alle funktionierten, habe ich ein neues Skript und eine Schaltfläche erstellt, um die Konfigurationsdateien zu archivieren, die ich am meisten zurückhaben möchte, falls ich beim Herumprobieren etwas monumental kaputt mache. Es erfasst Elemente wie den Hostnamen, die Hosts-Datei, die SSH-Konfiguration, die Firewall-Einstellungen und die Konfigurationsdateien von OliveTin.
tar -czf "$BACKUP_FILE" /etc/hostname /etc/hosts /etc/ssh /etc/ufw /etc/OliveTinEs ist nichts Beeindruckendes und im Wesentlichen nur ein Bash-Skript, das tar umschließt. Aber das Ergebnis fühlte sich anders an, sobald es einen eigenen Knopf hatte, anstatt es einfach einem Cron-Job zuzuordnen und zu hoffen, dass es weiter funktionierte. Ja, es ist darunter immer noch alles Bash, aber OliveTin hat aufgehört, dass sich ein lose verbundenes Skript wie eine lästige Pflicht anfühlte, die man ausführen muss, und bedeutete schließlich, dass ich richtig für den Home-Ops-Server gebaut hatte.
Dann fügte ich einige stärkere Knöpfe hinzu
Das Neustarten von SSH und das Ändern der Firewall über den Browser ist nützlich, erfordert jedoch Vorsicht
Nachdem die harmlosen Prüfungen und Backup-Buttons funktionierten, fügte ich einige Buttons hinzu, die etwas mehr Vorsicht verdienen, da sie potenziell sowohl OliveTin als auch mich vom Server aussperren könnten:
- Firewall aktivieren
- Firewall deaktivieren
- Firewall-Regeln überprüfen
- SSH aktivieren
- SSH deaktivieren
Dies waren immer noch einfache Tasten, die mit einfachen Bash-Skripten verbunden waren:
systemctl start ssh
systemctl stop ssh
systemctl is-active sshDiese Einfachheit ist es, die OliveTin ziemlich mächtig machen kann. Wenn eine SSH-Sitzung nicht reagiert oder ich die Firewall schnell zur Fehlerbehebung ausschalten muss, ist die Option direkt da, um sie ein- und auszuschalten. Wenn ich jedoch auf einem server ohne Monitor den falschen Knopf drücke, sollte ich besser Konsolenzugang bereithalten oder einen anderen Weg zurück haben.
Auf meinem Home-Ops-Server funktioniert das einwandfrei, weil ich die Umgebung kontrolliere und genau weiß, was jeder Knopf macht. Ich habe auch einen Weg zurück, falls meine Katze es irgendwie schafft, mich über OliveTin von meinem eigenen Server auszuschließen. Auf einem öffentlichen VPS oder einem öffentlich zugänglichen Dienst ist es jedoch offensichtlich nicht ratsam, OliveTin ohne irgendeine Form der Authentifizierung auszuführen.
Ich habe mir Neustart- und Ausschaltknöpfe gegeben
Dann habe ich sofort eine Abbrechen-Taste hinzugefügt
Ein Neustart- und Ausschaltknopf auf OliveTin ergab vollkommen Sinn, und ich werde dasselbe auch zu anderen Servern hinzufügen, die eine schnelle Abschaltung in Zeiten wie plötzlicher Stromausfälle benötigen. Nachdem ich den Ausschaltknopf hinzugefügt und ihn dann versehentlich angeklickt hatte, beschloss ich, dass ich auch einen Timer und einen Abbrechen-Knopf benötige.
Ich habe meine ursprünglichen Bash-Skripte zum Herunterfahren geändert, um einen Ein-Minuten-Timer einzuschließen:
shutdown -r +1 "Restart requested from OliveTin"Dann fügte ich direkt neben ihnen eine Abbrechen-Power-Aktionsschaltfläche hinzu:
shutdown -cDiese winzige Verzögerung gab mir genug Zeit, die Aktion vollständig abzubrechen, bevor mein Home-Ops-Server ausfiel, der damit auch die gesamte automatisierte Steuerung meiner Smart-Home-Beleuchtung mitnahm. Es war eine gute Erinnerung daran, dass eine so leistungsstarke Funktionalität definitiv einen Sicherheitsgurt braucht.
Ich würde dies nicht direkt dem Internet aussetzen
OliveTin ist nützlich, weil es Befehle ausführt, was auch der Grund ist, warum es nicht auf deinem VPS sein sollte
OliveTin unterstützt ordnungsgemäße Sicherheitsfunktionen wie Authentifizierung, Benutzer, Gruppen und Zugriffskontrollen, aber das bedeutet nicht, dass Sie eine ganze Seite mit Server-Buttons dem World Wide Web aussetzen sollten.
Für meinen Home-Ops-Server ist mein bevorzugtes Modell nur vertrauenswürdiger Zugriff. Es ist ziemlich wichtig, sicherzustellen, dass Port 1337 nur lokal zugänglich bleibt, und wenn ich wirklich Zugriff von außerhalb meines Netzwerks benötige, kann ich ihn hinter etwas wie Tailscale platzieren, anstatt Port-Forwarding zu verwenden.
Die Frage, warum ich nicht die integrierte Anmeldeunterstützung von OliveTin verwenden würde, um es zu sichern, bleibt bestehen, und sie ist berechtigt. Meine Antwort ist, dass es keine normale Webanwendung ist, weil seine gesamte Aufgabe darin besteht, Befehle auszuführen, was das Bedrohungsmodell ausreichend verändert, um es hinter meine Firewall zu legen.
Ich behalte es, aber nur für Skripte, denen ich bereits vertraue
OliveTin hat SSH nicht ersetzt, aber es hat viele sinnlose SSH-Sitzungen entfernt
OliveTin war niemals als vollständiges Server-Admin-Panel gedacht, und genau deshalb wollte ich es. Es ist besser, weil es nur die Aufgaben freigibt, für die ich bereits Skripte habe. Wenn es keine Schaltfläche oder kein Skript gibt, kann es nicht einfach eines erstellen und ausführen.
Ich brauche SSH immer noch für echte Linux-Server-Arbeit, wie Konfigurationsbearbeitung und Protokollarbeit, und kein Browser-Button wird das ersetzen. Aber für kleine Aufgaben, denen ich vertraue, weil ich das Skript geschrieben habe, ist OliveTin perfekt. Das liegt daran, dass ich, wenn ich mich per SSH einloggen müsste, um sie auszuführen, diese Aufgaben aus Faulheit nicht erledigt hätte, und die Leistung meines Servers darunter gelitten hätte.
Also, ich behalte OliveTin auf meinem Home-Ops-Server und werde es tatsächlich auch auf andere Server ausrollen, die ich bisher vernachlässigt habe. Ich brauche immer noch SSH für die echte Arbeit, ich möchte es nur nicht jedes Mal öffnen müssen, wenn ich ein langweiliges Skript ausführen muss. Dafür ist ein Knopf einfach viel besser.










