Skip to content

๐Ÿฆ‹ Bluesky PDS

Host: Homelab ยท Compose: Homelab/Bluesky/compose.yaml
Stack name: bluesky

1. Overview

A self-hosted Bluesky Personal Data Server (PDS) running the AT Protocol. This allows you to own your Bluesky identity and data under a custom domain (slashd0t.com). Caddy acts as the local TLS reverse proxy, while Dockflare/Cloudflare Tunnel handles external access.


2. Architecture & Services

Service Image Port Role
caddy caddy:2.11 โ€” Local reverse proxy / TLS terminator for the PDS
pds ghcr.io/bluesky-social/pds:0.4.5034 โ€” AT Protocol Personal Data Server

3. Networking

  • cloudflare-net โ€” External network connecting the PDS to the Dockflare Cloudflare tunnel, which exposes:
  • internal โ€” Bridge network connecting Caddy and PDS.

4. Persistent Storage

| Container | Host Path / Volume | Description | |---|---|---|| | caddy | /pds/caddy/data | Caddy TLS certificates and cache | | caddy | /pds/caddy/etc/caddy | Caddy configuration (Caddyfile) | | pds | /pds | All PDS data: repos, blobs, keys |


5. Environment Variables

No environment variables defined.


6. Access & Usage

Endpoint URL
Bluesky Web https://slashd0t.com
PDS API (wildcard) https://*.slashd0t.com
PDS Admin API https://slashd0t.com/xrpc/com.atproto.server.*
# Start the stack
docker compose -f Homelab/Bluesky/compose.yaml up -d

# Check PDS health
curl https://slashd0t.com/xrpc/_health

# View PDS logs
docker compose -f Homelab/Bluesky/compose.yaml logs -f pds

7. Maintenance & Backup

# Update PDS
docker compose -f Homelab/Bluesky/compose.yaml pull
docker compose -f Homelab/Bluesky/compose.yaml up -d

# Backup (all state is in /pds on the host)
rsync -av /pds/ /backup/bluesky/

[!IMPORTANT] Back up /pds regularly. This directory contains your cryptographic keys โ€” loss means you cannot rotate your DID and may lose your identity permanently.