/x/perimental project monorepo
README.md

Setting up a Bluesky did:web account #

  • PDS provisioning
    • civo sshkey create
    • Terraform to create instance
    • Find ubuntu diskimage
    • Create instance
    • Install Docker and Docker Compose
    • Setup rclone for backups
    • Set AWS route53 zone
    • engram.within.website
  • Install PDS
    • curl2bash
    • manually patched script to support ubuntu 24.04
    • root is a reserved username, okay
  • Test login
    • Can't verify email address
  • Making did:web account hosting stuff
    • Point cetacean.club to Tigris
    • tigris bucket
    • Route 53 doesn't allow CNAME at the apex domain
    • Had to use the DNS provider to get the IP addresses of Tigris
    • Nope, tigris wants a CNAME, failing to the.cetacean.club
  • did:web account
    • generate privkey / pubkey
      • put in 1password
    • generate did.json
    • upload to tigris
    • I put the DID document in the wrong place
      • fuck I needed to do this:
        aws s3 cp did.json s3://the.cetacean.club/.well-known/did.json
        
    • Create invite code with pdsadmin
    • Sign up
      {
        "level": 50,
        "time": 1732561457309,
        "pid": 7,
        "hostname": "engram",
        "name": "xrpc-server",
        "status": 400,
        "message": "External handle did not resolve to DID",
        "msg": "error in xrpc method com.atproto.server.createAccount"
      }
      
    • add DNS and HTTP verification
      resource "aws_route53_record" "_atproto_the_cetacean_club" {
        zone_id = data.aws_route53_zone.cetacean_club.zone_id
        name = "_atproto.${tigris_bucket.the-cetacean.bucket}"
        type = "TXT"
        ttl = "3600"
        records = ["did=did:web:the.cetacean.club"]
      }
      
      HTTP:
      did:web:the.cetacean.club
      
      Then:
      aws s3 cp atproto-did s3://the.cetacean.club/.well-known/atproto-did
      
    • how to verify/activate your account