A from-scratch atproto PDS implementation in Python (mirrors https://github.com/DavidBuchanan314/millipds)
at main 49 lines 1.1 kB view raw
1#!/bin/sh 2 3if [ "$3" = "" ] 4then 5 echo "USAGE: $0 <handle> <pds_host> <plc_host>" 6 exit 7fi 8 9set -eu 10 11HANDLE=$1 12PDS_HOST=$2 13PLC_HOST=$3 14 15ROTATION_KEY_PATH="${HANDLE}_rotation_key.pem" 16REPO_KEY_PATH="${HANDLE}_repo_key.pem" 17GENESIS_JSON_PATH="${HANDLE}_plc_genesis.json" 18DID_LOG_PATH="${HANDLE}_did.txt" 19 20echo "Generating keys..." 21 22millipds util keygen > $ROTATION_KEY_PATH 23millipds util keygen > $REPO_KEY_PATH 24 25DID_PLC=$( 26 millipds util plcgen \ 27 --genesis_json=$GENESIS_JSON_PATH \ 28 --rotation_key=$ROTATION_KEY_PATH \ 29 --handle=$HANDLE \ 30 --pds_host=$PDS_HOST \ 31 --repo_pubkey=$(millipds util print_pubkey $REPO_KEY_PATH) 32) 33 34echo $DID_PLC > $DID_LOG_PATH 35 36echo "Submitting genesis op to PLC..." 37 38PLC_URL="${PLC_HOST}/${DID_PLC}" 39 40curl --json @$GENESIS_JSON_PATH $PLC_URL 41echo 42echo 43echo "Created identity for ${HANDLE} at ${PLC_URL}" 44echo 45echo "rotation key has been saved to ${ROTATION_KEY_PATH}" 46echo "repo signing key has been saved to ${REPO_KEY_PATH}" 47echo "did:plc string has been logged to ${DID_LOG_PATH}" 48echo 49echo "Please store the rotation key somewhere especially safe!"