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:
@@ -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
@@ -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
|
||||||
Reference in New Issue
Block a user