DS vmm - Inoffizielle Android-App

Ulfhednir

Benutzer
Sehr erfahren
Registriert
26. Aug. 2013
Beiträge
3.705
Reaktionspunkte
1.305
Punkte
194
Hallo Zusammen,

ich hatte in der Vergangenheit immer mal wieder das Thema, dass ich von unterwegs eine VM (neu)starten musste und / oder gerne einem Dritten die Möglichkeit zum Starten der VM geben wollte. Beispielsweise hatte ich zeitweise für einen Verein eine VM aufgesetzt, die nur quartalsweise benötigt wurde. Nun ist bekanntermaßen DSM in der Mobilansicht nicht zu gebrauchen. Aktuell ist auch keine Änderung in Sicht. Aus Not und Neugier ist daher dieses Projekt entstanden: Die inoffizielle Android-App "DS vmm"

Wichtig: Die App habe ich vollständig mit KI entwickelt (ich bin kein Entwickler) und skizziert eigentlich ganz gut, die Fähigkeiten heutiger KI-Modelle.
Es handelt sich hierbei um eine Flutter-App die mit Dart entwickelt wurde. In der Theorie ließe sich die App auch mit einigen Anpassungen für iOS und sogar als Windows-App portieren - das steht aber aktuell nicht im Scope.

Was kann die App?

18581ee4-a605-46de-b008-12066562393d-profile_banner-480.jpg

  • Login über HTTP/HTTPS
  • Login mit 2FA (OTP) inklusive Gerät vertrauen (trusted device)
  • Gerätevertrauen zurücksetzen
  • Zertifikat überprüfen (prüft, ob ein "echtes" (z.B. Lets Encrypt) Zertifikat verwendet wird)
  • Auflistung der VMs inklusive Detailinformationen
  • Starten / Stoppen / Herunterfahren / Herunterfahren erzwingen / Neustarten / Anhalten einer VM
  • Verbinden mittels noVNC
Die App ist keine Woche alt - insofern noch recht frisch und daher aktuell noch eine Beta.
Wer testen will, kann das hier: Download v 2.0.0

Was steht noch auf der Agenda?
  • Anmeldeverlauf (orientiert sich an den regulären Synology-Apps)
  • Fehlende Angaben im Detailscreen ergänzen (Performance, Interface)
  • Allgemeine UI-Verbesserungen
  • Zoom in der noVNC-Übersicht ergänzen
Und zuletzt:
  • Docker-Integration: Denkbar wäre eine kumulierte Übersicht mit VMs und Docker-Containern, die man filtern könnte. Den Gedanken find ich jedenfalls sexy. Da habe ich aber noch Fragezeichen, wie ich das umsetzen kann. Entweder müsste ich ein SSH-Key importieren, um per Shell auf die Docker-Commands (z.B. docker ps) zugreifen zu können oder ich gehe einen Umweg über Portainer. Hier gab es mal jemanden, der eine App für Portainer gewagt hatte.
Viel Spaß beim Testen.

Screenshot_20250526_224409.jpgScreenshot_20250526_224433.jpgScreenshot_20250526_230508.jpgScreenshot_20250526_224447.jpgScreenshot_20250526_230741.jpg
 
Zuletzt bearbeitet:
Hab mit quickconnect noch nicht getestet. Intern und über reverse proxy ging.

In der App wird standardmäßig 5000 für http und 5001 für https im connectionstring verwendet. Versuch mal die quickconnect URL:443 mit https
 
nein, ich muss es direkt probieren, komme aber nun nur via QC drauf (von aussen)
QC und 443 das macht keinen Sinn, die Ports werden da nur temporär zugeteilt
 
Mit QuickConnect wird es schwierig werden. Das ist ja kein direkter DDNS und eher closed source bezüglich API. Deshalb kann man damit nur Apps von Synology nutzen. Über Gefrickel aber vielleicht machbar
Danke für die App
 
Ja, das habe ich auch schon feststellen müssen. Hab schon seit langer Zeit kein QC verwendet. Wie ich jetzt feststellen musste, erfolgt bei der Verbindung ein Redirect.
Insofern etwas komplexer und muss separat angepasst werden. Insofern lasse ich erstmal einfach den Hinweis zu QC im Loginscreen weg.
Heute Abend gibt es dann die angepasste Version inklusive Anmeldeverlauf & Möglichkeit zum Scrollen in noVNC.
 
  • Like
