Our Personal Data Server from scratch!
at feat/bsky-2fa-shim 77 lines 1.6 kB view raw
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: