+19
-8
README.md
+19
-8
README.md
···
1
1
# Tranquil PDS
2
2
3
-
A production-grade Personal Data Server (PDS) for the AT Protocol. Drop-in replacement for Bluesky's reference PDS, written in rust with postgres and s3-compatible blob storage.
3
+
A Personal Data Server for the AT Protocol.
4
+
5
+
Bluesky 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
+
7
+
This particular PDS thrives under harsh conditions. It is a dandelion growing through the cracks in the sidewalk concrete.
8
+
9
+
It 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
+
11
+
Another excellent PDS is [Cocoon](https://github.com/haileyok/cocoon), written in go.
12
+
13
+
## What's different about Tranquil PDS
14
+
15
+
This software isn't an afterthought by a company with limited resources.
4
16
5
-
## Features
17
+
It 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.
6
18
7
-
- Full AT Protocol support (`com.atproto.*` endpoints)
8
-
- OAuth 2.1 provider (PKCE, DPoP, PAR)
9
-
- WebSocket firehose (`subscribeRepos`)
10
-
- Multi-channel notifications (email, discord, telegram, signal)
11
-
- Built-in web UI for account management
12
-
- Per-IP rate limiting
19
+
The 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.
13
20
14
21
## Quick Start
15
22
···
52
59
| [OpenBSD](docs/install-openbsd.md) | OpenBSD 7.8+ with rc.d |
53
60
| [Containers](docs/install-containers.md) | Podman with quadlets or OpenRC |
54
61
| [Kubernetes](docs/install-kubernetes.md) | You know what you're doing |
62
+
63
+
## Thanks
64
+
65
+
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.
55
66
56
67
## License
57
68
+2
-4
docs/install-debian.md
+2
-4
docs/install-debian.md
···
1
1
# Tranquil PDS Production Installation on Debian
2
-
> **Warning**: These instructions are untested and theoretical, written from the top of Lewis' head. They may contain errors or omissions. This warning will be removed once the guide has been verified.
3
-
4
-
This guide covers installing Tranquil PDS on Debian 13 "Trixie".
2
+
This guide covers installing Tranquil PDS on Debian 13.
5
3
6
4
## Prerequisites
7
5
- A VPS with at least 2GB RAM and 20GB disk
8
6
- A domain name pointing to your server's IP
9
-
- A **wildcard TLS certificate** for `*.pds.example.com` (user handles are served as subdomains)
7
+
- A wildcard TLS certificate for `*.pds.example.com` (user handles are served as subdomains)
10
8
- Root or sudo access
11
9
## 1. System Setup
12
10
```bash