Reaktionen: Benie
Hier gibt es das angekündigte Update mit einigen Verbesserungen.
 
  • Like
Reaktionen: ctrlaltdelete
Ich finde das ganz toll, sich gleich mal um die Umsetzung zu bemühen, wenn man vor einem Problem steht und das noch mit der Community zu teilen.
Vielen Dank :love:

Sag mal: wäre Github vielleicht ein guter Anlaufpunkt?
Damit schaffst du Vertrauen und gibst anderen die Möglichkeit, dich zu unterstützen.
 
Ich kann mich leider nicht anmelden, auch nicht als Adminuser, weder IP oder DNS
Müssen auf der DS evtl. Berechtigungen vergeben werden?
 
Sag mal: wäre Github vielleicht ein guter Anlaufpunkt?
Damit schaffst du Vertrauen und gibst anderen die Möglichkeit, dich zu unterstützen.
Ehrlich gesagt habe ich eigentlich gar keinen Anspruch besonders vertrauensvoll sein zu müssen. Selbst wenn ich den Source auf Github stellen würde, gäbe es ja trotzdem immer die Gefahr, dass man eine verseuchte .apk in den Umlauf bringt. Ich werde aber darüber nachdenken.


Ich kann mich leider nicht anmelden, auch nicht als Adminuser, weder IP oder DNS
Müssen auf der DS evtl. Berechtigungen vergeben werden?
VMM muss natürlich installiert sein. Der user sollte dabei logischerweise die Rechte zur Verwendung haben.

Es gibt allerdings 1-2 Fallstricke:

1.) Wenn du dich intern per HTTPS einloggst UND die Option "Zertifikat überprüfen" aktiviert hast, funktioniert die Anmeldung nicht.
Selbst signierte Zertifikate werden nicht akzeptiert. Du kannst in dem Fall bedarfsweise die Überprüfung deaktivieren (noVNC wird dann jedoch nicht funktionieren, weil die verwendete WebView-Komponente einen eigenen SSL-Handler verwendet - ich hatte keine Lust das umzubauen) oder musst / kannst Lets Encrypt nutzen.

2.) ersatzweise versuchst du es per HTTP

3.) Bei der Anmeldung kein Protokoll vor der Adresse angeben. Die Eingabe von IP / Domain genügt. Falls ein abweichender Port (5000/5001) verwendet wird, muss dieser angehangen werden Beispiel: 192.168.1.1:443 / HTTPS oder domain.tld:80 / HTTP

Hier noch eine Version 1.3.0 die eine verbessertes Errorhandling beim Login-Prozess bietet. In der vorherigen Lieferung gab es kein TimeOut im Anmeldeprozess.
Ein fehlerhafter Anmeldeversuch und die App rödelte vor sich hin.... - Workaround: App beenden
 
  • Like
Reaktionen: Benie
also ja, der erste Erfolg, mit der neuen Version konnte ich mich einloggen und die VM werden angeziegt.

Einschalten von der VM Mint hat aber einen Fehler produziert: Failed to power on VM (code 904)


Versucht die laufende VDSM neustarten: Failed to restart VM (code 103)



andere Bedienelemente versucht, kein Erfolg so weit.


Android 15
Motorola G54
 
Guter Hinweis, da habe ich versehentlich etwas kaputt gemacht. Fix folgt.
Nachtrag: Oder auch nicht. Hatte erst eine Fehlermeldung, danach ging es jetzt wieder. Dürfte trotzdem ein Bug drin sein.
---
Nachtrag vom Nachtrag: Bei mir kam die Fehlermeldung "Fehler beim Einschaltn: Exception Failed to power on {code: 903}

Laut API-Beschreibung: 903 Failed to power on a virtual machine due to insufficient memory.
- Also zu wenig RAM.. Logisch es lief bereits eine VM, die Speicher gefressen hat.

Todo: Bessere Hinweise bzw. die Fehlercodes einbauen
 
Zuletzt bearbeitet:
  • Like
Reaktionen: ctrlaltdelete
I ich habe auch den Fehler gefunden. Die App ist nicht für Oldies gemacht 🤣

Hatte es nur auf meinem Test Handy versucht Android 10. Mit Android 15 hat es auf Anhieb funktioniert.
Linux Mint hat sich problemlos starten lassen inkl. login. (mit Version 1_3_0)
Tolle Sache ! So braucht man den Rechner für kleine Dinge nicht. 👍
Vielen Dank für Dein Engagement.
 
Kann es sein, daß die Tastatur vom Handy auf eine andere Tastatur umgestellt wird.
Ich habe deutsches Layout auf dem Handy aber die Sonderzeichen funktionieren nicht bei der Anmeldung und Passwort.

VDSM lässt sich zwar starten , aber nicht verbinden , egal ob VDSM 6.x oder 7.x
 
Ich habe deutsches Layout auf dem Handy aber die Sonderzeichen funktionieren nicht bei der Anmeldung und Passwort.
Du meinst aber nicht den Loginscreen, sondern die noVNC-Übersicht oder? Da sollte sich eigentlich das Tastaturlayout der virtuellen Maschine gezogen werden.
Wenn das Layout nicht gezogen werden kann, sollte er eigentlich auf das Default-Layoutset en_us springen... Was die App scheinbar (?) immer tut. Riecht also nach einem Bug.

VDSM lässt sich zwar starten , aber nicht verbinden , egal ob VDSM 6.x oder 7.x
Naja.. Was würde passieren, wenn man sich über DSM versucht einzuloggen? Er öffnet "nur" eine Webseite. Du hast doch keine noVNC-Steuerung dafür!?
Der Anwendungsfall ist schlichtweg noch nicht berücksichtigt.
Laut API gibt es "type String The type of this image. (disk/vdsm/iso)" - ich würde in dem Fall den Typ prüfen und auf einen normalen Browser verweisen oder das Verbinden einfach ausblenden.
 
Version 1.5 hat jetzt eine zusätzliche Visualisierung zum Host - basierend hierauf:
1748456672588.png
Die "echte" CPU-Auslastung (%) wird leider nicht angeboten.

Screenshot_20250528_202038.jpg
 
sondern die noVNC-Übersicht oder? Da sollte sich eigentlich das Tastaturlayout der virtuellen Maschine gezogen werden
Habe die Tastatur in 3 Linux VMs geprüft , steht in allen auf de, aber auch mit englischem US qwerty Layout Funktioniert es nicht. Wie Du schon sagtest scheint ein Bug zu sein .
Aber dennoch, Du bist da eine App angegangen , die ich schon sehr sehr lange vermisst habe. 👍 Ich freue mich sehr darüber. 😊
 
also ich kann jetzt (1.30)
VDSM herunterfahren und wieder hochfahren
Ja, korrekt VDSM kann man nicht 'connecten' wie andere VM
Der Knopf 'neustarten' hat aber bis jetzt keine Funktion, wirft einen Error


Mint konnte ich starten, dann connect, aber habe nicht herausgefunden wie ich dort auf dem Phone login machen kann, es gibt keine Tastatur bei mir dazu..??
Konnte dann irgendwie mit dem guest Acc starten, dort habe ich dann die virt Tastatur auf dem Desktop, weil das in der VM nie eine Tastatur von meinem Compi verstanden hat. Aber das hat mit dem Mint und VM selber zu tun, das ist nicht Problem von der App hier.
 
  • Like
Reaktionen: Ulfhednir
@Benie
Ich habe das Thema schon ein wenig analysiert. Es gibt zwei Ursachen:
1.) In VMM kann ein Default-Tastaturlayout definiert werden. Die VMM-API kann diese nicht auslesen.
Wenn ich nun die URL zum verbinden erzeuge, wird lediglich "kb_layout": "Default" übergeben. Was "default" konkret ist, ist für mich eine Blackbox.
Aus diesem Grund habe ich Version 1.6.0 erstellt, bei der man über die Konfiguration das Default-Tastaturlayout definieren kann.

2.) Unabhängig davon scheint es mit der verwendeten Webview-Komponente Probleme zu geben. Bei der Eingabe werden nicht als vollständiges "Key Event" übergeben.
Kurzum: Ich muss testen, ob es mit einer anderen Komponente besser funktioniert.

@ottosykora
Die Tastatur musst du dir über die noVNC-Bar aktivieren (3 Icon von oben).
Im Querformat ist die Platzierung der Leiste aktuell noch nicht optimal. Die verschwindet ggf. hinter der Navigationsleiste.
Screenshot_20250528_221253.jpg
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Benie
@Ulfhednir

wie kommt man zu der V 1.50 oder 1.60?




BTW: die VM laufen bei mir auf DSM6 , VDSM ist 721, Minta was altes, 18.3
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat