# Misskey: one container on the shared Postgres (database misskey) and Redis (db 2). The first account, made with the # setup password, is the scenario's user; its token is kept in .state/misskey.token. MISSKEY_IMAGE=${MISSKEY_IMAGE:-docker.io/misskey/misskey:2026.10.0} MISSKEY_NAME=${MISSKEY_NAME:-misskey} . "$here/peers/shared.sh" misskey_up() { shared_postgres_up shared_redis_up podman exec pasture-postgres sh -c "psql -U pasture -tc \"select 1 from pg_database where datname='$MISSKEY_NAME'\" | grep -q 1 || createdb -U pasture $MISSKEY_NAME" mkdir -p "$here/.state/$MISSKEY_NAME" cat > "$here/.state/$MISSKEY_NAME/default.yml" </dev/null for _ in $(seq 1 120); do site "$MISSKEY_NAME.test" -s -o /dev/null -w '%{http_code}' -X POST "https://$MISSKEY_NAME.test:6443/api/meta" -H 'Content-Type: application/json' -d '{}' 2>/dev/null | grep -q 200 && break sleep 3 done site "$MISSKEY_NAME.test" -s -X POST "https://$MISSKEY_NAME.test:6443/api/admin/accounts/create" -H 'Content-Type: application/json' \ -d '{"username":"mkuser","password":"Misskey-Pasture-Pass-1","setupPassword":"pasture-setup"}' \ | python3 -c "import sys,json; print(json.load(sys.stdin)['token'])" > "$here/.state/$MISSKEY_NAME.token" 2>/dev/null || true # a new Misskey federates with nobody (federation: none) until its admin says otherwise site "$MISSKEY_NAME.test" -s -o /dev/null -X POST "https://$MISSKEY_NAME.test:6443/api/admin/update-meta" -H 'Content-Type: application/json' \ -d "{\"i\":\"$(cat "$here/.state/$MISSKEY_NAME.token")\",\"federation\":\"all\"}" echo "$MISSKEY_NAME: https://$MISSKEY_NAME.test:6443" }