Our Personal Data Server from scratch! tranquil.farm
oauth atproto pds rust postgresql objectstorage fun
at feat/nix-module 58 lines 1.2 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 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: