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: evoapicloud/evolution-api:latest
    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:

ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBldm9sdXRpb24tYXBpOlxuICAgIGltYWdlOiBldm9hcGljbG91ZC9ldm9sdXRpb24tYXBpOmxhdGVzdFxuICAgIHJlc3RhcnQ6IGFsd2F5c1xuICAgIHZvbHVtZXM6XG4gICAgICAtIGV2b2x1dGlvbi1pbnN0YW5jZXM6L2V2b2x1dGlvbi9pbnN0YW5jZXNcblxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBTRVJWRVJfVVJMPSR7U0VSVkVSX1VSTH1cbiAgICAgIC0gQVVUSEVOVElDQVRJT05fVFlQRT0ke0FVVEhFTlRJQ0FUSU9OX1RZUEV9XG4gICAgICAtIEFVVEhFTlRJQ0FUSU9OX0FQSV9LRVk9JHtBVVRIRU5USUNBVElPTl9BUElfS0VZfVxuICAgICAgLSBBVVRIRU5USUNBVElPTl9FWFBPU0VfSU5fRkVUQ0hfSU5TVEFOQ0VTPSR7QVVUSEVOVElDQVRJT05fRVhQT1NFX0lOX0ZFVENIX0lOU1RBTkNFU31cbiAgICAgIC0gTEFOR1VBR0U9JHtMQU5HVUFHRX1cbiAgICAgIC0gQ09ORklHX1NFU1NJT05fUEhPTkVfQ0xJRU5UPSR7Q09ORklHX1NFU1NJT05fUEhPTkVfQ0xJRU5UfVxuICAgICAgLSBDT05GSUdfU0VTU0lPTl9QSE9ORV9OQU1FPSR7Q09ORklHX1NFU1NJT05fUEhPTkVfTkFNRX1cbiAgICAgIC0gVEVMRU1FVFJZPSR7VEVMRU1FVFJZfVxuICAgICAgLSBURUxFTUVUUllfVVJMPSR7VEVMRU1FVFJZX1VSTH1cbiAgICAgIC0gREFUQUJBU0VfRU5BQkxFRD0ke0RBVEFCQVNFX0VOQUJMRUR9XG4gICAgICAtIERBVEFCQVNFX1BST1ZJREVSPSR7REFUQUJBU0VfUFJPVklERVJ9XG4gICAgICAtIERBVEFCQVNFX0NPTk5FQ1RJT05fVVJJPSR7REFUQUJBU0VfQ09OTkVDVElPTl9VUkl9XG4gICAgICAtIERBVEFCQVNFX1NBVkVfREFUQV9JTlNUQU5DRT0ke0RBVEFCQVNFX1NBVkVfREFUQV9JTlNUQU5DRX1cbiAgICAgIC0gREFUQUJBU0VfU0FWRV9EQVRBX05FV19NRVNTQUdFPSR7REFUQUJBU0VfU0FWRV9EQVRBX05FV19NRVNTQUdFfVxuICAgICAgLSBEQVRBQkFTRV9TQVZFX01FU1NBR0VfVVBEQVRFPSR7REFUQUJBU0VfU0FWRV9NRVNTQUdFX1VQREFURX1cbiAgICAgIC0gREFUQUJBU0VfU0FWRV9EQVRBX0NPTlRBQ1RTPSR7REFUQUJBU0VfU0FWRV9EQVRBX0NPTlRBQ1RTfVxuICAgICAgLSBEQVRBQkFTRV9TQVZFX0RBVEFfQ0hBVFM9JHtEQVRBQkFTRV9TQVZFX0RBVEFfQ0hBVFN9XG4gICAgICAtIERBVEFCQVNFX1NBVkVfREFUQV9MQUJFTFM9JHtEQVRBQkFTRV9TQVZFX0RBVEFfTEFCRUxTfVxuICAgICAgLSBEQVRBQkFTRV9TQVZFX0RBVEFfSElTVE9SSUM9JHtEQVRBQkFTRV9TQVZFX0RBVEFfSElTVE9SSUN9XG4gICAgICAtIENBQ0hFX1JFRElTX0VOQUJMRUQ9JHtDQUNIRV9SRURJU19FTkFCTEVEfVxuICAgICAgLSBDQUNIRV9SRURJU19VUkk9JHtDQUNIRV9SRURJU19VUkl9XG4gICAgICAtIENBQ0hFX1JFRElTX1BSRUZJWF9LRVk9JHtDQUNIRV9SRURJU19QUkVGSVhfS0VZfVxuICAgICAgLSBDQUNIRV9SRURJU19TQVZFX0lOU1RBTkNFUz0ke0NBQ0hFX1JFRElTX1NBVkVfSU5TVEFOQ0VTfVxuXG4gIGV2b2x1dGlvbi1wb3N0Z3JlczpcbiAgICBpbWFnZTogcG9zdGdyZXM6MTYtYWxwaW5lXG4gICAgcmVzdGFydDogYWx3YXlzXG4gICAgdm9sdW1lczpcbiAgICAgIC0gZXZvbHV0aW9uLXBvc3RncmVzLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhXG5cbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gUE9TVEdSRVNfREI9JHtQT1NUR1JFU19EQVRBQkFTRX1cbiAgICAgIC0gUE9TVEdSRVNfVVNFUj0ke1BPU1RHUkVTX1VTRVJOQU1FfVxuICAgICAgLSBQT1NUR1JFU19QQVNTV09SRD0ke1BPU1RHUkVTX1BBU1NXT1JEfVxuXG4gIGV2b2x1dGlvbi1yZWRpczpcbiAgICBpbWFnZTogcmVkaXM6YWxwaW5lXG4gICAgcmVzdGFydDogYWx3YXlzXG4gICAgdm9sdW1lczpcbiAgICAgIC0gZXZvbHV0aW9uLXJlZGlzLWRhdGE6L2RhdGFcblxudm9sdW1lczpcbiAgZXZvbHV0aW9uLWluc3RhbmNlczpcbiAgZXZvbHV0aW9uLXBvc3RncmVzLWRhdGE6XG4gIGV2b2x1dGlvbi1yZWRpcy1kYXRhOiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5hcGlfa2V5ID0gXCIke2Jhc2U2NDo2NH1cIlxucG9zdGdyZXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmR9XCJcblxuW2NvbmZpZ11cbmVudiA9IFtcbiAgXCJTRVJWRVJfVVJMPWh0dHBzOi8vJHttYWluX2RvbWFpbn1cIixcbiAgXCJBVVRIRU5USUNBVElPTl9UWVBFPWFwaWtleVwiLFxuICBcIkFVVEhFTlRJQ0FUSU9OX0FQSV9LRVk9JHthcGlfa2V5fVwiLFxuICBcIkFVVEhFTlRJQ0FUSU9OX0VYUE9TRV9JTl9GRVRDSF9JTlNUQU5DRVM9dHJ1ZVwiLFxuICBcIkxBTkdVQUdFPWVuXCIsXG4gIFwiQ09ORklHX1NFU1NJT05fUEhPTkVfQ0xJRU5UPUV2b2x1dGlvbiBBUElcIixcbiAgXCJDT05GSUdfU0VTU0lPTl9QSE9ORV9OQU1FPUNocm9tZVwiLFxuICBcIlRFTEVNRVRSWT1mYWxzZVwiLFxuICBcIlRFTEVNRVRSWV9VUkw9XCIsXG4gIFwiUE9TVEdSRVNfREFUQUJBU0U9ZXZvbHV0aW9uXCIsXG4gIFwiUE9TVEdSRVNfVVNFUk5BTUU9cG9zdGdyZXNxbFwiLFxuICBcIlBPU1RHUkVTX1BBU1NXT1JEPSR7cG9zdGdyZXNfcGFzc3dvcmR9XCIsXG4gIFwiREFUQUJBU0VfRU5BQkxFRD10cnVlXCIsXG4gIFwiREFUQUJBU0VfUFJPVklERVI9cG9zdGdyZXNxbFwiLFxuICBcIkRBVEFCQVNFX0NPTk5FQ1RJT05fVVJJPXBvc3RncmVzOi8vcG9zdGdyZXNxbDoke3Bvc3RncmVzX3Bhc3N3b3JkfUBldm9sdXRpb24tcG9zdGdyZXM6NTQzMi9ldm9sdXRpb25cIixcbiAgXCJEQVRBQkFTRV9TQVZFX0RBVEFfSU5TVEFOQ0U9dHJ1ZVwiLFxuICBcIkRBVEFCQVNFX1NBVkVfREFUQV9ORVdfTUVTU0FHRT10cnVlXCIsXG4gIFwiREFUQUJBU0VfU0FWRV9NRVNTQUdFX1VQREFURT10cnVlXCIsXG4gIFwiREFUQUJBU0VfU0FWRV9EQVRBX0NPTlRBQ1RTPXRydWVcIixcbiAgXCJEQVRBQkFTRV9TQVZFX0RBVEFfQ0hBVFM9dHJ1ZVwiLFxuICBcIkRBVEFCQVNFX1NBVkVfREFUQV9MQUJFTFM9dHJ1ZVwiLFxuICBcIkRBVEFCQVNFX1NBVkVfREFUQV9ISVNUT1JJQz10cnVlXCIsXG4gIFwiQ0FDSEVfUkVESVNfRU5BQkxFRD10cnVlXCIsXG4gIFwiQ0FDSEVfUkVESVNfVVJJPXJlZGlzOi8vZXZvbHV0aW9uLXJlZGlzOjYzNzlcIixcbiAgXCJDQUNIRV9SRURJU19QUkVGSVhfS0VZPWV2b2x1dGlvblwiLFxuICBcIkNBQ0hFX1JFRElTX1NBVkVfSU5TVEFOQ0VTPXRydWVcIixcbl1cbm1vdW50cyA9IFtdXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImV2b2x1dGlvbi1hcGlcIlxucG9ydCA9IDhfMDgwXG5ob3N0ID0gXCIke21haW5fZG9tYWlufVwiXG4iCn0=

Tags

api, whatsapp, messaging


Version: v2.1.2

On this page