Installation per Einzeiler (curl | bash)

install/get.sh holt das Repository nach /usr/local/src/audiofy und startet
install-server.sh bzw. install-player.sh; Eingaben kommen vom Terminal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 19:44:37 +01:00
co-authored by Claude Opus 5.5
parent df5567e6a3
commit 1c31ac2b6d
2 changed files with 72 additions and 3 deletions
+22 -3
View File
@@ -41,8 +41,27 @@ Portfreigabe am Router.
## Installation ## Installation
Repository auf das jeweilige Gerät holen (`git clone …`) und als Benutzer mit sudo-Rechten **Per Einzeiler** – als Benutzer mit sudo-Rechten (oder als root) in einem Terminal:
(oder als root) ausführen.
```
curl -fsSL https://git.wind8000.de/0/audiofy/raw/branch/main/install/get.sh | bash -s -- server
curl -fsSL https://git.wind8000.de/0/audiofy/raw/branch/main/install/get.sh | bash -s -- player
```
Das Startskript installiert bei Bedarf `git`, holt Audiofy nach `/usr/local/src/audiofy` und
startet das passende Install-Skript. Später aktualisieren: denselben Befehl mit `--update`
am Ende (`… | bash -s -- server --update`).
Vorsichtiger – erst ansehen, dann ausführen:
```
curl -fsSLO https://git.wind8000.de/0/audiofy/raw/branch/main/install/get.sh
less get.sh
bash get.sh server # bzw. player
```
**Oder von Hand:** Repository klonen (`git clone https://git.wind8000.de/0/audiofy.git`) und
die Install-Skripte direkt starten:
**1. Server** **1. Server**
@@ -82,7 +101,7 @@ einschalten und den QR-Code zeigen oder ausdrucken.
| Status | `systemctl status audiofy-web` (Server) · `systemctl status audiofy-controller raspotify` (Player) | | Status | `systemctl status audiofy-web` (Server) · `systemctl status audiofy-controller raspotify` (Player) |
| Logs live | `journalctl -u audiofy-web -f` · `journalctl -u audiofy-controller -f` | | Logs live | `journalctl -u audiofy-web -f` · `journalctl -u audiofy-controller -f` |
| Neustart | `sudo systemctl restart audiofy-web` bzw. `audiofy-controller` | | Neustart | `sudo systemctl restart audiofy-web` bzw. `audiofy-controller` |
| Update | `git pull && install/install-server.sh --update` bzw. `install/install-player.sh --update` | | Update | Einzeiler mit `--update` – oder im Repository `git pull && install/install-server.sh --update` bzw. `install/install-player.sh --update` |
`--update` ersetzt nur Code, Python-Umgebung und Dienstdatei; Konfiguration, Datenbank, `--update` ersetzt nur Code, Python-Umgebung und Dienstdatei; Konfiguration, Datenbank,
Caddy, Firewall und raspotify bleiben unverändert. Caddy, Firewall und raspotify bleiben unverändert.
Executable
+50
View File
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# Audiofy – Installation per Einzeiler (holt das Repository und startet das passende Install-Skript):
#
# curl -fsSL https://git.wind8000.de/0/audiofy/raw/branch/main/install/get.sh | bash -s -- server
# curl -fsSL https://git.wind8000.de/0/audiofy/raw/branch/main/install/get.sh | bash -s -- player
# … | bash -s -- server --update später aktualisieren (holt den neuesten Stand)
#
# Die Quellen liegen danach in /usr/local/src/audiofy. Andere Quelle/Zweig:
# AUDIOFY_REPO=https://…/audiofy.git AUDIOFY_BRANCH=main
set -euo pipefail
REPO="${AUDIOFY_REPO:-https://git.wind8000.de/0/audiofy.git}"
ZWEIG="${AUDIOFY_BRANCH:-main}"
QUELLE="${AUDIOFY_SRC:-/usr/local/src/audiofy}"
ROLLE="${1:-}"
[ $# -gt 0 ] && shift
case "$ROLLE" in
server|player) ;;
*) echo "Aufruf: curl -fsSL …/install/get.sh | bash -s -- server|player [--update]" >&2; exit 1 ;;
esac
if [ "$(id -u)" -eq 0 ]; then SUDO=""; else
command -v sudo >/dev/null || { echo "Bitte als root ausführen oder sudo installieren." >&2; exit 1; }
SUDO="sudo"
fi
echo "==> Audiofy-Quellen holen ($REPO, Zweig $ZWEIG)"
if ! command -v git >/dev/null; then
$SUDO apt-get update -qq
$SUDO env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq git >/dev/null
fi
if [ -d "$QUELLE/.git" ]; then
$SUDO git -C "$QUELLE" fetch -q --depth 1 origin "$ZWEIG"
$SUDO git -C "$QUELLE" reset -q --hard FETCH_HEAD
else
$SUDO install -d -m 755 "$(dirname "$QUELLE")"
$SUDO git clone -q --depth 1 --branch "$ZWEIG" "$REPO" "$QUELLE"
fi
echo " Stand: $($SUDO git -C "$QUELLE" log -1 --format='%h %s')"
# Bei "curl | bash" ist die Standardeingabe das Skript selbst – Fragen müssen vom Terminal kommen.
if { : </dev/tty; } 2>/dev/null; then
exec bash "$QUELLE/install/install-$ROLLE.sh" "$@" </dev/tty
elif [[ " $* " == *" --update "* ]]; then
exec bash "$QUELLE/install/install-$ROLLE.sh" "$@" # Update fragt nichts
else
echo "Kein Terminal gefunden – die Installation braucht Eingaben. Bitte in einem Terminal ausführen." >&2
exit 1
fi