# documentation: https://kuzzle.io # slogan: Kuzzle is a generic backend offering the basic building blocks common to every application. # tags: backend, api, realtime, websocket, mqtt, rest, sdk, iot, geofencing, low-code # port: 7512 services: redis: image: redis:7-alpine command: redis-server --appendonly yes volumes: - elastic-redis-data:/data healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s timeout: 20s retries: 10 elasticsearch: image: kuzzleio/elasticsearch:7 healthcheck: test: [ "CMD", "curl", "-f", "http://127.0.0.1:9200" ] interval: 2s timeout: 2s retries: 10 ulimits: nofile: 65536 kuzzle: image: kuzzleio/kuzzle:latest environment: - SERVICE_FQDN_KUZZLE_7512 - kuzzle_services__storageEngine__client__node=http://elasticsearch:9200 - kuzzle_services__storageEngine__commonMapping__dynamic=true - kuzzle_services__internalCache__node__host=redis - kuzzle_services__memoryStorage__node__host=redis - kuzzle_server__protocols__mqtt__enabled=true - kuzzle_server__protocols__mqtt__developmentMode=false - kuzzle_limits__loginsPerSecond=50 - NODE_ENV=production # - DEBUG=${DEBUG:-kuzzle:*,-kuzzle:network:protocols:websocket,-kuzzle:events} - DEBUG=${DEBUG:-kuzzle:cluster:sync} - DEBUG_DEPTH=${DEBUG_DEPTH:-0} - DEBUG_MAX_ARRAY_LENGTH=${DEBUG_MAX_ARRAY:-100} - DEBUG_EXPAND=${DEBUG_EXPAND:-off} - DEBUG_SHOW_HIDDEN={$DEBUG_SHOW_HIDDEN:-on} - DEBUG_COLORS=${DEBUG_COLORS:-on} cap_add: - SYS_PTRACE ulimits: nofile: 65536 sysctls: - net.core.somaxconn=8192 healthcheck: test: [ "CMD", "curl", "-f", "http://127.0.0.1:7512/_healthcheck" ] timeout: 1s interval: 2s retries: 30 depends_on: redis: condition: service_healthy elasticsearch: condition: service_healthy