this repo has no description
1# Tranquil PDS 2 3A Personal Data Server for the AT Protocol. 4 5Bluesky runs on a federated protocol called AT Protocol. Your account lives on a PDS, a server that stores your posts, profile, follows, and cryptographic keys. Bluesky hosts one for you at bsky.social, but you can run your own. Self-hosting means you control your data; you're not dependent on any company's servers, and your account + data is actually yours. 6 7This particular PDS thrives under harsh conditions. It is a dandelion growing through the cracks in the sidewalk concrete. 8 9It has full compatibility with Bluesky's reference PDS: same endpoints, same behavior, same client compatibility. Everything works: repo operations, blob storage, firehose, OAuth, handle resolution, account migration, the lot. 10 11Another excellent PDS is [Cocoon](https://github.com/haileyok/cocoon), written in go. 12 13## What's different about Tranquil PDS 14 15This software isn't an afterthought by a company with limited resources. 16 17It is a superset of the reference PDS, including: multi-channel communication (email, discord, telegram, signal) for verification and alerts. Built-in web UI for account management, OAuth consent, repo browsing, and admin. Granular OAuth scopes with UI support such that users choose exactly what apps can access. 18 19The PDS itself is a single small binary with no node/npm runtime. It does require postgres, valkey, and s3-compatible storage, which makes setup heavier than the reference PDS's sqlite. The tradeoff is that these are battle-tested pieces of infra that we already know how to scale, back up, and monitor. 20 21## Quick Start 22 23```bash 24cp .env.example .env 25podman compose up -d 26just run 27``` 28 29## Configuration 30 31See `.env.example` for all configuration options. 32 33## Development 34 35Run `just` to see available commands. 36 37```bash 38just test 39just lint 40``` 41 42## Production Deployment 43 44### Quick Deploy (Docker/Podman Compose) 45 46Edit `.env.prod` with your values. Generate secrets with `openssl rand -base64 48`. 47 48```bash 49cp .env.prod.example .env.prod 50podman-compose -f docker-compose.prod.yml up -d 51``` 52 53### Installation Guides 54 55| Guide | Best For | 56|-------|----------| 57| [Debian](docs/install-debian.md) | Debian 13+ with systemd | 58| [Alpine](docs/install-alpine.md) | Alpine 3.23+ with OpenRC | 59| [OpenBSD](docs/install-openbsd.md) | OpenBSD 7.8+ with rc.d | 60| [Containers](docs/install-containers.md) | Podman with quadlets or OpenRC | 61| [Kubernetes](docs/install-kubernetes.md) | You know what you're doing | 62 63## Thanks 64 65This 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 67## License 68 69TBD