Dokploy

Evolution API

Evolution API is a robust platform dedicated to empowering small businesses with limited resources, going beyond a simple messaging solution via WhatsApp.

Evolution API logo

Configuration

services:
  evolution-api:
    image: atendai/evolution-api:v2.1.2
    restart: always
    volumes:
      - evolution-instances:/evolution/instances

    environment:
      - SERVER_URL=${SERVER_URL}
      - AUTHENTICATION_TYPE=${AUTHENTICATION_TYPE}
      - AUTHENTICATION_API_KEY=${AUTHENTICATION_API_KEY}
      - AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=${AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES}
      - LANGUAGE=${LANGUAGE}
      - CONFIG_SESSION_PHONE_CLIENT=${CONFIG_SESSION_PHONE_CLIENT}
      - CONFIG_SESSION_PHONE_NAME=${CONFIG_SESSION_PHONE_NAME}
      - TELEMETRY=${TELEMETRY}
      - TELEMETRY_URL=${TELEMETRY_URL}
      - DATABASE_ENABLED=${DATABASE_ENABLED}
      - DATABASE_PROVIDER=${DATABASE_PROVIDER}
      - DATABASE_CONNECTION_URI=${DATABASE_CONNECTION_URI}
      - DATABASE_SAVE_DATA_INSTANCE=${DATABASE_SAVE_DATA_INSTANCE}
      - DATABASE_SAVE_DATA_NEW_MESSAGE=${DATABASE_SAVE_DATA_NEW_MESSAGE}
      - DATABASE_SAVE_MESSAGE_UPDATE=${DATABASE_SAVE_MESSAGE_UPDATE}
      - DATABASE_SAVE_DATA_CONTACTS=${DATABASE_SAVE_DATA_CONTACTS}
      - DATABASE_SAVE_DATA_CHATS=${DATABASE_SAVE_DATA_CHATS}
      - DATABASE_SAVE_DATA_LABELS=${DATABASE_SAVE_DATA_LABELS}
      - DATABASE_SAVE_DATA_HISTORIC=${DATABASE_SAVE_DATA_HISTORIC}
      - CACHE_REDIS_ENABLED=${CACHE_REDIS_ENABLED}
      - CACHE_REDIS_URI=${CACHE_REDIS_URI}
      - CACHE_REDIS_PREFIX_KEY=${CACHE_REDIS_PREFIX_KEY}
      - CACHE_REDIS_SAVE_INSTANCES=${CACHE_REDIS_SAVE_INSTANCES}

  evolution-postgres:
    image: postgres:16-alpine
    restart: always
    volumes:
      - evolution-postgres-data:/var/lib/postgresql/data

    environment:
      - POSTGRES_DB=${POSTGRES_DATABASE}
      - POSTGRES_USER=${POSTGRES_USERNAME}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

  evolution-redis:
    image: redis:alpine
    restart: always
    volumes:
      - evolution-redis-data:/data

volumes:
  evolution-instances:
  evolution-postgres-data:
  evolution-redis-data:
[variables]
main_domain = "${domain}"
api_key = "${base64:64}"
postgres_password = "${password}"

[config]
env = [
  "SERVER_URL=https://${main_domain}",
  "AUTHENTICATION_TYPE=apikey",
  "AUTHENTICATION_API_KEY=${api_key}",
  "AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true",
  "LANGUAGE=en",
  "CONFIG_SESSION_PHONE_CLIENT=Evolution API",
  "CONFIG_SESSION_PHONE_NAME=Chrome",
  "TELEMETRY=false",
  "TELEMETRY_URL=",
  "POSTGRES_DATABASE=evolution",
  "POSTGRES_USERNAME=postgresql",
  "POSTGRES_PASSWORD=${postgres_password}",
  "DATABASE_ENABLED=true",
  "DATABASE_PROVIDER=postgresql",
  "DATABASE_CONNECTION_URI=postgres://postgresql:${postgres_password}@evolution-postgres:5432/evolution",
  "DATABASE_SAVE_DATA_INSTANCE=true",
  "DATABASE_SAVE_DATA_NEW_MESSAGE=true",
  "DATABASE_SAVE_MESSAGE_UPDATE=true",
  "DATABASE_SAVE_DATA_CONTACTS=true",
  "DATABASE_SAVE_DATA_CHATS=true",
  "DATABASE_SAVE_DATA_LABELS=true",
  "DATABASE_SAVE_DATA_HISTORIC=true",
  "CACHE_REDIS_ENABLED=true",
  "CACHE_REDIS_URI=redis://evolution-redis:6379",
  "CACHE_REDIS_PREFIX_KEY=evolution",
  "CACHE_REDIS_SAVE_INSTANCES=true",
]
mounts = []

