services: db: image: postgres:17-alpine restart: unless-stopped environment: POSTGRES_DB: bizmatch POSTGRES_USER: bizmatch POSTGRES_PASSWORD: ${DB_PASSWORD:-bizmatch} volumes: - pgdata:/var/lib/postgresql/data ports: - "127.0.0.1:5432:5432" # local only, for psql / dev mode healthcheck: test: ["CMD-SHELL", "pg_isready -U bizmatch -d bizmatch"] interval: 5s timeout: 3s retries: 10 app: build: . restart: unless-stopped environment: DATABASE_URL: postgres://bizmatch:${DB_PASSWORD:-bizmatch}@db:5432/bizmatch PORT: "8090" NAS_ROOT: ${NAS_ROOT:-/mnt/bizmatch-nas} NDA_REMINDER_DAYS: ${NDA_REMINDER_DAYS:-14} DROPBOX_SIGN_API_KEY: ${DROPBOX_SIGN_API_KEY:-} SYNC_PENDING_MAX_AGE_DAYS: ${SYNC_PENDING_MAX_AGE_DAYS:-60} NDA_ROOT: ${NDA_ROOT:-/mnt/bizmatch-nas/AA Buyers NDA's/Buyers NDA's A-Z} NAS_DIR_ACTIVE: ${NAS_DIR_ACTIVE:-AAA = ACTIVE} NAS_DIR_SOLD: ${NAS_DIR_SOLD:-AAA = SOLD} NAS_DIR_INACTIVE: ${NAS_DIR_INACTIVE:-AAA = INACTIVE} ports: - "8090:8090" # reachable on the LAN: http://192.168.100.99:8090 volumes: - ${NAS_ROOT:-/mnt/bizmatch-nas}:${NAS_ROOT:-/mnt/bizmatch-nas} # host NFS mount depends_on: db: condition: service_healthy volumes: pgdata: