#!/bin/env bash # Upstream doc: https://docs.joinmastodon.org/admin/install/ set -euxo pipefail IMAGE="ubuntu/24.04" DIST="${IMAGE%%/*}" VER="${IMAGE#*/}" VER="${VER%/*}" VER="${VER//./-}" UPSTREAM_VER="4.3.1" UPSTREAM_VER_DASH="${UPSTREAM_VER//./-}" UPSTREAM_NAME="mastodon" 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" # Mastodon incus exec "$CNAME" -- bash -c ' apt update && \ apt upgrade -y && \ apt install -y --no-install-recommends \ curl \ wget \ gnupg \ apt-transport-https \ lsb-release \ ca-certificates ' incus file push "$WORKSPACE"/{setup.sh,setup_mastodon.sh,postgresql.conf} \ "$CNAME"/tmp/ incus exec "$CNAME" -- bash /tmp/setup.sh incus exec "$CNAME" \ --user 1001 \ --env HOME=/home/mastodon \ --force-noninteractive \ -- bash /tmp/setup_mastodon.sh laminarc run incus_publish \ CNAME="$CNAME" \ UPSTREAM_NAME=$UPSTREAM_NAME \ UPSTREAM_VER=$UPSTREAM_VER \ IMAGE=$IMAGE \ SERIAL=$SERIAL \ ALIAS=$ALIAS