version: '3.8' services: supertokens-db: image: postgres:16-alpine container_name: familiaros-supertokens-db restart: unless-stopped environment: POSTGRES_USER: supertokens POSTGRES_PASSWORD: ${SUPERTOKENS_DB_PASSWORD:-change-me-in-production} POSTGRES_DB: supertokens volumes: - supertokens-db-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U supertokens -d supertokens'] interval: 5s timeout: 5s retries: 5 supertokens-core: # Use the maintained supertokens-postgresql image, not the deprecated/broken # registry.supertokens.io/supertokens/supertokens-core:9.3 image. image: supertokens/supertokens-postgresql:11.4.5 container_name: familiaros-supertokens-core restart: unless-stopped depends_on: supertokens-db: condition: service_healthy ports: # Host port 3568 is chosen to avoid colliding with the ScriptoriumAI # SuperTokens core on host port 3567. The container still exposes 3567. - '3568:3567' environment: POSTGRESQL_CONNECTION_URI: 'postgresql://supertokens:${SUPERTOKENS_DB_PASSWORD:-change-me-in-production}@supertokens-db:5432/supertokens' healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:3567/hello'] interval: 10s timeout: 5s retries: 5 volumes: supertokens-db-data: