Dokploy

Automatisch

Automatisch is a powerful, self-hosted workflow automation tool designed for connecting your apps and automating repetitive tasks. With Automatisch, you can create workflows to sync data, send notifications, and perform various actions seamlessly across different services.

Automatisch logo

Configuration

services:
  automatisch:
    image: automatischio/automatisch:0.15.0
    restart: unless-stopped
    environment:
      - HOST=${DOMAIN}
      - PROTOCOL=http
      - PORT=3000
      - API_URL=http://${DOMAIN}
      - WEB_APP_URL=http://${DOMAIN}
      - APP_ENV=production
      - REDIS_HOST=automatisch-redis
      - REDIS_PASSWORD=${REDIS_PASSWORD}
      - POSTGRES_HOST=automatisch-postgres
      - POSTGRES_DATABASE=automatisch
      - POSTGRES_USERNAME=postgres
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - ENCRYPTION_KEY=${ENCRYPTION_KEY}
      - WEBHOOK_SECRET_KEY=${WEBHOOK_SECRET_KEY}
      - APP_SECRET_KEY=${APP_SECRET_KEY}
    volumes:
      - storage:/automatisch/storage
    depends_on:
      automatisch-postgres:
        condition: service_healthy
      automatisch-redis:
        condition: service_started

  automatisch-worker:
    image: automatischio/automatisch:0.15.0
    restart: unless-stopped
    environment:
      - APP_ENV=production
      - REDIS_HOST=automatisch-redis
      - REDIS_PASSWORD=${REDIS_PASSWORD}
      - POSTGRES_HOST=automatisch-postgres
      - POSTGRES_DATABASE=automatisch
      - POSTGRES_USERNAME=postgres
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - ENCRYPTION_KEY=${ENCRYPTION_KEY}
      - WEBHOOK_SECRET_KEY=${WEBHOOK_SECRET_KEY}
      - APP_SECRET_KEY=${APP_SECRET_KEY}
      - WORKER=true
    volumes:
      - storage:/automatisch/storage
    depends_on:
      - automatisch

  automatisch-postgres:
    image: postgres:15-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=automatisch
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d automatisch"]
      interval: 10s
      timeout: 5s
      retries: 5

  automatisch-redis:
    image: redis:7-alpine
    restart: unless-stopped
    command: redis-server --requirepass ${REDIS_PASSWORD}
    volumes:
      - redis_data:/data

volumes:
  storage: {}
  postgres_data: {}
  redis_data: {}
[variables]
main_domain = "${domain}"
db_password = "${password:16}"
redis_password = "${password:16}"
encryption_key = "${password:32}"
webhook_secret_key = "${password:32}"
app_secret_key = "${password:32}"

[config]
[[config.domains]]
serviceName = "automatisch"
port = 3000
host = "${main_domain}"

[config.env]
DOMAIN = "${main_domain}"
DB_PASSWORD = "${db_password}"
REDIS_PASSWORD = "${redis_password}"
ENCRYPTION_KEY = "${encryption_key}"
WEBHOOK_SECRET_KEY = "${webhook_secret_key}"
APP_SECRET_KEY = "${app_secret_key}"

Base64

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

ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBhdXRvbWF0aXNjaDpcbiAgICBpbWFnZTogYXV0b21hdGlzY2hpby9hdXRvbWF0aXNjaDowLjE1LjBcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBIT1NUPSR7RE9NQUlOfVxuICAgICAgLSBQUk9UT0NPTD1odHRwXG4gICAgICAtIFBPUlQ9MzAwMFxuICAgICAgLSBBUElfVVJMPWh0dHA6Ly8ke0RPTUFJTn1cbiAgICAgIC0gV0VCX0FQUF9VUkw9aHR0cDovLyR7RE9NQUlOfVxuICAgICAgLSBBUFBfRU5WPXByb2R1Y3Rpb25cbiAgICAgIC0gUkVESVNfSE9TVD1hdXRvbWF0aXNjaC1yZWRpc1xuICAgICAgLSBSRURJU19QQVNTV09SRD0ke1JFRElTX1BBU1NXT1JEfVxuICAgICAgLSBQT1NUR1JFU19IT1NUPWF1dG9tYXRpc2NoLXBvc3RncmVzXG4gICAgICAtIFBPU1RHUkVTX0RBVEFCQVNFPWF1dG9tYXRpc2NoXG4gICAgICAtIFBPU1RHUkVTX1VTRVJOQU1FPXBvc3RncmVzXG4gICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSR7REJfUEFTU1dPUkR9XG4gICAgICAtIEVOQ1JZUFRJT05fS0VZPSR7RU5DUllQVElPTl9LRVl9XG4gICAgICAtIFdFQkhPT0tfU0VDUkVUX0tFWT0ke1dFQkhPT0tfU0VDUkVUX0tFWX1cbiAgICAgIC0gQVBQX1NFQ1JFVF9LRVk9JHtBUFBfU0VDUkVUX0tFWX1cbiAgICB2b2x1bWVzOlxuICAgICAgLSBzdG9yYWdlOi9hdXRvbWF0aXNjaC9zdG9yYWdlXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGF1dG9tYXRpc2NoLXBvc3RncmVzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgYXV0b21hdGlzY2gtcmVkaXM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkXG5cbiAgYXV0b21hdGlzY2gtd29ya2VyOlxuICAgIGltYWdlOiBhdXRvbWF0aXNjaGlvL2F1dG9tYXRpc2NoOjAuMTUuMFxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICAtIEFQUF9FTlY9cHJvZHVjdGlvblxuICAgICAgLSBSRURJU19IT1NUPWF1dG9tYXRpc2NoLXJlZGlzXG4gICAgICAtIFJFRElTX1BBU1NXT1JEPSR7UkVESVNfUEFTU1dPUkR9XG4gICAgICAtIFBPU1RHUkVTX0hPU1Q9YXV0b21hdGlzY2gtcG9zdGdyZXNcbiAgICAgIC0gUE9TVEdSRVNfREFUQUJBU0U9YXV0b21hdGlzY2hcbiAgICAgIC0gUE9TVEdSRVNfVVNFUk5BTUU9cG9zdGdyZXNcbiAgICAgIC0gUE9TVEdSRVNfUEFTU1dPUkQ9JHtEQl9QQVNTV09SRH1cbiAgICAgIC0gRU5DUllQVElPTl9LRVk9JHtFTkNSWVBUSU9OX0tFWX1cbiAgICAgIC0gV0VCSE9PS19TRUNSRVRfS0VZPSR7V0VCSE9PS19TRUNSRVRfS0VZfVxuICAgICAgLSBBUFBfU0VDUkVUX0tFWT0ke0FQUF9TRUNSRVRfS0VZfVxuICAgICAgLSBXT1JLRVI9dHJ1ZVxuICAgIHZvbHVtZXM6XG4gICAgICAtIHN0b3JhZ2U6L2F1dG9tYXRpc2NoL3N0b3JhZ2VcbiAgICBkZXBlbmRzX29uOlxuICAgICAgLSBhdXRvbWF0aXNjaFxuXG4gIGF1dG9tYXRpc2NoLXBvc3RncmVzOlxuICAgIGltYWdlOiBwb3N0Z3JlczoxNS1hbHBpbmVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQT1NUR1JFU19VU0VSPXBvc3RncmVzXG4gICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSR7REJfUEFTU1dPUkR9XG4gICAgICAtIFBPU1RHUkVTX0RCPWF1dG9tYXRpc2NoXG4gICAgdm9sdW1lczpcbiAgICAgIC0gcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgcG9zdGdyZXMgLWQgYXV0b21hdGlzY2hcIl1cbiAgICAgIGludGVydmFsOiAxMHNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiA1XG5cbiAgYXV0b21hdGlzY2gtcmVkaXM6XG4gICAgaW1hZ2U6IHJlZGlzOjctYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBjb21tYW5kOiByZWRpcy1zZXJ2ZXIgLS1yZXF1aXJlcGFzcyAke1JFRElTX1BBU1NXT1JEfVxuICAgIHZvbHVtZXM6XG4gICAgICAtIHJlZGlzX2RhdGE6L2RhdGFcblxudm9sdW1lczpcbiAgc3RvcmFnZToge31cbiAgcG9zdGdyZXNfZGF0YToge31cbiAgcmVkaXNfZGF0YToge31cbiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5kYl9wYXNzd29yZCA9IFwiJHtwYXNzd29yZDoxNn1cIlxucmVkaXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MTZ9XCJcbmVuY3J5cHRpb25fa2V5ID0gXCIke3Bhc3N3b3JkOjMyfVwiXG53ZWJob29rX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcbmFwcF9zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5cbltjb25maWddXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJhdXRvbWF0aXNjaFwiXG5wb3J0ID0gMzAwMFxuaG9zdCA9IFwiJHttYWluX2RvbWFpbn1cIlxuXG5bY29uZmlnLmVudl1cbkRPTUFJTiA9IFwiJHttYWluX2RvbWFpbn1cIlxuREJfUEFTU1dPUkQgPSBcIiR7ZGJfcGFzc3dvcmR9XCJcblJFRElTX1BBU1NXT1JEID0gXCIke3JlZGlzX3Bhc3N3b3JkfVwiXG5FTkNSWVBUSU9OX0tFWSA9IFwiJHtlbmNyeXB0aW9uX2tleX1cIlxuV0VCSE9PS19TRUNSRVRfS0VZID0gXCIke3dlYmhvb2tfc2VjcmV0X2tleX1cIlxuQVBQX1NFQ1JFVF9LRVkgPSBcIiR7YXBwX3NlY3JldF9rZXl9XCIgIgp9

Tags

automation, workflow, integration


Version: 0.15.0

On this page