Files
SocialPub/tools/pasture/peers/misskey.sh
T

48 lines
2.2 KiB
Bash
Raw Normal View History

2026-10-03 13:29:17 +02:00
# 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_HOME:-/misskey}/.config:z,ro" -v "$ca:/pasture/ca:z,ro" $MISSKEY_IMAGE >/dev/null
2026-10-03 13:29:17 +02:00
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"
}