VM-Tracker - Client und API-server jetzt Self-Hosted

📡 VM-Tracker - Downloads für Self-Hosted Installationen verfügbar 😎
Im letzten Post hatte ich den VM-Tracker schon einmal vorgestellt und in den letzten Tagen noch selbst einiges getestet.
Jetzt ist alles online und kann installiert werden. So das jeder den VM-Tracker selbst betreiben kann und die eigenen RaspberryPi, VMs, Dedicated-Server, NAS-Systeme oder Shellys Tracken kann.
Ja, auch Shellys können sich registrieren und so Überwacht werden. Gehe zu Settings → Scripts → Add Script und erstelle:
Den Domainnamen noch anpassen!
function registerDevice() {
// Device Info abrufen
Shelly.call("Shelly.GetDeviceInfo", {}, function(deviceInfo) {
let hostname = deviceInfo.id || "unknown-shelly"; // z.B. "shellyplus1pm-a1b2c3d4"
Shelly.call("Shelly.GetStatus", {}, function(result) {
let ip_address = null;
let interface_name = null;
if (result.eth && result.eth.ip) {
ip_address = result.eth.ip;
interface_name = "eth0";
} else if (result.wifi && result.wifi.sta_ip) {
ip_address = result.wifi.sta_ip;
interface_name = "wlan0";
}
if (!ip_address) {
print("Keine IP gefunden!");
return;
}
Shelly.call(
"HTTP.POST",
{
url: "https://vm-tracker.example.com/api/register",
content_type: "application/json",
body: JSON.stringify({
hostname: hostname,
ip_address: ip_address,
interface: interface_name
})
},
function(result, error_code, error_message) {
if (error_code === 0) {
print("✓ Registriert: ", hostname, " - ", ip_address);
} else {
print("✗ Fehler: ", error_message);
}
}
);
});
});
}
// Bei Netzwerk-Verbindung ausführen
Shelly.addEventHandler(function(event) {
if (event.component === "wifi" && event.info.status === "got ip") {
print("WiFi verbunden, registriere...");
Timer.set(2000, false, registerDevice); // 2s Verzögerung
}
if (event.component === "eth" && event.info.status === "up") {
print("Ethernet verbunden, registriere...");
Timer.set(2000, false, registerDevice);
}
});
// Zusätzlich alle 10 Minuten
Timer.set(30000, true, registerDevice);
Das Script kann man einfach auf jeden Shelly erstellen und sie melden sich dann einfach an.

VM-Tracker Server installieren.
Damit man selbst einen Endpunkt für die Clients, unter einer eigenen Domain hat, kann der API-Server jetzt auch Self-Hosted betrieben werden.
Anleitungen gibt es für:
Bei allen Installationen kann man diese ENV-Variabeln setzen:
- API_BASE_URL=https://vm-tracker.example.com
- BASE_URL=https://vm-tracker.example.com
Diese werden benutzt für z.B. Ingress, um die API über die Domain erreichbar zu machen. Ausserdem wird damit das Installations-Skript erstellt, damit die Clients sich mit der richtigen API verbinden. Dadurch kann der Client schnell und unkompliziert auf allen Sytemen installiert werden.
VM-Tracker Client installieren.
Welche Möglichkeiten bei der Client Installation zur Verfügung stehen ist hier beschrieben:
Die komplette Dokumentation in deutsch ist hier und die englische hier.