diff --git a/README.md b/README.md new file mode 100644 index 0000000..1e40589 --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# NetBox Updater + +Automatisiertes Upgrade-Skript für selbst gehostete NetBox-Installationen unter `/opt/netbox`. + +Erledigt automatisch: +- Download & Entpacken der neuen NetBox-Version +- Übernahme von `configuration.py`, `ldap_config.py`, `media/`, `scripts/`, `reports/`, `gunicorn.py` +- Übernahme/Erstellung der `local_requirements.txt` (Plugins), inkl. automatischem `django-auth-ldap`-Eintrag bei erkannter LDAP-Konfig +- Verzeichnistausch (`netbox` → `netbox_old`, neue Version → `netbox`) +- Ausführung von `upgrade.sh` + +## Ausführung per Oneliner + +Direkt von Gitea herunterladen und ausführen (Version als Parameter, ohne führendes `v`): + +```bash +curl -fsSL https://git.mrblake.cc/MrBlake/NetBox-Updater/raw/branch/main/upgrade.sh | sudo bash -s -- 4.1.5 +``` + +Alternativ mit `wget`: + +```bash +wget -qO- https://git.mrblake.cc/MrBlake/NetBox-Updater/raw/branch/main/upgrade.sh | sudo bash -s -- 4.1.5 +``` + +`4.1.5` durch die gewünschte Zielversion ersetzen (siehe [NetBox Releases](https://github.com/netbox-community/netbox/releases)). + +## Voraussetzungen + +- Root-Rechte (`sudo`) +- Bestehende Installation unter `/opt/netbox` +- `wget`, `tar`, `curl` installiert +- Kein `/opt/netbox_old` und kein `/opt/netbox-` vorhanden (Skript bricht sonst ab, um nichts zu überschreiben) + +## Ablauf im Detail + +1. **Download**: Lädt `vX.Y.Z.tar.gz` von GitHub und entpackt es nach `/opt/netbox-X.Y.Z`. +2. **Kopieren**: Überträgt Konfiguration, Medien, Skripte, Reports und ggf. `gunicorn.py` aus der bestehenden Installation. +3. **Plugins**: Kopiert `local_requirements.txt` aus `/opt/netbox`. Existiert keine, wird eine Standardliste angelegt (in der Skriptdatei editierbar). Bei vorhandener `ldap_config.py` wird `django-auth-ldap` automatisch ergänzt. +4. **Pause zur Prüfung**: Das Skript hält an und bittet dich, `CSRF_TRUSTED_ORIGINS` in der neuen `configuration.py` zu kontrollieren, bevor es weitermacht (Enter zum Fortfahren, Strg+C zum Abbrechen). +5. **Verzeichnistausch**: `/opt/netbox` → `/opt/netbox_old`, `/opt/netbox-X.Y.Z` → `/opt/netbox`. +6. **Upgrade**: Führt `/opt/netbox/upgrade.sh` aus. +7. **Aufräumen**: Löscht den heruntergeladenen Tarball. + +## Nach dem Upgrade + +- NetBox testen (Login, Plugins, LDAP falls genutzt). +- Bei Problemen: Rollback möglich, da die alte Installation unter `/opt/netbox_old` erhalten bleibt. +- Nach erfolgreicher Prüfung kann `/opt/netbox_old` gelöscht werden: + ```bash + sudo rm -rf /opt/netbox_old + ``` + +## Lokale Ausführung (ohne Oneliner) + +```bash +wget https://git.mrblake.cc/MrBlake/NetBox-Updater/raw/branch/main/upgrade.sh +chmod +x upgrade.sh +sudo ./upgrade.sh 4.1.5 +``` \ No newline at end of file