unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1#!/bin/bash
2
3# Use this to update the admin user in Wafrn to support login to the bsky PDS instance
4
5SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
6
7source "${SCRIPT_DIR}/../../.env"
8
9NEW_USERNAME=${1:-wafrnadmin}
10
11echo Generating new invite code
12
13NEW_CODE=$(docker exec wafrn-pds-1 wget -q -O - --header "Content-Type: application/json" --post-data '{"useCount":1}' http://admin:${PDS_ADMIN_PASSWORD}@localhost:3000/xrpc/com.atproto.server.createInviteCode | jq --raw-output '.code')
14
15echo Invite code genrated: ${NEW_CODE}
16
17PASSWORD=$(openssl rand -base64 24 | tr '+/' '_-')
18
19echo Password generated was "\"$PASSWORD\""
20
21echo Creating admin account
22
23RESULT=$(docker exec wafrn-pds-1 wget -q -O - --header "Content-Type: application/json" --post-data "{\"email\":\"${ADMIN_USER}@${DOMAIN_NAME}\", \"handle\":\"${NEW_USERNAME}.${PDS_DOMAIN_NAME}\", \"password\":\"${PASSWORD}\", \"inviteCode\":\"${NEW_CODE}\"}" http://admin:${PDS_ADMIN_PASSWORD}@localhost:3000/xrpc/com.atproto.server.createAccount)
24
25echo $RESULT
26
27DID="$(echo $RESULT | jq --raw-output '.did')"
28
29echo "Generated DID: ${DID}"
30
31echo "Updating database with details"
32
33docker exec -i wafrn-db-1 psql -d ${POSTGRES_DBNAME} -c "UPDATE users SET \"bskyAuthData\"='${PASSWORD}', \"bskyDid\"='${DID}', \"enableBsky\"=TRUE WHERE url = '${ADMIN_USER}';"