Our Personal Data Server from scratch!
tranquil.farm
oauth
atproto
pds
rust
postgresql
objectstorage
fun
1services:
2 app:
3 build:
4 context: .
5 dockerfile: Dockerfile
6 image: tranquil-pds
7 ports:
8 - "3000:3000"
9 env_file:
10 - ./.env
11 environment:
12 DATABASE_URL: postgres://postgres:postgres@db:5432/pds
13 volumes:
14 - ./config.toml:/etc/tranquil-pds/config.toml:ro
15 - blob_data:/var/lib/tranquil/blobs
16 - backup_data:/var/lib/tranquil/backups
17 depends_on:
18 - db
19
20 frontend:
21 build:
22 context: ./frontend
23 dockerfile: Dockerfile
24 image: tranquil-pds-frontend
25 ports:
26 - "8080:80"
27 depends_on:
28 - app
29
30 db:
31 image: postgres:18-alpine
32 environment:
33 POSTGRES_USER: postgres
34 POSTGRES_PASSWORD: postgres
35 POSTGRES_DB: pds
36 ports:
37 - "5432:5432"
38 volumes:
39 - postgres_data:/var/lib/postgresql
40
41 prometheus:
42 image: prom/prometheus:v3.8.0
43 ports:
44 - "9090:9090"
45 volumes:
46 - ./observability/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
47 - prometheus_data:/prometheus
48 command:
49 - '--config.file=/etc/prometheus/prometheus.yaml'
50 - '--storage.tsdb.path=/prometheus'
51 depends_on:
52 - app
53
54volumes:
55 postgres_data:
56 blob_data:
57 backup_data:
58 prometheus_data: