diff --git a/cfg/jobs/forgejo.run b/cfg/jobs/forgejo.run index 8d28030..f04ab42 100755 --- a/cfg/jobs/forgejo.run +++ b/cfg/jobs/forgejo.run @@ -17,8 +17,7 @@ ALIAS="$UPSTREAM_NAME-$UPSTREAM_VER-$SERIAL" cd $WORKSPACE incus launch images:$IMAGE $CNAME --quiet -# Wait for network -timeout 30 bash -c "until incus exec $CNAME -- ping -c1 google.com &>/dev/null; do sleep 1; done" +wait_network $CNAME # Forgejo incus exec $CNAME -- mkdir /etc/esh diff --git a/cfg/jobs/mastodon.run b/cfg/jobs/mastodon.run index 913689f..00c5253 100755 --- a/cfg/jobs/mastodon.run +++ b/cfg/jobs/mastodon.run @@ -17,8 +17,7 @@ ALIAS="$UPSTREAM_NAME-$UPSTREAM_VER-$SERIAL" cd "$WORKSPACE" incus launch images:$IMAGE "$CNAME" --quiet -# Wait for network -timeout 30 bash -c "until incus exec $CNAME -- ping -c1 google.com &>/dev/null; do sleep 1; done" +wait_network $CNAME # Mastodon incus exec "$CNAME" -- bash -c ' diff --git a/cfg/jobs/navidrome.run b/cfg/jobs/navidrome.run index 8b25b1b..f54540b 100755 --- a/cfg/jobs/navidrome.run +++ b/cfg/jobs/navidrome.run @@ -17,8 +17,7 @@ ALIAS="$UPSTREAM_NAME-$UPSTREAM_VER-$SERIAL" cd $WORKSPACE incus launch images:$IMAGE $CNAME --quiet -# Wait network -sleep 5 +wait_network $CNAME # Navidrome incus exec $CNAME -- mkdir /etc/esh @@ -27,11 +26,11 @@ 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 "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 -- 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 navidrome.toml $CNAME/etc/esh/ -incus file push setup.sh $CNAME/usr/local/bin/ incus file push navidrome.service $CNAME/etc/systemd/system/ # Syncthing @@ -41,6 +40,8 @@ incus exec $CNAME -- sed -i \ 's/\(ExecStart=\/usr\/bin\/syncthing serve --no-browser --no-restart --logflags=0\)/\1 --gui-address=0.0.0.0:8384/' \ /etc/systemd/system/syncthing\@.service +# Next manual steps https://www.navidrome.org/docs/installation/linux/#create-configuration-file + # Clean incus exec $CNAME -- \ rm -rf \ diff --git a/cfg/scripts/wait_network b/cfg/scripts/wait_network new file mode 100755 index 0000000..a31f043 --- /dev/null +++ b/cfg/scripts/wait_network @@ -0,0 +1,6 @@ +#!/bin/env bash +# Upstream doc: https://www.navidrome.org/docs/installation/linux/ +set -euxo pipefail + +CNAME="$1" +timeout 30 bash -c "until incus exec $CNAME -- ping -c1 google.com &>/dev/null; do sleep 1; done"