forked from
tranquil.farm/tranquil-pds
Our Personal Data Server from scratch!
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 S3_ENDPOINT: http://objsto:9000
14 VALKEY_URL: redis://cache:6379
15 depends_on:
16 - db
17 - objsto
18 - cache
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 objsto:
42 image: cgr.dev/chainguard/minio:latest
43 ports:
44 - "9000:9000"
45 - "9001:9001"
46 environment:
47 MINIO_ROOT_USER: minioadmin
48 MINIO_ROOT_PASSWORD: minioadmin
49 volumes:
50 - minio_data:/data
51 command: server /data --console-address ":9001"
52
53 cache:
54 image: valkey/valkey:9-alpine
55 ports:
56 - "6379:6379"
57 volumes:
58 - valkey_data:/data
59
60 prometheus:
61 image: prom/prometheus:v3.8.0
62 ports:
63 - "9090:9090"
64 volumes:
65 - ./observability/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
66 - prometheus_data:/prometheus
67 command:
68 - '--config.file=/etc/prometheus/prometheus.yaml'
69 - '--storage.tsdb.path=/prometheus'
70 depends_on:
71 - app
72
73volumes:
74 postgres_data:
75 minio_data:
76 valkey_data:
77 prometheus_data: