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 environment:
10 DATABASE_URL: postgres://postgres:postgres@db:5432/pds
11 volumes:
12 - ./config.toml:/etc/tranquil-pds/config.toml:ro
13 - blob_data:/var/lib/tranquil/blobs
14 - backup_data:/var/lib/tranquil/backups
15 depends_on:
16 - db
17
18 frontend:
19 build:
20 context: ./frontend
21 dockerfile: Dockerfile
22 image: tranquil-pds-frontend
23 ports:
24 - "8080:80"
25 depends_on:
26 - app
27
28 db:
29 image: postgres:18-alpine
30 environment:
31 POSTGRES_USER: postgres
32 POSTGRES_PASSWORD: postgres
33 POSTGRES_DB: pds
34 ports:
35 - "5432:5432"
36 volumes:
37 - postgres_data:/var/lib/postgresql
38
39 prometheus:
40 image: prom/prometheus:v3.8.0
41 ports:
42 - "9090:9090"
43 volumes:
44 - ./observability/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
45 - prometheus_data:/prometheus
46 command:
47 - '--config.file=/etc/prometheus/prometheus.yaml'
48 - '--storage.tsdb.path=/prometheus'
49 depends_on:
50 - app
51
52volumes:
53 postgres_data:
54 blob_data:
55 backup_data:
56 prometheus_data: