2025-02-12 21:15:21 +09:00
|
|
|
#!/bin/env bash
|
|
|
|
# Upstream doc: https://docs.kanboard.org/v1/admin/installation/
|
|
|
|
set -euxo pipefail
|
|
|
|
|
|
|
|
IMAGE="ubuntu/24.04"
|
|
|
|
DIST="${IMAGE%%/*}"
|
|
|
|
VER="${IMAGE#*/}"
|
|
|
|
VER="${VER%/*}"
|
|
|
|
VER="${VER//./-}"
|
|
|
|
UPSTREAM_VER="1.2409.15+240915-e1280b2fb"
|
2025-02-12 21:18:07 +09:00
|
|
|
UPSTREAM_VER_DASH="${UPSTREAM_VER//[.+]/-}"
|
2025-02-12 21:15:21 +09:00
|
|
|
UPSTREAM_NAME="photoprism"
|
2025-02-12 21:40:16 +09:00
|
|
|
SERIAL="3benoitjpnet"
|
2025-02-12 21:15:21 +09:00
|
|
|
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 exec "$CNAME" -- apt update
|
|
|
|
incus exec "$CNAME" -- apt upgrade -y
|
|
|
|
incus exec "$CNAME" -- apt install -y --no-install-recommends wget
|
|
|
|
incus exec "$CNAME" -- wget -q "https://dl.photoprism.app/pkg/linux/deb/photoprism_${UPSTREAM_VER}_amd64.deb" -O /tmp/photoprism.deb
|
|
|
|
incus exec "$CNAME" -- apt install -y /tmp/photoprism.deb syncthing
|
|
|
|
incus exec "$CNAME" -- groupadd photoprism
|
|
|
|
incus exec "$CNAME" -- useradd -g photoprism -d /opt/photoprism -s /bin/false photoprism
|
|
|
|
incus exec "$CNAME" -- chown -R photoprism:photoprism /opt/photoprism
|
2025-02-12 21:40:16 +09:00
|
|
|
MARIADB_PASS=$(openssl rand -base64 32)
|
|
|
|
PHOTOPRISM_PASS=$(openssl rand -base64 32)
|
2025-02-12 21:15:21 +09:00
|
|
|
incus exec "$CNAME" -- mysql -e "CREATE DATABASE photoprism;"
|
2025-02-12 21:40:16 +09:00
|
|
|
incus exec "$CNAME" -- mysql -e "CREATE USER 'photoprism'@'localhost' IDENTIFIED BY '$MARIADB_PASS';"
|
2025-02-12 21:15:21 +09:00
|
|
|
incus exec "$CNAME" -- mysql -e "GRANT ALL PRIVILEGES ON photoprism.* TO 'photoprism'@'localhost';"
|
|
|
|
incus exec "$CNAME" -- mysql -e "FLUSH PRIVILEGES;"
|
|
|
|
|
2025-02-12 21:40:16 +09:00
|
|
|
incus file push <(sed -e "s/SED_DATABASE_PASSWORD/$MARIADB_PASS/" -e "s/SED_ADMIN_PASSWORD/$PHOTOPRISM_PASS/" "$WORKSPACE"/defaults.yaml) \
|
|
|
|
"$CNAME"/etc/photoprism/defaults.yml
|
2025-02-12 21:15:21 +09:00
|
|
|
incus file push "$WORKSPACE"/{syncthing,photoprism}.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
|