A minimum viable atproto PDS for protocol experimentation purposes
[!NOTE]
My current focus is on millipds, a more "production grade" rewrite of picopds. picopds is no longer maintained (not that it ever really was in the first place, lol).
A minimum viable atproto PDS for protocol experimentation purposes
It's designed to be a single-user instance (i.e. it only hosts a single repo). This is a hardcoded constraint right now but I might make multiple repos technically possible at some point.
Design and implement a protocol for client-signed commits (so the server can avoid holding signing keys, and enabling the use of user-local HSMs)
A read-only web interface for external sharing of posts.
Copy config.py.example
to config.py
, and edit it.
Run python3 create_identity.py
Update config.py
with the new DID value you just generated
Create an _atproto
TXT DNS record that points your handle domain name to your DID (or alternatively use the HTTP method) (more info here).
Run pds.py
, and make the web server publicly accessible somewhere (I'm using an nginx reverse proxy). You might want to create a systemd unit, or docker container, or something like that (I wouldn't know, I suck at devops/sysadmin).
Run request_crawl.py
to inform the PDS that we exist. (Maybe I'll make this automatic at some point in the future).
Log in with a client (the official https://bsky.app works) and make a post, and the BGS should see it!
Just having fun with python and Bluesky's AT Protocol. Trying to build a simple CLI and enough of SDK to easily explore and collect my own Bluesky data
A small python library to post basic text and media to bsky.app via atproto's xrpc API.
A script for auto-deleting Bluesky posts
A site that measures the current percentage of Bluesky posts missing alt text
🌉 A bridge between decentralized social networks
💬 The social web translator
Your Brand Here!
50K+ engaged viewers every month
Limited spots available!
📧 Contact us via email🦋 Contact us on Bluesky