index

NOTE: this is a personal todo list, the gsky.ln4.net domain does not exist, it's all under /etc/hosts and mkcert so i can be sure about what urls i would have to create in the future without having to go back and forth with a dns provider, letsencrypt, etc.

"independent appview" here means that i can run the entire FOSS bluesky stack (from did:plc to appview functionality) without any dependence on bluesky pbc infrastructure

the current versions of my scripts are in https://github.com/lun-4/atproto/tree/luna.gluesky/luna

from How to self-host all of Bluesky (except the AppView (for now)), we need:


random notes before i started making an actual todo list to get into a fully independent system:

PDS is simple, i got scripts that spun up my own and a PDS can be easily shared between multiple users

i need a basic relay service but i don't need to hold the entire network in my server

jetstream seems.. optional? definitely has instructions tho

for my experiments a localhost PLC would be welcome, no need to sync either

social-app is... easy to build, but seems like it hardcodes api.bsky.app a lot, you need lots of places to do patches

appview is... ???? i'm trying to understand the dependencies from social-app to the appview

social-app immediately calls:


<h1 id="returns-country-code">returns country code <a href="#returns-country-code">#</a></h1>

https://bsky.app/ipcc

<h1 id="hardcoded-did:">hardcoded did: <a href="#hardcoded-did:">#</a></h1>

<h1 id="did:plc:z72i7hdynmk6r22z27h6tvur---provides-all-the-feeds">did:plc:z72i7hdynmk6r22z27h6tvur - provides all the feeds <a href="#did:plc:z72i7hdynmk6r22z27h6tvur---provides-all-the-feeds">#</a></h1>

https://api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot&limit=30&lang=en

<h1 id="hardcoded-dids">hardcoded dids <a href="#hardcoded-dids">#</a></h1>

<h1 id="did:plc:ekitcvx7uwnauoqy5oest3hm---br-moderation">did:plc:ekitcvx7uwnauoqy5oest3hm - BR Moderation <a href="#did:plc:ekitcvx7uwnauoqy5oest3hm---br-moderation">#</a></h1>

<h1 id="did:plc:r55ow3tocux5kafs5dq445fy---de-moderation">did:plc:r55ow3tocux5kafs5dq445fy - DE Moderation <a href="#did:plc:r55ow3tocux5kafs5dq445fy---de-moderation">#</a></h1>

<h1 id="did:plc:0ar7c4by46qjdydhdevvrndac---global-bluesky-moderation-(doesn't-seem-hardcoded?)">did:plc:0ar7c4by46qjdydhdevvrndac - Global Bluesky Moderation (doesn't seem hardcoded?) <a href="#did:plc:0ar7c4by46qjdydhdevvrndac---global-bluesky-moderation-(doesn't-seem-hardcoded?)">#</a></h1>

https://public.api.bsky.app/xrpc/app.bsky.labeler.getServices?dids=did:plc:0ar7c4by46qjdydhdevvrndac&dids=did:plc:ekitcvx7uwnauoqy5oest3hm&dids=did:plc:r55ow3tocux5kafs5dq445fy&detailed=true

https://api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot&limit=30&lang=en

https://api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot&cursor=eyJvIjoiMjAyNC0xMS0wOFQxMzo0MjowMS4yODAzOTczNDdaIiwibiI6IjIwMjQtMTEtMDlUMDE6NDI6MDEuMjgwMzk3MzQ3WiIsImYiOjAsImMiOjAsInAiOjAsInRzIjowLCJwZyI6MCwicyI6WzExODQ0OTIwMTcsMTE4NjE0NTg1NiwxMTg2MDg4OTc2LDExODU2MTU3NjcsMTE4NjA3MDYxMSwxMTg2MTczODg4LDExODUyMjYzODUsMTE4NTE1OTMxMCwxMTg1ODIxMTA4LDExODU4NzQ5NjIsMTE4NTQ2MTk3NCwxMTg1MjIwODMwLDExODU2MzQ0NzksMTE4NTE3MzI2MSwxMTg1Nzg5Mzk3LDExODU4MjE1OTQsMTE4NjA3NjkxNywxMTg0OTYwMzIzLDExODYwMDI3MTUsMTE4NTk0NTc3OCwxMTg1NzM5MDc4LDExODU4MzcwODUsMTE4NTg2MjM5NywxMTg1NDE0MjQ4LDExODM2MzgyODQsMTE4NTM2ODkxOCwxMTg1NDMzNDM4LDExODQ4MzE0MDAsMTE4NTc4MTcyOSwxMTg2MDA3ODAwXX0=&limit=30&lang=en

https://public.api.bsky.app/xrpc/app.bsky.feed.getFeed?feed=at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot&limit=1