Skip to content

bloop16/iobroker-JavaSkript-Backup-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

ioBroker Skript Backup System

Automatisches Backup-System für ioBroker JavaScript-Dateien mit Versionskontrolle, GitHub-Integration und Schutz vor sensiblen Daten.

Funktionen

  • 🔄 Automatische Sicherung von JavaScript-Dateien aus ioBroker
  • 📁 Beibehaltung der originalen Ordnerstruktur
  • ⏱️ Optionale Versionskontrolle mit Zeitstempeln
  • 🔧 Konfigurierbare Anzahl von Backup-Versionen (optional)
  • 🔒 Automatische Schwärzung von Passwörtern und sensitiven Daten
  • 🔑 Schutz sensitiver Zugangsdaten
  • 📥 Git-Integration mit automatischen Commits (optional)
  • 🔄 Echtzeit-Dateiüberwachung
  • 🗑️ Automatische Bereinigung alter Versionen (optional)

Voraussetzungen

  • Linux-System mit Bash-Shell
  • Git installiert (optional)
  • inotify-tools Paket
  • SSH-Zugang zu GitHub (optional)
  • GitHub-Konto (optional)

Funktionen im Detail

Initiales Backup

  • Erstellt komplettes Backup aller .js Dateien
  • Behält originale Verzeichnisstruktur bei
  • Initialisiert Git-Repository (optional)
  • Führt initialen Commit auf GitHub durch (optional)

Kontinuierliche Überwachung

  • Überwacht Dateiänderungen in Echtzeit
  • Erstellt neues Backup bei Dateiänderung
  • Behält konfigurierte Anzahl von Versionen (optional)
  • Committet Änderungen automatisch zu GitHub (optional)

Versionskontrolle (optional)

  • Jedes Backup enthält Zeitstempel
  • Behält konfigurierte Anzahl von Versionen
  • Entfernt älteste Versionen automatisch
  • Git-Commit-Nachrichten enthalten:
    • Skriptname
    • Zeitstempel
    • Vorgenommene Änderungen

Sensitive Daten

  • Erkennt und schwärzt Passwörter, API-Keys und andere sensible Daten in JavaScript-Dateien. Variablen (const, Var, let), Direktzuweisungen, Objekt-Eigenschaften, Json Style wird auf folgende Textphrasen überprüft:
    • password
    • pass
    • passwort
    • passwd
    • user
    • benutzer
    • apikey
    • secret

Installation

  1. Skript herunterladen und installieren:
# Git-Repository klonen
git clone https://github.com/bloop16/iobroker-JavaSkript-Backup-System.git

# Datei umbenennen und verschieben
mv iobroker-JavaSkript-Backup-System/backup_iobroker_skripts /usr/local/bin/backup_iobroker_skripts.sh

# Ordner löschen
rm -rf iobroker-JavaSkript-Backup-System

# Skript ausführbar machen:
sudo chmod +x /usr/local/bin/backup_iobroker_skripts.sh
  1. Benötigte Pakete installieren:
sudo apt-get update
sudo apt-get install git inotify-tools
  1. JavaSkript Adapter Spiegelungen Aktivieren In den Einstellungen des JavaSkript Adapters muss die Spiegelung aktiviert werden. Der Dafür eingetragene Ordner ist in den den Skript Konfigurationen anzupassen. SOURCE_DIR

Git-Konfiguration (optional)

Falls die Git-Integration genutzt werden soll, muss git korrekt konfiguriert sein. Die Konfiguration kann so vorgenommen werden:

 # Git-Benutzernamen setzen
git config --global user.name "Ihr GitHub-Benutzername"

# Git-E-Mail setzen
git config --global user.email "ihre-github-email@example.com"
Diese Konfiguration stellt sicher, dass Commits mit den korrekten Benutzerinformationen versehen werden.
  1. SSH-Schlüssel für GitHub generieren (optional):
ssh-keygen -t ed25519 -C "ihre-github-email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
  1. SSH-Schlüssel zu GitHub hinzufügen (optional):

    • Öffentlichen Schlüssel kopieren:
      cat ~/.ssh/id_ed25519.pub
    • GitHub → Einstellungen → SSH und GPG Schlüssel
    • "Neuer SSH-Schlüssel" klicken
    • Kopierten Schlüssel einfügen
    • Mit Titel "IobrokerBackup" speichern
  2. GitHub-Repository erstellen (optional):

    • Name: Repository Name

Konfiguration

Bei Bedarf folgende Variablen im Skript anpassen:

SOURCE_DIR="/opt/iobroker/skriptMirror/"
TARGET_DIR="/opt/iobroker/backupSkripts/"
REPO_NAME="[RepoName]"
GITHUB_USER="[UserName]"
SCRIPT_PATH="/usr/local/bin/backup_iobroker_skripts.sh"

MAX_BACKUPS=10           # Maximale Anzahl der Backups pro Skript (nur bei USE_VERSIONS=true)
USE_GIT=true            # Git-Integration aktivieren/deaktivieren
USE_VERSIONS=true       # Versionierung mit Zeitstempeln aktivieren/deaktivieren

Verzeichnisstruktur

Mit Versionskontrolle (USE_VERSIONS=true):

/opt/iobroker/backupSkripts/
└── pfad/zum/skript/
    └── skriptname/
        ├── skriptname_20250406_123456.js
        ├── skriptname_20250406_123789.js
        └── ...

Ohne Versionskontrolle (USE_VERSIONS=false):

/opt/iobroker/backupSkripts/
└── pfad/zum/skript/
    └── skriptname.js

Installation als Systemdienst

  1. Systemd Service-Datei erstellen:
sudo nano /etc/systemd/system/backup-iobroker-skripts.service
  1. Folgenden Inhalt in die Service-Datei einfügen:
[Unit]
Description=ioBroker Scripts Backup Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/backup_iobroker_skripts.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  1. Systemd neu laden und Service aktivieren:
# Systemd neu laden
sudo systemctl daemon-reload

# Service aktivieren (Start bei Boot)
sudo systemctl enable backup-iobroker-skripts.service

# Service starten
sudo systemctl start backup-iobroker-skripts.service
  1. Service-Status überprüfen:
sudo systemctl status backup-iobroker-skripts.service

Changelog

Version 1.1.0

  • Sensitivitätsschutz aktivierbar/deaktivierbar über SANITIZE_SENSITIVE

Version 1.0.0

  • Initiale Version
  • Automatisches Backup von ioBroker JavaScript-Dateien
  • Erhaltung der Ordnerstruktur
  • Optionale Versionierung mit Zeitstempeln
  • Automatische Überwachung von Dateiänderungen
  • Automatische Bereinigung alter Versionen
  • Git-Integration mit automatischen Commits
  • Konfigurierbare Anzahl von Backup-Versionen

About

Automatisches Backup-System für ioBroker JavaScript-Dateien mit Versionskontrolle, GitHub-Integration und Schutz vor sensiblen Daten.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages