ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Record data

{
  "uri": "at://did:plc:uu5axsmbm2or2dngy4gwchec/com.whtwnd.blog.entry/3lkubavdilf2m",
  "cid": "bafyreiapqa3yczmkb2f3pehwh4g34gafwli2o527pzgyqusyninkbs4j7m",
  "value": {
    "$type": "com.whtwnd.blog.entry",
    "blobs": [
      {
        "name": "relay.png",
        "blobref": {
          "$type": "blob",
          "ref": {
            "$link": "bafkreifyw4c66jebf3k6rs6xmyfofzzu6yskmspmordanpwhjl47pxsbsi"
          },
          "mimeType": "image/png",
          "size": 195114
        },
        "encoding": "image/png"
      }
    ],
    "theme": "github-light",
    "title": "atproto relay any% speedrun",
    "content": "# atproto relay any% speedrun\n\nHaving seen enough bizarre claims about the cost/difficulty of running a relay that responding to them was getting annoying, I set one up on a 4GB Raspberry Pi 4 ($50) so I can link this post going forward.\n\n## how to do it\n\n1. Grab the `indigo` repo —  `git clone https://github.com/bluesky-social/indigo.git`\n2. Build + deploy the `relay` package — my [compose file](https://gist.github.com/futurGH/2ee18d385eff3ba98f5b35b9dcac0aed#file-docker-compose-yaml) will do that for you\n3. (optional unless you don't want your relay to be useless) Crawl a bunch of PDSes — [script](https://gist.github.com/futurGH/2ee18d385eff3ba98f5b35b9dcac0aed#file-requestcrawl-ts) that does that for you thanks to [@mary.my.id](https://bsky.app/profile/did:plc:ia76kvnndjutgedggx2ibrem)'s [scraped PDS list](https://github.com/mary-ext/atproto-scraping)\n4. ???\n5. Profit\n\nOf course, if you seriously want to use this, you'll want to configure `DATABASE_URL` to point to a Postgres instance instead of using an SQLite file, and you'll probably want to tweak `RELAY_EVENT_PLAYBACK_TTL` based on available storage (I'd estimate 10GB of storage per hour of playback you want to store, just to be on the safe side). You can find those and other environnment variables [here](https://github.com/bluesky-social/indigo/blob/main/cmd/relay/main.go).\n\nCongratulations, you are now running what is, on its own, the most useless atproto service?\n\n## speedrun\n\nhttps://www.youtube.com/watch?v=U_ReYV3CbSg — 01:32 if you exclude the 8 or so minutes it took to build the container\n\n## stats\n\nI forgot to include this in the video, but after a few minutes of leaving the relay going at full throttle, it's running just fine on the Pi — this is the highest it gets, more consistently lingering around 40-50% CPU and 2GB memory\n\n![htop showing 4 cpus at around 80% and ram at 2.44G/3.70G consumption](https://shiitake.us-east.host.bsky.network/xrpc/com.atproto.sync.getBlob?did=did%3Aplc%3Auu5axsmbm2or2dngy4gwchec&cid=bafkreifyw4c66jebf3k6rs6xmyfofzzu6yskmspmordanpwhjl47pxsbsi)",
    "createdAt": "2025-03-21T03:56:34.645Z",
    "visibility": "public"
  }
}