T12: Misskey 2026.10 in the pasture
peers/misskey.sh runs Misskey on the shared Postgres and Redis. Its config is generated with the pasture's private networks allowed and a setup password, it trusts Caddy's CA through NODE_EXTRA_CA_CERTS, and the first account it makes is the scenario's user. A new Misskey federates with nobody, so the setup also turns federation on. scenarios/misskey.sh adds 35 checks, all passing, as listed in docs/INTEROP.md. They cover posts, CW, MFM source, replies, unicode reactions both ways and their withdrawal, likes as reactions, legacy quotes both ways, polls, specified notes, media, deletes, unfollow, block and statistics. MISSKEY_NAME and MISSKEY_IMAGE are there so Sharkey can reuse the peer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ELjqpznMFMNrJoJUj6K5p2
This commit is contained in:
1 parent
d4e9acdb79
commit
e29da1b47a
6 files changed
+208
No files matched your search
@@ -0,0 +1,48 @@
|
||||
# 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" <<YML
|
||||
url: https://$MISSKEY_NAME.test/
|
||||
port: 3000
|
||||
db:
|
||||
host: postgres
|
||||
port: 5432
|
||||
db: $MISSKEY_NAME
|
||||
user: pasture
|
||||
pass: pasture
|
||||
dbReplications: false
|
||||
redis:
|
||||
host: redis
|
||||
port: 6379
|
||||
db: ${MISSKEY_REDIS_DB:-2}
|
||||
fulltextSearch:
|
||||
provider: sqlLike
|
||||
id: 'aidx'
|
||||
setupPassword: pasture-setup
|
||||
allowedPrivateNetworks:
|
||||
- '10.0.0.0/8'
|
||||
- '172.16.0.0/12'
|
||||
- '192.168.0.0/16'
|
||||
YML
|
||||
podman run -d --replace --name pasture-$MISSKEY_NAME --network $net -e NODE_EXTRA_CA_CERTS=/pasture/ca/root.crt \
|
||||
-v "$here/.state/$MISSKEY_NAME:/misskey/.config:z,ro" -v "$ca:/pasture/ca:z,ro" $MISSKEY_IMAGE >/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"
|
||||
}
|
||||
Reference in new issue
Block a user