A minimal AT Protocol Personal Data Server written in JavaScript.
atproto
pds
1import { createServer } from '@pds/deno';
2
3const { listen, close } = await createServer({
4 dbPath: Deno.env.get('PDS_DB_PATH') || './pds.db',
5 blobsDir: Deno.env.get('PDS_BLOBS_DIR') || './blobs',
6 jwtSecret: Deno.env.get('JWT_SECRET') || 'development-secret',
7 port: parseInt(Deno.env.get('PORT') || '3000', 10),
8 hostname: Deno.env.get('HOSTNAME'),
9 appviewUrl: Deno.env.get('APPVIEW_URL'),
10 appviewDid: Deno.env.get('APPVIEW_DID'),
11 relayUrl: Deno.env.get('RELAY_URL'),
12 password: Deno.env.get('PDS_PASSWORD'),
13});
14
15await listen();
16
17// Handle shutdown (SIGINT for Ctrl+C, SIGTERM for Docker/K8s)
18async function shutdown() {
19 console.log('Shutting down...');
20 await close();
21 Deno.exit(0);
22}
23
24Deno.addSignalListener('SIGINT', shutdown);
25Deno.addSignalListener('SIGTERM', shutdown);