services: app: image: solidinvoice/solidinvoice:${SOLIDINVOICE_VERSION:-latest} container_name: solidinvoice-app security_opt: - no-new-privileges:true volumes: - solidinvoice-app:/etc/solidinvoice:rw ports: - ${SOLIDINVOICE_PORT:-8765}:8765 depends_on: db: condition: service_healthy healthcheck: test: ["CMD-SHELL", "nc -z 127.0.0.1 8765 || exit 1"] interval: 10s timeout: 5s retries: 3 start_period: 90s deploy: resources: limits: memory: 512M restart: unless-stopped db: image: postgres:${SOLIDINVOICE_POSTGRES_VERSION:-16} container_name: solidinvoice-db security_opt: - no-new-privileges:true environment: POSTGRES_DB: ${SOLIDINVOICE_DB_NAME:-solidinvoice} POSTGRES_USER: ${SOLIDINVOICE_DB_USERNAME:-solidinvoice} POSTGRES_PASSWORD: ${SOLIDINVOICE_DB_PASSWORD} volumes: - solidinvoice-db:/var/lib/postgresql/data:rw healthcheck: test: ["CMD-SHELL", "pg_isready -U ${SOLIDINVOICE_DB_USERNAME:-solidinvoice} -d ${SOLIDINVOICE_DB_NAME:-solidinvoice}"] interval: 10s timeout: 5s retries: 5 start_period: 30s deploy: resources: limits: memory: 512M restart: unless-stopped volumes: solidinvoice-app: name: solidinvoice-app driver: local driver_opts: type: nfs o: "addr=${SOLIDINVOICE_NFS_SERVER},rw,noatime,rsize=65536,wsize=65536,timeo=600,nfsvers=4" device: "${SOLIDINVOICE_APP_NFS_DEVICE}" solidinvoice-db: name: solidinvoice-db driver: local driver_opts: type: nfs o: "addr=${SOLIDINVOICE_NFS_SERVER},rw,noatime,rsize=65536,wsize=65536,timeo=600,nfsvers=4" device: "${SOLIDINVOICE_DB_NFS_DEVICE}"