1name: tangled-local-infra
2services:
3 caddy:
4 container_name: caddy
5 image: caddy:2
6 depends_on:
7 - pds
8 restart: unless-stopped
9 cap_add:
10 - NET_ADMIN
11 ports:
12 - "80:80"
13 - "443:443"
14 - "443:443/udp"
15 volumes:
16 - ./Caddyfile:/etc/caddy/Caddyfile
17 - ./cert/localtangled:/data/pki/authorities/localtangled
18 - caddy_data:/data
19 - caddy_config:/config
20
21 plc:
22 image: ghcr.io/bluesky-social/did-method-plc:plc-f2ab7516bac5bc0f3f86842fa94e996bd1b3815b
23 # did-method-plc only provides linux/amd64
24 platform: linux/amd64
25 container_name: plc
26 restart: unless-stopped
27 depends_on:
28 - plc_db
29 environment:
30 DEBUG_MODE: 1
31 LOG_ENABLED: "true"
32 LOG_LEVEL: "debug"
33 LOG_DESTINATION: 1
34 DB_CREDS_JSON: &DB_CREDS_JSON '{"username":"pg","password":"password","host":"plc_db","port":5432}'
35 DB_MIGRATE_CREDS_JSON: *DB_CREDS_JSON
36 PLC_VERSION: 0.0.1
37 PORT: 8080
38
39 plc_db:
40 image: postgres:14.4-alpine
41 container_name: plc_db
42 environment:
43 - POSTGRES_USER=pg
44 - POSTGRES_PASSWORD=password
45 - PGPORT=5432
46 volumes:
47 - plc:/var/lib/postgresql/data
48
49 pds:
50 container_name: pds
51 image: ghcr.io/bluesky-social/pds:0.4
52 restart: unless-stopped
53 volumes:
54 - pds:/pds
55 env_file:
56 - ./pds.env
57
58 jetstream:
59 container_name: jetstream
60 image: ghcr.io/bluesky-social/jetstream:sha-0ab10bd
61 restart: unless-stopped
62 volumes:
63 - jetstream:/data
64 environment:
65 - JETSTREAM_DATA_DIR=/data
66 # livness check interval to restart when no events are received (default: 15sec)
67 - JETSTREAM_LIVENESS_TTL=300s
68 - JETSTREAM_WS_URL=ws://pds:3000/xrpc/com.atproto.sync.subscribeRepos
69
70volumes:
71 caddy_config:
72 caddy_data:
73 plc:
74 pds:
75 jetstream: