NEWS
JavaSkripts - Versionierung und BackUp Skript
-
Liebe Community,
Ich würde gerne meine Erfahrungen und das daraus entstandene Resultat mit euch teilen.
Leider ist es im JavaSkript Adapter aktuell nicht möglich alte Versionen von Skripts, Blocklys usw. zurückzuholen. Weshalb ich bereits vor einiger Zeit nach einer "Papierkorb" Funktion angefragt habe.
Hier wurde ich darauf aufmerksam gemacht, dass des möglich sei ein Spiegel Verzeichnis von allen Skripts anlegen zu lassen und von diesem ein regelmäßiges Backup zu machen.
Aus diesem Anstupser entstand nun eine Art Versionierung Skript.
Danke an @bahnuhr für den Tip!Vorab: Da ich selbst zwar Code lesen und mit Einschränkungen Versehen kann, mir aber beim code schreiben wirklich schwer tue, wurde der Code sowie das Readme zu 90% von KI generiert.
https://github.com/bloop16/iobroker-JavaSkript-Backup-System/
Bin gespannt auf eure Rückmeldungen!
Herzlichen Dank!
-
@bloop nicht schlecht aber..
wenn in scripten user , password kombinationen genutzt wird postest du das auf GIT ..
NICHT SCHÖN
das bitte auf jeden Fall in die doku aufnehmen...
noch schöner währe wenn es ausgefilter werden könnte -
@arteck Danke für dein Feedback!
Da ich in keinem meiner Skripts Passwörter und Userdaten gespeichert habe, ist mir das komplett entfallen.
Werde ich in die Doku aufnehmen.
Für das Problem findet sich bestimmt ebenfalls eine Lösung. -
@arteck
Guten Abend,
Ich habe mich erneut an die Arbeit gemacht und eine Funktion zum "schwärzen" von Passwörtern eingebaut.
Variablen, Direkt Zuweisungen usw. werden auf password, pass, passwort, passwd, user, usw. überprüft und anschließend mit XXX überschrieben.
Ebenfalls kann der Git upload auch deaktiviert werden. -
@bloop GitHub ist da hart verdrahtet drin? Ich nutze Gitea ( https://docs.gitea.com/ ) als eigenes Repo. Da liegen meine Skripte auch schon (ich mache das per Hand mit den gespiegelten Scripten im Dateisystem). Und ich kann es auf "nicht öffentlich" stellen.
Da dürfen dann auch alle Passwörter drin bleiben. -
@bananajoe Was verstehst du unter hart verdrahtet?
Meine Repo steht bei git ebenfalls auf privat. Aber Gitea wäre selbstverständlich ebenfalls eine Option. -
@bloop erst einmal vielen Dank für das Skript, find ich klasse! Könntest du ggf. die Funktion zum "schwärzen" von Passwörtern optional in den Skript-Configs mit true/false auswählbar machen? Speichere die Skripte nur lokal, da würd ich die PW gerne beibehalten. Hab die betreffenden Zeilen erstmal auskommentiert, aber das wäre sicherlich die elegantere Lösung.
-
@bloop
Guten Morgen,
ich kopiere mir die Scripte aus dem Spiegelverzeichnis täglich auf meine NAS und habe somit eine tägliche Sicherung und Versionierung meiner erstellten Scripte.Was will man:
Ziel ist doch, dass man (wenn etwas schief läuft, etc.) auf ältere Scripte zurückgreifen kann.
Und dies müssen dann doch unverändert sein (so wie der Stand halt damals war).Mir ist noch nicht so richtig begreiflich warum :
- Versionierung bei Änderung zeitgleich notwendig ?
- extra pakete installiert werden müssen
- Scripte werden öffentlich ?? gestellt
- Ordnerstruktur geändert wird
- Scripte verändert werden (pass raus/rein, etc.)
Ist dies nicht to much ?
-
@bahnuhr
Guten Morgen,
Während ich an den Scripts arbeite ist mir die einmal tägliche Sicherung zu wenig. Kann sein das es nur an mir liegt, aber wenn ich große Veränderungen an Skripts vornehme und diese dann austeste, kommt es schon mal vor dass ich lieber wieder zu einer älteren "Version" zurück möchte.Das Paket inotify-tools überwacht und erkennt ob eine Datei im skriptMirror verändert wurde. Anschließend wird eine Kopie der Datei incl. Zeitstempel im vorab definierten Ziel Pfad abgelegt. - Könnte in deinem Fall auch die NAS sein. Die Anzahl der Kopien lässt sich begrenzen.
Wer git verwenden möchte, benötigt selbstverständlich auch das Paket dazu. Meine Scripts werden in einem Privaten Repository abgelegt. Um hier etwas mehr Sicherheit zu gewährleisten werden die Scripts ohne Benutzername und Passwörter, APIs hochgeladen.
Ob das jetzt zu viel des guten ist, kann jeder selbst für sich entscheiden und hätte bei bedarf auch die Möglichkeit nicht benötigte Funktionen zu deaktivieren.
-
@unterstedter
Erledigt! v1.1.0