version: '3.8' services: postgres: image: postgres:15 environment: POSTGRES_DB: slices POSTGRES_USER: slices POSTGRES_PASSWORD: slices ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data - ./schema.sql:/docker-entrypoint-initdb.d/01-schema.sql healthcheck: test: ["CMD-SHELL", "pg_isready -U slices -d slices"] interval: 5s timeout: 5s retries: 5 cloudflared: image: cloudflare/cloudflared:latest command: tunnel --no-autoupdate run --token ${CLOUDFLARE_TUNNEL_TOKEN} environment: - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} depends_on: - aip networks: - default redis: image: redis:7-alpine ports: - "6379:6379" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5 aip: image: ghcr.io/bigmoves/aip/aip-sqlite:main-e445b82 environment: EXTERNAL_BASE: "${AIP_EXTERNAL_BASE:-http://localhost:8081}" HTTP_PORT: "8081" DATABASE_URL: "sqlite:///data/aip.db" HTTP_CLIENT_TIMEOUT: "30" OAUTH_SUPPORTED_SCOPES: "openid email profile atproto transition:generic account:email blob:image/* repo:network.slices.slice repo:network.slices.lexicon repo:network.slices.actor.profile repo:network.slices.waitlist.request" ENABLE_CLIENT_API: "true" ADMIN_DIDS: "did:plc:bcgltzqazw5tb6k2g3ttenbj" DPOP_NONCE_SEED: "local-dev-nonce-seed" RUST_LOG: "aip=trace,sqlx=debug,tower_http=debug,atproto_identity=debug,atproto_oauth=debug" ATPROTO_OAUTH_SIGNING_KEYS: "z42tzC26Phdvnzmm7mVgLVgH6cDy3i1A2UcH8m6XbgKVJ4zk" OAUTH_SIGNING_KEYS: "z42tzC26Phdvnzmm7mVgLVgH6cDy3i1A2UcH8m6XbgKVJ4zk" ports: - "8081:8081" volumes: - aip_data:/data healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8081/.well-known/oauth-authorization-server || exit 1"] interval: 10s timeout: 5s retries: 3 volumes: postgres_data: redis_data: aip_data: