A lexicon-driven AppView for ATProto.
2.8 kB
95 lines
1services:
2 postgres:
3 image: postgres:17
4 environment:
5 POSTGRES_USER: happyview
6 POSTGRES_PASSWORD: happyview
7 POSTGRES_DB: happyview_test
8 ports:
9 - "5434:5432"
10 volumes:
11 - ./scripts/init-e2e-dbs.sql:/docker-entrypoint-initdb.d/init-e2e-dbs.sql:ro
12 healthcheck:
13 test: ["CMD-SHELL", "pg_isready -U happyview -d happyview_test"]
14 interval: 5s
15 timeout: 5s
16 retries: 10
17 start_period: 5s
18
19 plc:
20 build:
21 context: https://github.com/did-method-plc/did-method-plc.git
22 dockerfile: packages/server/Dockerfile
23 environment:
24 DB_CREDS_JSON: '{"username":"happyview","password":"happyview","host":"postgres","port":"5432","database":"plc"}'
25 ENABLE_MIGRATIONS: "true"
26 DB_MIGRATE_CREDS_JSON: '{"username":"happyview","password":"happyview","host":"postgres","port":"5432","database":"plc"}'
27 PORT: "2582"
28 ports:
29 - "2582:2582"
30 depends_on:
31 postgres:
32 condition: service_healthy
33
34 pds:
35 image: atcr.io/tranquil.farm/tranquil-pds:latest
36 environment:
37 DATABASE_URL: postgres://happyview:happyview@postgres:5432/pds
38 PLC_DIRECTORY_URL: http://plc:2582
39 TRANQUIL_PDS_ALLOW_INSECURE_SECRETS: "1"
40 volumes:
41 - ./scripts/e2e-config.toml:/etc/tranquil-pds/config.toml:ro
42 ports:
43 - "3100:3000"
44 depends_on:
45 postgres:
46 condition: service_healthy
47 plc:
48 condition: service_started
49
50 caddy:
51 image: caddy:2-alpine
52 volumes:
53 - ./scripts/e2e-Caddyfile:/etc/caddy/Caddyfile:ro
54 - caddy_data:/data
55 ports:
56 - "443:443"
57 networks:
58 default:
59 aliases:
60 - pds.localhost
61
62 happyview:
63 build:
64 context: .
65 dockerfile: Dockerfile
66 # The image runs as the non-root `app` user, but the e2e entrypoint needs
67 # root to read Caddy's root-owned CA and install it into the trust store. It
68 # drops back to `app` before launching the server.
69 user: root
70 entrypoint: ["/bin/sh", "/e2e-entrypoint.sh"]
71 environment:
72 DATABASE_URL: postgres://happyview:happyview@postgres:5432/happyview_test
73 PUBLIC_URL: http://127.0.0.1:3200
74 HOST: 0.0.0.0
75 PORT: "3000"
76 PLC_URL: http://plc:2582
77 RELAY_URL: http://plc:2582
78 SESSION_SECRET: e2e-test-secret-that-is-at-least-32-bytes
79 TOKEN_ENCRYPTION_KEY: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
80 JETSTREAM_URL: wss://jetstream1.us-east.bsky.network
81 ports:
82 - "3200:3000"
83 volumes:
84 - ./scripts/e2e-entrypoint.sh:/e2e-entrypoint.sh:ro
85 - caddy_data:/caddy-data:ro
86 depends_on:
87 postgres:
88 condition: service_healthy
89 plc:
90 condition: service_started
91 caddy:
92 condition: service_started
93
94volumes:
95 caddy_data: