Files
OPNexus/scripts/make_release_bundle.sh
T
Julian Boldt cf326d2d17
Release / verify (push) Canceled after 0s
CI / checks (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / backend (push) Canceled after 0s
Release / test (push) Canceled after 0s
Release / publish (backend) (push) Canceled after 0s
Release / publish (frontend) (push) Canceled after 0s
Release / publish (proxy) (push) Canceled after 0s
Release / publish (updater) (push) Canceled after 0s
Release v1.16.0
Erste Schritte nach der Installation. Ende-zu-Ende gegen einen isolierten Stack getestet, siehe
Handbuch „Einrichtungsassistent und Passwort-Reset“:

- **Einrichtungsassistent** (`/setup`, System › Einrichtung): vier Schritte mit Erklärungen —
  Willkommen und Sprache, Konto (eigenes Passwort, Zwei-Faktor-Anmeldung), erste Firewall
  verbinden (inklusive Anleitung für den API-Key in OPNsense, Zertifikat festsetzen,
  Verbindungsstatus) und eine Übersicht, was als Nächstes sinnvoll ist. Auf einer frischen
  Installation ohne Hosts öffnet er sich nach der ersten Anmeldung von selbst; „Assistent
  überspringen“ merkt sich das pro Benutzer, erneut öffnen geht jederzeit über System › Einrichtung
  oder die Einstellungen. Nur für Admins. Neue Spalte `user_preferences.setup_done`
  (Migration `0005`).
- **`opnexus password [NAME]`** setzt ein neues Zufallspasswort für den Admin und zeigt es an
  (`--yes` ohne Rückfrage; Rückfrage nur, wenn sich schon jemand angemeldet hat). Ersetzt das
  Suchen im Backend-Log nach dem beim ersten Start erzeugten Passwort und taugt zugleich für ein
  vergessenes Admin-Passwort. Alle Sitzungen des Kontos enden. Dahinter steht
  `python -m app.reset_password`. Die Meldung beim ersten Start verweist darauf.
2026-10-10 14:15:55 +02:00

57 lines
2.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Baut das Release-Bundle (dist/opnexus-<version>.tar.gz), mit dem man OPNexus
# ohne Repo-Checkout betreibt: docker-compose.yml (nur Images, Registry und
# Version als Standard eingebacken), .env.example, das opnexus-Update-Skript
# und eine Kurzanleitung.
#
# scripts/make_release_bundle.sh 1.10.0 git.opnexus.dev/opnexus
#
# Das Ergebnis wird manuell an die Release-Seite angehängt (die CI lädt es
# bewusst nicht hoch: GitHub und Forgejo haben dafür unterschiedliche APIs).
set -euo pipefail
cd "$(dirname "$0")/.."
version="${1:?Usage: $0 VERSION IMAGE_REPO}"
repo="${2:?Usage: $0 VERSION IMAGE_REPO}"
name="opnexus-$version"
out="dist/$name"
rm -rf "$out" "dist/$name.tar.gz"
mkdir -p "$out"
# Standardwerte in der Compose-Datei durch die Release-Werte ersetzen.
sed -e "s|\${OPNEXUS_IMAGE_REPO:-local}|\${OPNEXUS_IMAGE_REPO:-$repo}|g" \
-e "s|\${OPNEXUS_VERSION:-latest}|\${OPNEXUS_VERSION:-$version}|g" \
docker-compose.yml > "$out/docker-compose.yml"
grep -q "OPNEXUS_IMAGE_REPO:-$repo" "$out/docker-compose.yml" || { echo "Compose-Defaults nicht ersetzt" >&2; exit 1; }
! grep -qE '^\s+build:' "$out/docker-compose.yml" || { echo "build: im Release-Compose" >&2; exit 1; }
# .env.example mit gesetzter Registry und Version (der Updater liest .env).
sed -e "s|^# OPNEXUS_IMAGE_REPO=.*|OPNEXUS_IMAGE_REPO=$repo|" \
-e "s|^# OPNEXUS_VERSION=.*|OPNEXUS_VERSION=$version|" \
.env.example > "$out/.env.example"
cp scripts/opnexus "$out/opnexus"
cp LICENSE "$out/"
cat > "$out/INSTALL.txt" <<TXT
OPNexus $version
1. cp .env.example .env und POSTGRES_PASSWORD (und was sonst nötig ist) eintragen
2. docker compose pull && docker compose up -d --no-build
3. Anmelden: ./opnexus password (zeigt das Admin-Passwort, wenn ADMIN_PASSWORD leer war)
dann im Browser öffnen — der Einrichtungsassistent führt durch den Rest
4. Updates: ./opnexus update (neueste Version der in .env gewählten Spur)
./opnexus update 1.10.1 (feste Version)
Zurück: ./opnexus rollback
Sichern: ./opnexus backup
Optional: Updates per Klick im Webinterface (Einstellungen › "OPNexus aktualisieren"):
in .env COMPOSE_PROFILES=updater und UPDATE_CHECK_URL setzen, dann
docker compose up -d --no-build (Hinweise zur Sicherheit: Handbuch)
Vollständige Anleitung: README.md im Repository, Abschnitt "Release-Images & CI".
TXT
tar -C dist -czf "dist/$name.tar.gz" "$name"
echo "dist/$name.tar.gz"