version: '3.3' networks: evolution-net: driver: bridge services: api: container_name: evolution_api build: context: . dockerfile: Dockerfile ports: - 8080:8080 volumes: - /data/instances:/evolution/instances environment: # Determine how long the instance should be deleted from memory in case of no connection. # Default time: 5 minutes # If you don't even want an expiration, enter the value false - DEL_INSTANCE=5 # or false # Temporary data storage - STORE_CLEANING_INTERVAL=7200 # seconds === 2h - STORE_MESSAGE=true - STORE_CONTACTS=true - STORE_CHATS=true # Permanent data storage - DATABASE_ENABLED=true - DATABASE_CONNECTION_URI=mongodb://root:root@mongodb:27017/?authSource=admin&readPreference=primary&ssl=false&directConnection=true - DATABASE_CONNECTION_DB_PREFIX_NAME=evolution # Choose the data you want to save in the application's database or store - DATABASE_SAVE_DATA_INSTANCE=false - DATABASE_SAVE_DATA_OLD_MESSAGE=false - DATABASE_SAVE_DATA_NEW_MESSAGE=true - DATABASE_SAVE_MESSAGE_UPDATE=false - DATABASE_SAVE_DATA_CONTACTS=true - DATABASE_SAVE_DATA_CHATS=true - REDIS_ENABLED=true - REDIS_URI=redis://redis:6379 - REDIS_PREFIX_KEY=evolution # Webhook Settings # Define a global webhook that will listen for enabled events from all instances - WEBHOOK_GLOBAL_URL=url - WEBHOOK_GLOBAL_ENABLED=false # With this option activated, you work with a url per webhook event, respecting the global url and the name of each event - WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false # Automatically maps webhook paths # Set the events you want to hear - WEBHOOK_EVENTS_STATUS_INSTANCE=true - WEBHOOK_EVENTS_APPLICATION_STARTUP=false - WEBHOOK_EVENTS_QRCODE_UPDATED=true - WEBHOOK_EVENTS_MESSAGES_SET=true - WEBHOOK_EVENTS_MESSAGES_UPDATE=true - WEBHOOK_EVENTS_MESSAGES_UPSERT=true - WEBHOOK_EVENTS_SEND_MESSAGE=true - WEBHOOK_EVENTS_CONTACTS_SET=true - WEBHOOK_EVENTS_CONTACTS_UPSERT=true - WEBHOOK_EVENTS_CONTACTS_UPDATE=true - WEBHOOK_EVENTS_PRESENCE_UPDATE=true - WEBHOOK_EVENTS_CHATS_SET=true - WEBHOOK_EVENTS_CHATS_UPSERT=true - WEBHOOK_EVENTS_CHATS_UPDATE=true - WEBHOOK_EVENTS_CONNECTION_UPDATE=true - WEBHOOK_EVENTS_GROUPS_UPSERT=true - WEBHOOK_EVENTS_GROUPS_UPDATE=true - WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true # This event fires every time a new token is requested via the refresh route - WEBHOOK_EVENTS_NEW_JWT_TOKEN=true # Name that will be displayed on smartphone connection - CONFIG_SESSION_PHONE_CLIENT="Evolution API" # Set qrcode display limit - QRCODE_LIMIT=30 # Defines an authentication type for the api - AUTHENTICATION_TYPE=apikey # jwt or apikey # Define a global apikey to access all instances # OBS: This key must be inserted in the request header to create an instance. - AUTHENTICATION_API_KEY=B6D711FCDE4D4FD5936544120E713976 # Set the secret key to encrypt and decrypt your token and its expiration time. - AUTHENTICATION_JWT_EXPIRIN_IN=0 # seconds - 3600s === 1h | zero (0) - never expires # Set the instance name and webhook url to create an instance in init the application # With this option activated, you work with a url per webhook event, respecting the local url and the name of each event - AUTHENTICATION_INSTANCE_WEBHOOK_BY_EVENTS=false - AUTHENTICATION_INSTANCE_MODE=server # container or server # if you are using container mode, set the container name and the webhook url to default instance - AUTHENTICATION_INSTANCE_NAME=evolution - AUTHENTICATION_INSTANCE_WEBHOOK_URL=url command: ['node', './dist/src/main.js'] networks: - evolution-net expose: - 8083 mongodb: container_name: mongodb image: mongo restart: always volumes: - /data/mongodb:/data/db ports: - 27017:27017 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: root networks: - evolution-net expose: - 27017 redis: container_name: redis image: redis:latest restart: always volumes: - /data/redis:/data ports: - 6379:6379 networks: - evolution-net expose: - 6379