54 lines
1.9 KiB
Bash
Executable file
54 lines
1.9 KiB
Bash
Executable file
#!/bin/env bash
|
|
# Upstream doc: https://www.navidrome.org/docs/installation/linux/
|
|
set -euxo pipefail
|
|
|
|
IMAGE="ubuntu/24.04"
|
|
DIST="${IMAGE%%/*}"
|
|
VER="${IMAGE#*/}"
|
|
VER="${VER%/*}"
|
|
VER="${VER//./-}"
|
|
UPSTREAM_VER="0.54.4"
|
|
UPSTREAM_VER_DASH="${UPSTREAM_VER//./-}"
|
|
UPSTREAM_NAME="navidrome"
|
|
SERIAL="1benoitjpnet"
|
|
CNAME="$UPSTREAM_NAME-$UPSTREAM_VER_DASH-$SERIAL-$DIST-$VER"
|
|
ALIAS="$UPSTREAM_NAME-$UPSTREAM_VER-$SERIAL"
|
|
|
|
cd "$WORKSPACE"
|
|
incus launch images:$IMAGE "$CNAME" --quiet
|
|
|
|
wait_network "$CNAME"
|
|
|
|
incus config set "$CNAME" environment.DEBIAN_FRONTEND=noninteractive
|
|
incus config set "$CNAME" environment.DEBCONF_NONINTERACTIVE_SEEN=true
|
|
incus config set "$CNAME" environment.LC_ALL=C
|
|
|
|
# Navidrome
|
|
incus exec "$CNAME" -- apt update
|
|
incus exec "$CNAME" -- apt upgrade -y
|
|
incus exec "$CNAME" -- apt install -y --no-install-recommends ffmpeg wget
|
|
incus exec "$CNAME" -- useradd -m -s /sbin/nologin -d /var/lib/navidrome navidrome
|
|
incus exec "$CNAME" -- install -d -o navidrome -g navidrome /opt/navidrome
|
|
incus exec "$CNAME" -- wget -q https://github.com/navidrome/navidrome/releases/download/v${UPSTREAM_VER}/navidrome_${UPSTREAM_VER}_linux_amd64.tar.gz -O /tmp/Navidrome.tar.gz
|
|
incus exec "$CNAME" -- tar -xvzf /tmp/Navidrome.tar.gz -C /opt/navidrome/
|
|
incus exec "$CNAME" -- chown -R navidrome:navidrome /opt/navidrome
|
|
incus file push "$WORKSPACE"/navidrome.service \
|
|
"$CNAME"/etc/systemd/system/
|
|
incus file push "$WORKSPACE"/navidrome.toml \
|
|
"$CNAME"/etc/
|
|
|
|
# Syncthing
|
|
incus exec "$CNAME" -- apt install -y --no-install-recommends syncthing
|
|
incus file push "$WORKSPACE"/syncthing.service \
|
|
"$CNAME"/etc/systemd/system/
|
|
|
|
incus exec "$CNAME" -- systemctl daemon-reload
|
|
incus exec "$CNAME" -- systemctl enable syncthing photoprism
|
|
|
|
laminarc run incus_publish \
|
|
CNAME="$CNAME" \
|
|
UPSTREAM_NAME=$UPSTREAM_NAME \
|
|
UPSTREAM_VER=$UPSTREAM_VER \
|
|
IMAGE=$IMAGE \
|
|
SERIAL=$SERIAL \
|
|
ALIAS=$ALIAS
|