Files
NotesAgentic/server sync/compose.yaml
T

64 lines
1.8 KiB
YAML

services:
database:
image: postgres:17.6
environment:
POSTGRES_USER: opennexus
POSTGRES_DB: opennexus
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?required}
volumes:
- postgres:/var/lib/postgresql/data
healthcheck:
test: [CMD-SHELL, "pg_isready -U opennexus -d opennexus"]
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
initialize:
build: .
command: ["/service/.venv/bin/python", "-m", "sync_server", "initialize"]
environment:
SYNC_DATABASE_URL: ${SYNC_DATABASE_URL:?required}
SYNC_S3_ENDPOINT: http://objects:9000
SYNC_S3_BUCKET: opennexus
AWS_ACCESS_KEY_ID: ${MINIO_ROOT_USER:?required}
AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:?required}
AWS_DEFAULT_REGION: us-east-1
depends_on:
database:
condition: service_healthy
objects:
condition: service_started
restart: "no"
sync:
build: .
environment:
SYNC_DATABASE_URL: ${SYNC_DATABASE_URL:?required}
SYNC_S3_ENDPOINT: http://objects:9000
SYNC_S3_BUCKET: opennexus
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:
initialize:
condition: service_completed_successfully
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: