QuickDID is a high-performance AT Protocol identity resolution service written in Rust. It provides handle-to-DID resolution with Redis-backed caching and queue processing.
at main 59 lines 1.7 kB view raw
1#!/bin/bash 2 3# Script to generate .well-known static files based on QuickDID configuration 4# Usage: HTTP_EXTERNAL=quickdid.smokesignal.tools ./generate-wellknown.sh 5# 6# Note: Since we no longer process SERVICE_KEY, you'll need to manually 7# add the public key to the did.json file if you need DID document support. 8 9set -e 10 11# Check required environment variables 12if [ -z "$HTTP_EXTERNAL" ]; then 13 echo "Error: HTTP_EXTERNAL environment variable is required" 14 echo "Usage: HTTP_EXTERNAL=example.com ./generate-wellknown.sh" 15 exit 1 16fi 17 18# Ensure www/.well-known directory exists 19mkdir -p www/.well-known 20 21# Generate service DID from HTTP_EXTERNAL 22if [[ "$HTTP_EXTERNAL" == *":"* ]]; then 23 # Contains port - URL encode the colon 24 SERVICE_DID="did:web:${HTTP_EXTERNAL//:/%3A}" 25else 26 SERVICE_DID="did:web:$HTTP_EXTERNAL" 27fi 28 29echo "Generating .well-known files for $SERVICE_DID" 30 31# Write atproto-did file 32echo "$SERVICE_DID" > www/.well-known/atproto-did 33echo "Created: www/.well-known/atproto-did" 34 35# Create a basic did.json template 36# Note: You'll need to manually add the publicKeyMultibase if you need DID document support 37 38cat > www/.well-known/did.json <<EOF 39{ 40 "@context": [ 41 "https://www.w3.org/ns/did/v1", 42 "https://w3id.org/security/multikey/v1" 43 ], 44 "id": "$SERVICE_DID", 45 "verificationMethod": [], 46 "service": [ 47 { 48 "id": "${SERVICE_DID}#quickdid", 49 "type": "QuickDIDService", 50 "serviceEndpoint": "https://${HTTP_EXTERNAL}" 51 } 52 ] 53} 54EOF 55 56echo "Created: www/.well-known/did.json" 57echo "" 58echo "Note: The did.json file is a basic template. If you need DID document support," 59echo "you'll need to manually add the verificationMethod with your public key."