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
- **Signierte Release-Images:** Die Images (backend, frontend, proxy, updater) werden mit cosign signiert, beginnend mit 1.23.9. Der öffentliche Schlüssel liegt als `cosign.pub` im Repository und im Release-Bundle. `opnexus update` prüft die Signaturen vor dem Wechsel, wenn `cosign` installiert ist. Anleitung: Handbuch, „Images prüfen“.
58 lines
2.5 KiB
Bash
Executable File
58 lines
2.5 KiB
Bash
Executable File
#!/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/"
|
||
cp cosign.pub "$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"
|