Laminar/cfg/jobs/mastodon.run
2024-11-14 21:33:17 +09:00

49 lines
1.1 KiB
Bash
Executable file

#!/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=$UPSTREAM_NAME \
UPSTREAM_VER=$UPSTREAM_VER \
IMAGE=$IMAGE \
SERIAL=$SERIAL \
ALIAS=$ALIAS