ATP Keyserver#
Secure storage and distribution of cryptographic keys in ATProto applications.
This repository was originally a fork of https://github.com/muni-town/roomy-keyserver
Overview#
This monorepo contains:
- Server (
packages/server) - Keyserver service for secure key storage and distribution - Client (
packages/client) - TypeScript client library with end-to-end encryption - Documentation (
docs/) - Complete architecture and implementation guides
Quick Start#
# Install dependencies
bun install
# Run server in development mode
bun run dev:server
# (in another terminal) Build client package
bun run build:client
Packages#
@atpkeyserver/server#
Keyserver service that manages cryptographic keys for ATProto applications:
- Ed25519 asymmetric keypair management
- XChaCha20-Poly1305 symmetric key distribution
- Key versioning and rotation
- Group-based access control
- JWT authentication via ATProto service auth
@atpkeyserver/client#
Client library for keyserver integration:
- End-to-end encryption functions
- Type-safe keyserver API
- Automatic service auth token management
- Built-in key caching
Documentation#
Getting Started#
- Client README - Quick start for using the client library
- Server README - Server deployment guide
Technical Documentation#
- Encryption Protocol - End-to-end encryption protocol specification
- API Reference - Complete API endpoint reference
- Architecture - Server-side architecture and design
- Security Best Practices - Security guidelines and threat model
Implementation#
- Client Implementation Strategy - Client library design decisions
Requirements#
- Bun v1.0 or higher (for server)
- Node.js 22+ (for client)
Development#
# Install all dependencies
bun install
# Run server in development mode
bun run dev:server
# (in another terminal) Run client in watch mode
bun run dev:client
# (Optional) Format all code with Prettier
bun run format
Running on production#
# Set required environment variables
export DID=your-service-did
export PORT=4000
# Start server
bun run start:server
See more in the Deployment checklist in the server README.
License#
See LICENSE.md
Documentation partially generated by Claude Code. Revised and adjusted by the project maintainer.