this repo has no description
1# pds.js
2
3A zero-dependency AT Protocol Personal Data Server written in JavaScript, running on Cloudflare Workers with Durable Objects.
4
5> ⚠️ **Work in progress** - This is experimental. You probably shouldn't use this yet.
6
7## Prerequisites
8
9- Node.js 18+
10- [shfmt](https://github.com/mvdan/sh) (optional, for `npm run format`)
11 ```bash
12 brew install shfmt
13 ```
14
15## Quick Start
16
17```bash
18npm install
19
20# Create local dev config
21cp .env.example .dev.vars
22# Edit .dev.vars with your values
23
24# Run locally
25npm run dev
26```
27
28## Configuration
29
30For local development, create `.dev.vars`:
31
32```
33PDS_PASSWORD=your-password
34JWT_SECRET=your-secret
35RELAY_HOST=https://bsky.network # optional
36```
37
38For production, use Cloudflare secrets:
39
40```bash
41wrangler secret put PDS_PASSWORD
42wrangler secret put JWT_SECRET
43wrangler secret put RELAY_HOST # optional
44```
45
46## Testing
47
48```bash
49npm test # Unit tests
50npm run test:e2e # E2E tests (starts local server)
51```
52
53## Deploy
54
55```bash
56wrangler deploy
57```
58
59## Initialize
60
61After deployment, run the setup script to register with PLC and initialize:
62
63```bash
64npm run setup -- --pds https://your-pds.workers.dev
65```
66
67This generates keys, registers your DID with the PLC directory, initializes the PDS, and saves credentials. Handle defaults to the worker hostname.