services: shiplean: image: ${SHIPLEAN_IMAGE:-ghcr.io/shiplean/shiplean} restart: unless-stopped ports: - "8080:8080" depends_on: postgres: condition: service_healthy environment: SHIPLEAN_DB_CONNECTION: Host=postgres;Port=5432;Database=shiplean;Username=postgres;Password=${POSTGRES_PASSWORD} SHIPLEAN_BLOB_ROOT: /data/blobs SHIPLEAN_ADMIN_EMAIL: ${SHIPLEAN_ADMIN_EMAIL} SHIPLEAN_ADMIN_PASSWORD: ${SHIPLEAN_ADMIN_PASSWORD} volumes: - shiplean-blobs:/data/blobs postgres: image: postgres:18 restart: unless-stopped environment: POSTGRES_DB: shiplean POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ports: - "127.0.0.1:5432:5432" volumes: - shiplean-pgdata:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d shiplean"] interval: 5s timeout: 5s retries: 10 volumes: shiplean-pgdata: shiplean-blobs: