Vernissage joins the pasture on SQLite with its queues on the shared Redis; scenarios/vernissage.sh: follows both ways, a photo with its alt text, likes, boosts and comments both ways, a deletion, the unfollow and statistics: 19 checks, with no change to PrivaPub. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
26 lines
1.7 KiB
Bash
26 lines
1.7 KiB
Bash
# Vernissage 1.43.0: photo sharing in Swift (Vapor), Pixelfed's neighbour: every top-level post carries photos with
|
|
# their EXIF (camera, lens, film...), comments thread under them. Its image on SQLite with local storage in its own
|
|
# volume and its queues on the shared Redis (database 0, the last free one: without queues it federates nothing), as
|
|
# vernissage.test; its TLS client reads the system's roots, over which the pasture's bundle goes. It seeds an
|
|
# admin (admin/admin) whose token comes from its login API.
|
|
VERNISSAGE_IMAGE=${VERNISSAGE_IMAGE:-docker.io/mczachurski/vernissage-server:v1.43.0}
|
|
|
|
. "$here/peers/shared.sh"
|
|
|
|
vernissage_up() {
|
|
shared_redis_up
|
|
podman volume exists pasture-vernissage || podman volume create --label pasture=1 pasture-vernissage >/dev/null
|
|
podman run -d --replace --name pasture-vernissage --label pasture=1 --network $net -v pasture-vernissage:/data \
|
|
-e VERNISSAGE_BASEADDRESS=https://vernissage.test -e VERNISSAGE_CONNECTIONSTRING=/data/vernissage.db -e VERNISSAGE_QUEUEURL=redis://redis:6379/0 \
|
|
-v "$ca/bundle.pem:/etc/ssl/certs/ca-certificates.crt:z,ro" $VERNISSAGE_IMAGE >/dev/null
|
|
for _ in $(seq 1 60); do
|
|
site vernissage.test -s -o /dev/null -w '%{http_code}' https://vernissage.test:6443/.well-known/nodeinfo 2>/dev/null | grep -q 200 && break
|
|
sleep 2
|
|
done
|
|
mkdir -p "$here/.state/vernissage"
|
|
site vernissage.test -s -X POST https://vernissage.test:6443/api/v1/account/login -H 'Content-Type: application/json' \
|
|
-d '{"userNameOrEmail":"admin","password":"admin"}' \
|
|
| python3 -c 'import json, sys; print(json.load(sys.stdin).get("accessToken", ""))' > "$here/.state/vernissage/admin.token"
|
|
echo "vernissage: https://vernissage.test:6443"
|
|
}
|