48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
services:
|
|
database:
|
|
image: postgres:17.6
|
|
environment:
|
|
POSTGRES_USER: notesagent
|
|
POSTGRES_DB: notesagent
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?required}
|
|
volumes:
|
|
- postgres:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: [CMD-SHELL, "pg_isready -U notesagent -d notesagent"]
|
|
interval: 5s
|
|
retries: 20
|
|
objects:
|
|
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
|
|
command: server /data
|
|
environment:
|
|
MINIO_ROOT_USER: ${MINIO_ROOT_USER:?required}
|
|
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:?required}
|
|
volumes:
|
|
- objects:/data
|
|
sync:
|
|
build: .
|
|
environment:
|
|
SYNC_DATABASE_URL: ${SYNC_DATABASE_URL:?required}
|
|
SYNC_S3_ENDPOINT: http://objects:9000
|
|
SYNC_S3_BUCKET: notesagent
|
|
AWS_ACCESS_KEY_ID: ${SYNC_ACCESS_KEY_ID:?required}
|
|
AWS_SECRET_ACCESS_KEY: ${SYNC_SECRET_ACCESS_KEY:?required}
|
|
AWS_DEFAULT_REGION: us-east-1
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
volumes:
|
|
- staging:/staging
|
|
ports:
|
|
- "127.0.0.1:8080:8080"
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop: [ALL]
|
|
volumes:
|
|
postgres:
|
|
objects:
|
|
staging:
|