[[config.domains]]
serviceName = "evolution-api"
port = 8_080
host = "${main_domain}"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBldm9sdXRpb24tYXBpOlxuICAgIGltYWdlOiBhdGVuZGFpL2V2b2x1dGlvbi1hcGk6djIuMS4yXG4gICAgcmVzdGFydDogYWx3YXlzXG4gICAgdm9sdW1lczpcbiAgICAgIC0gZXZvbHV0aW9uLWluc3RhbmNlczovZXZvbHV0aW9uL2luc3RhbmNlc1xuXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICAtIFNFUlZFUl9VUkw9JHtTRVJWRVJfVVJMfVxuICAgICAgLSBBVVRIRU5USUNBVElPTl9UWVBFPSR7QVVUSEVOVElDQVRJT05fVFlQRX1cbiAgICAgIC0gQVVUSEVOVElDQVRJT05fQVBJX0tFWT0ke0FVVEhFTlRJQ0FUSU9OX0FQSV9LRVl9XG4gICAgICAtIEFVVEhFTlRJQ0FUSU9OX0VYUE9TRV9JTl9GRVRDSF9JTlNUQU5DRVM9JHtBVVRIRU5USUNBVElPTl9FWFBPU0VfSU5fRkVUQ0hfSU5TVEFOQ0VTfVxuICAgICAgLSBMQU5HVUFHRT0ke0xBTkdVQUdFfVxuICAgICAgLSBDT05GSUdfU0VTU0lPTl9QSE9ORV9DTElFTlQ9JHtDT05GSUdfU0VTU0lPTl9QSE9ORV9DTElFTlR9XG4gICAgICAtIENPTkZJR19TRVNTSU9OX1BIT05FX05BTUU9JHtDT05GSUdfU0VTU0lPTl9QSE9ORV9OQU1FfVxuICAgICAgLSBURUxFTUVUUlk9JHtURUxFTUVUUll9XG4gICAgICAtIFRFTEVNRVRSWV9VUkw9JHtURUxFTUVUUllfVVJMfVxuICAgICAgLSBEQVRBQkFTRV9FTkFCTEVEPSR7REFUQUJBU0VfRU5BQkxFRH1cbiAgICAgIC0gREFUQUJBU0VfUFJPVklERVI9JHtEQVRBQkFTRV9QUk9WSURFUn1cbiAgICAgIC0gREFUQUJBU0VfQ09OTkVDVElPTl9VUkk9JHtEQVRBQkFTRV9DT05ORUNUSU9OX1VSSX1cbiAgICAgIC0gREFUQUJBU0VfU0FWRV9EQVRBX0lOU1RBTkNFPSR7REFUQUJBU0VfU0FWRV9EQVRBX0lOU1RBTkNFfVxuICAgICAgLSBEQVRBQkFTRV9TQVZFX0RBVEFfTkVXX01FU1NBR0U9JHtEQVRBQkFTRV9TQVZFX0RBVEFfTkVXX01FU1NBR0V9XG4gICAgICAtIERBVEFCQVNFX1NBVkVfTUVTU0FHRV9VUERBVEU9JHtEQVRBQkFTRV9TQVZFX01FU1NBR0VfVVBEQVRFfVxuICAgICAgLSBEQVRBQkFTRV9TQVZFX0RBVEFfQ09OVEFDVFM9JHtEQVRBQkFTRV9TQVZFX0RBVEFfQ09OVEFDVFN9XG4gICAgICAtIERBVEFCQVNFX1NBVkVfREFUQV9DSEFUUz0ke0RBVEFCQVNFX1NBVkVfREFUQV9DSEFUU31cbiAgICAgIC0gREFUQUJBU0VfU0FWRV9EQVRBX0xBQkVMUz0ke0RBVEFCQVNFX1NBVkVfREFUQV9MQUJFTFN9XG4gICAgICAtIERBVEFCQVNFX1NBVkVfREFUQV9ISVNUT1JJQz0ke0RBVEFCQVNFX1NBVkVfREFUQV9ISVNUT1JJQ31cbiAgICAgIC0gQ0FDSEVfUkVESVNfRU5BQkxFRD0ke0NBQ0hFX1JFRElTX0VOQUJMRUR9XG4gICAgICAtIENBQ0hFX1JFRElTX1VSST0ke0NBQ0hFX1JFRElTX1VSSX1cbiAgICAgIC0gQ0FDSEVfUkVESVNfUFJFRklYX0tFWT0ke0NBQ0hFX1JFRElTX1BSRUZJWF9LRVl9XG4gICAgICAtIENBQ0hFX1JFRElTX1NBVkVfSU5TVEFOQ0VTPSR7Q0FDSEVfUkVESVNfU0FWRV9JTlNUQU5DRVN9XG5cbiAgZXZvbHV0aW9uLXBvc3RncmVzOlxuICAgIGltYWdlOiBwb3N0Z3JlczoxNi1hbHBpbmVcbiAgICByZXN0YXJ0OiBhbHdheXNcbiAgICB2b2x1bWVzOlxuICAgICAgLSBldm9sdXRpb24tcG9zdGdyZXMtZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcblxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQT1NUR1JFU19EQj0ke1BPU1RHUkVTX0RBVEFCQVNFfVxuICAgICAgLSBQT1NUR1JFU19VU0VSPSR7UE9TVEdSRVNfVVNFUk5BTUV9XG4gICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSR7UE9TVEdSRVNfUEFTU1dPUkR9XG5cbiAgZXZvbHV0aW9uLXJlZGlzOlxuICAgIGltYWdlOiByZWRpczphbHBpbmVcbiAgICByZXN0YXJ0OiBhbHdheXNcbiAgICB2b2x1bWVzOlxuICAgICAgLSBldm9sdXRpb24tcmVkaXMtZGF0YTovZGF0YVxuXG52b2x1bWVzOlxuICBldm9sdXRpb24taW5zdGFuY2VzOlxuICBldm9sdXRpb24tcG9zdGdyZXMtZGF0YTpcbiAgZXZvbHV0aW9uLXJlZGlzLWRhdGE6IiwKICAiY29uZmlnIjogIlt2YXJpYWJsZXNdXG5tYWluX2RvbWFpbiA9IFwiJHtkb21haW59XCJcbmFwaV9rZXkgPSBcIiR7YmFzZTY0OjY0fVwiXG5wb3N0Z3Jlc19wYXNzd29yZCA9IFwiJHtwYXNzd29yZH1cIlxuXG5bY29uZmlnXVxuZW52ID0gW1xuICBcIlNFUlZFUl9VUkw9aHR0cHM6Ly8ke21haW5fZG9tYWlufVwiLFxuICBcIkFVVEhFTlRJQ0FUSU9OX1RZUEU9YXBpa2V5XCIsXG4gIFwiQVVUSEVOVElDQVRJT05fQVBJX0tFWT0ke2FwaV9rZXl9XCIsXG4gIFwiQVVUSEVOVElDQVRJT05fRVhQT1NFX0lOX0ZFVENIX0lOU1RBTkNFUz10cnVlXCIsXG4gIFwiTEFOR1VBR0U9ZW5cIixcbiAgXCJDT05GSUdfU0VTU0lPTl9QSE9ORV9DTElFTlQ9RXZvbHV0aW9uIEFQSVwiLFxuICBcIkNPTkZJR19TRVNTSU9OX1BIT05FX05BTUU9Q2hyb21lXCIsXG4gIFwiVEVMRU1FVFJZPWZhbHNlXCIsXG4gIFwiVEVMRU1FVFJZX1VSTD1cIixcbiAgXCJQT1NUR1JFU19EQVRBQkFTRT1ldm9sdXRpb25cIixcbiAgXCJQT1NUR1JFU19VU0VSTkFNRT1wb3N0Z3Jlc3FsXCIsXG4gIFwiUE9TVEdSRVNfUEFTU1dPUkQ9JHtwb3N0Z3Jlc19wYXNzd29yZH1cIixcbiAgXCJEQVRBQkFTRV9FTkFCTEVEPXRydWVcIixcbiAgXCJEQVRBQkFTRV9QUk9WSURFUj1wb3N0Z3Jlc3FsXCIsXG4gIFwiREFUQUJBU0VfQ09OTkVDVElPTl9VUkk9cG9zdGdyZXM6Ly9wb3N0Z3Jlc3FsOiR7cG9zdGdyZXNfcGFzc3dvcmR9QGV2b2x1dGlvbi1wb3N0Z3Jlczo1NDMyL2V2b2x1dGlvblwiLFxuICBcIkRBVEFCQVNFX1NBVkVfREFUQV9JTlNUQU5DRT10cnVlXCIsXG4gIFwiREFUQUJBU0VfU0FWRV9EQVRBX05FV19NRVNTQUdFPXRydWVcIixcbiAgXCJEQVRBQkFTRV9TQVZFX01FU1NBR0VfVVBEQVRFPXRydWVcIixcbiAgXCJEQVRBQkFTRV9TQVZFX0RBVEFfQ09OVEFDVFM9dHJ1ZVwiLFxuICBcIkRBVEFCQVNFX1NBVkVfREFUQV9DSEFUUz10cnVlXCIsXG4gIFwiREFUQUJBU0VfU0FWRV9EQVRBX0xBQkVMUz10cnVlXCIsXG4gIFwiREFUQUJBU0VfU0FWRV9EQVRBX0hJU1RPUklDPXRydWVcIixcbiAgXCJDQUNIRV9SRURJU19FTkFCTEVEPXRydWVcIixcbiAgXCJDQUNIRV9SRURJU19VUkk9cmVkaXM6Ly9ldm9sdXRpb24tcmVkaXM6NjM3OVwiLFxuICBcIkNBQ0hFX1JFRElTX1BSRUZJWF9LRVk9ZXZvbHV0aW9uXCIsXG4gIFwiQ0FDSEVfUkVESVNfU0FWRV9JTlNUQU5DRVM9dHJ1ZVwiLFxuXVxubW91bnRzID0gW11cblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwiZXZvbHV0aW9uLWFwaVwiXG5wb3J0ID0gOF8wODBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcbiIKfQ==

Tags

api, whatsapp, messaging


Version: v2.1.2

On this page