A minimal AT Protocol Personal Data Server written in JavaScript.
atproto pds
42
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 102 lines 2.7 kB view raw
1services: 2 plc: 3 build: 4 context: https://github.com/did-method-plc/did-method-plc.git 5 dockerfile: packages/server/Dockerfile 6 ports: 7 - "2582:2582" 8 environment: 9 - DATABASE_URL=postgres://plc:plc@postgres:5432/plc 10 - PORT=2582 11 command: ["dumb-init", "node", "--enable-source-maps", "../dist/bin.js"] 12 depends_on: 13 postgres: 14 condition: service_healthy 15 healthcheck: 16 test: ["CMD-SHELL", "wget -q --spider http://localhost:2582/_health || exit 1"] 17 interval: 2s 18 timeout: 5s 19 retries: 15 20 21 relay: 22 image: ghcr.io/bluesky-social/indigo:bigsky-6fcd9317e725af1b3077f386a42b22eadcdc7d7f 23 platform: linux/amd64 24 ports: 25 - "2470:2470" 26 environment: 27 - GOLOG_LOG_LEVEL=info 28 - DATA_DIR=/data 29 - RELAY_ADMIN_KEY=localdev 30 - ATP_PLC_HOST=http://plc:2582 31 # Trust Caddy's internal CA for local HTTPS 32 - SSL_CERT_FILE=/caddy-ca/caddy/pki/authorities/local/root.crt 33 extra_hosts: 34 - "host.docker.internal:host-gateway" 35 volumes: 36 - relay_data:/data 37 - caddy_data:/caddy-ca:ro 38 command: ["/bin/sh", "-c", "cat /caddy-ca/caddy/pki/authorities/local/root.crt >> /etc/ssl/certs/ca-certificates.crt && /bigsky --api-listen :2470"] 39 depends_on: 40 plc: 41 condition: service_healthy 42 caddy: 43 condition: service_healthy 44 healthcheck: 45 test: ["CMD-SHELL", "curl -f http://localhost:2470/xrpc/_health || exit 1"] 46 interval: 2s 47 timeout: 5s 48 retries: 15 49 50 # Caddy reverse proxy - provides HTTPS for the PDS so relay can verify it 51 caddy: 52 image: caddy:2-alpine 53 ports: 54 - "3443:3443" 55 extra_hosts: 56 - "host.docker.internal:host-gateway" 57 volumes: 58 - ./docker/Caddyfile:/etc/caddy/Caddyfile:ro 59 - caddy_data:/data 60 healthcheck: 61 test: ["CMD-SHELL", "nc -z localhost 3443 || exit 1"] 62 interval: 2s 63 timeout: 5s 64 retries: 15 65 start_period: 5s 66 67 postgres: 68 image: postgres:16-alpine 69 environment: 70 - POSTGRES_USER=plc 71 - POSTGRES_PASSWORD=plc 72 - POSTGRES_DB=plc 73 volumes: 74 - plc_data:/var/lib/postgresql/data 75 healthcheck: 76 test: ["CMD-SHELL", "pg_isready -U plc"] 77 interval: 2s 78 timeout: 5s 79 retries: 10 80 81 minio: 82 image: minio/minio:latest 83 ports: 84 - "9000:9000" 85 - "9001:9001" 86 environment: 87 - MINIO_ROOT_USER=minioadmin 88 - MINIO_ROOT_PASSWORD=minioadmin 89 command: server /data --console-address ":9001" 90 volumes: 91 - minio_data:/data 92 healthcheck: 93 test: ["CMD", "mc", "ready", "local"] 94 interval: 2s 95 timeout: 5s 96 retries: 10 97 98volumes: 99 plc_data: 100 relay_data: 101 caddy_data: 102 minio_data: