An atproto PDS written in Go
at main 1.7 kB view raw
1#!/bin/sh 2 3INVITE_FILE="/keys/initial-invite-code.txt" 4MARKER="/keys/.invite_created" 5 6# Check if invite code was already created 7if [ -f "$MARKER" ]; then 8 echo "✓ Initial invite code already created" 9 exit 0 10fi 11 12echo "Waiting for database to be ready..." 13sleep 10 14 15# Try to create invite code - retry until database is ready 16MAX_ATTEMPTS=30 17ATTEMPT=0 18INVITE_CODE="" 19 20while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do 21 ATTEMPT=$((ATTEMPT + 1)) 22 OUTPUT=$(/cocoon create-invite-code --uses 1 2>&1) 23 INVITE_CODE=$(echo "$OUTPUT" | grep -oE '[a-zA-Z0-9]{8}-[a-zA-Z0-9]{8}' || echo "") 24 25 if [ -n "$INVITE_CODE" ]; then 26 break 27 fi 28 29 if [ $((ATTEMPT % 5)) -eq 0 ]; then 30 echo " Waiting for database... ($ATTEMPT/$MAX_ATTEMPTS)" 31 fi 32 sleep 2 33done 34 35if [ -n "$INVITE_CODE" ]; then 36 echo "" 37 echo "╔════════════════════════════════════════╗" 38 echo "║ SAVE THIS INVITE CODE! ║" 39 echo "║ ║" 40 echo "$INVITE_CODE" 41 echo "║ ║" 42 echo "║ Use this to create your first ║" 43 echo "║ account on your PDS. ║" 44 echo "╚════════════════════════════════════════╝" 45 echo "" 46 47 echo "$INVITE_CODE" > "$INVITE_FILE" 48 echo "✓ Invite code saved to: $INVITE_FILE" 49 50 touch "$MARKER" 51 echo "✓ Initial setup complete!" 52else 53 echo "✗ Failed to create invite code" 54 echo "Output: $OUTPUT" 55 exit 1 56fi