volumes: libsql-data: redis-data: services: redis: image: redis:7-alpine volumes: - redis-data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 2s timeout: 5s retries: 10 start_period: 2s libsql: image: ghcr.io/tursodatabase/libsql-server:latest-arm volumes: - libsql-data:/var/lib/sqld command: ["sqld", "--http-listen-addr", "0.0.0.0:8080"] healthcheck: test: ["CMD-SHELL", "kill -0 1"] interval: 2s timeout: 5s retries: 10 start_period: 2s environment: SQLD_NODE: primary server: build: context: . dockerfile: Dockerfile args: DATABASE_URL: http://libsql:8080 BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET} environment: NODE_ENV: production DATABASE_URL: http://libsql:8080 KV_STORE: ioredis REDIS_URL: redis://redis:6379 PUBLIC_BASE_URL: ${PUBLIC_BASE_URL:-${VITE_PUBLIC_BASE_URL:-}} PUBLIC_IS_MAIN_INSTANCE: "false" BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET} FROM_EMAIL_ADDRESS: ${FROM_EMAIL_ADDRESS} RESEND_API_KEY: ${RESEND_API_KEY} SENDGRID_API_KEY: ${SENDGRID_API_KEY} PUBLIC_SUPPORT_EMAIL_ADDRESS: ${PUBLIC_SUPPORT_EMAIL_ADDRESS:-${VITE_PUBLIC_SUPPORT_EMAIL_ADDRESS:-}} PUBLIC_SENTRY_DSN_WEB: ${PUBLIC_SENTRY_DSN_WEB:-${VITE_PUBLIC_SENTRY_DSN_WEB:-}} PUBLIC_UMAMI_WEBSITE_ID: ${PUBLIC_UMAMI_WEBSITE_ID:-${VITE_PUBLIC_UMAMI_WEBSITE_ID:-}} PUBLIC_UMAMI_SRC: ${PUBLIC_UMAMI_SRC:-${VITE_PUBLIC_UMAMI_SRC:-}} INSTAPAPER_OAUTH_ID: ${INSTAPAPER_OAUTH_ID} INSTAPAPER_OAUTH_SECRET: ${INSTAPAPER_OAUTH_SECRET} PUBLIC_IS_MAINTENANCE_MODE: ${PUBLIC_IS_MAINTENANCE_MODE:-${VITE_PUBLIC_IS_MAINTENANCE_MODE:-}} depends_on: libsql: condition: service_healthy required: false redis: condition: service_healthy required: true ports: - 3000:3000