Our Personal Data Server from scratch! tranquil.farm
oauth atproto pds rust postgresql objectstorage fun

chore: update readme

+7 -15
+7 -2
README.md
··· 14 14 15 15 It is a superset of the reference PDS, including: passkeys and 2FA (WebAuthn/FIDO2, TOTP, backup codes, trusted devices), SSO login and signup, did:web support (PDS-hosted subdomains or bring-your-own), multi-channel communication (email, discord, telegram, signal) for verification and alerts, granular OAuth scopes with a consent UI showing human-readable descriptions, app passwords with granular permissions (read-only, post-only, or custom scopes), account delegation (letting others manage an account with configurable permission levels), automatic backups (configurable retention and frequency, one-click restore), and a built-in web UI for account management, OAuth consent, repo browsing, and admin. 16 16 17 - The PDS itself is a single small binary with no node/npm runtime. It requires postgres and stores blobs on the local filesystem. Valkey is optional (enables distributed rate limiting for multi-node setups). The tradeoff vs the reference PDS's sqlite is that postgres is a battle-tested piece of infra that we already know how to scale, back up, and monitor. 17 + The PDS itself is a single small binary with no node/npm runtime. It requires postgres and stores blobs on the local filesystem. Valkey is optional (enables distributed rate limiting for multi-node setups). 18 18 19 19 ## Quick Start 20 20 ··· 56 56 | [Containers](docs/install-containers.md) | Podman with quadlets or OpenRC | 57 57 | [Kubernetes](docs/install-kubernetes.md) | You know what you're doing | 58 58 59 + ## Maintainers to ping 60 + 61 + - [@lewis.moe](https://bsky.app/profile/did:plc:3fwecdnvtcscjnrx2p4n7alz) 62 + - [@nel.pet](https://bsky.app/profile/did:plc:h5wsnqetncv6lu2weom35lg2) 63 + 59 64 ## Thanks 60 65 61 - This project is very grateful to [@nel.pet](https://bsky.app/profile/did:plc:h5wsnqetncv6lu2weom35lg2), [@nonbinary.computer](https://bsky.app/profile/did:plc:yfvwmnlztr4dwkb7hwz55r2g), [@juli.ee](https://bsky.app/profile/did:plc:7vimlesenouvuaqvle42yhvo), [@mary.my.id](https://bsky.app/profile/did:plc:ia76kvnndjutgedggx2ibrem), and [@baileytownsend.dev](https://bsky.app/profile/did:plc:rnpkyqnmsw4ipey6eotbdnnf) for their help and their code to lean on. 66 + This project is very grateful to [@nonbinary.computer](https://bsky.app/profile/did:plc:yfvwmnlztr4dwkb7hwz55r2g), [@juli.ee](https://bsky.app/profile/did:plc:7vimlesenouvuaqvle42yhvo), [@mary.my.id](https://bsky.app/profile/did:plc:ia76kvnndjutgedggx2ibrem), and [@baileytownsend.dev](https://bsky.app/profile/did:plc:rnpkyqnmsw4ipey6eotbdnnf) for their help and their code to lean on. 62 67 63 68 ## License 64 69
-13
ref_pds_downloader.sh
··· 1 - #!/bin/bash 2 - echo "Downloading bluesky-social/atproto pds package" 3 - mkdir reference-pds-bsky 4 - cd reference-pds-bsky 5 - git init 6 - git remote add origin https://github.com/bluesky-social/atproto.git 7 - git config core.sparseCheckout true 8 - echo "packages/pds" >> .git/info/sparse-checkout 9 - git pull --depth 1 origin main 10 - mv packages/pds/* . 11 - rm -rf packages .git 12 - cd .. 13 - echo "Downloads complete!"