Skip to content

Automatisch

Open-source business automation platform — a self-hosted alternative to Zapier and Make. Automatisch provides a visual workflow builder, pre-built integrations with popular services, webhook triggers, and OAuth-based connection management. It requires both PostgreSQL and Redis to operate.

Set webAppUrl to your public URL before configuring integrations

The default automatisch.webAppUrl is http://localhost:3000. Without changing it to your public URL, OAuth callbacks from external services (GitHub, Slack, Google, etc.) will redirect to localhost and fail. Webhook URLs generated by Automatisch will also be unreachable from the internet. Set this before adding any integration.

Key Features

  • Visual workflow builder — drag-and-drop interface for creating multi-step automations
  • Pre-built integrations — connect GitHub, Slack, Google Sheets, Telegram, and more
  • Webhook triggers — start workflows from external HTTP events
  • OAuth connection management — secure service connections with token refresh
  • PostgreSQL backend — stores workflows, connections, and execution history
  • Redis queue — asynchronous job execution for reliable workflow processing
  • Auto-generated secrets — encryption and JWT keys generated on first install

Installation

HTTPS repository:

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install automatisch helmforge/automatisch

OCI registry:

helm install automatisch oci://ghcr.io/helmforgedev/helm/automatisch

Deployment Examples

# values.yaml — Automatisch with bundled PostgreSQL and Redis
automatisch:
  webAppUrl: 'https://automate.example.com'

postgresql:
  enabled: true
  auth:
    password: 'postgres-password'

redis:
  enabled: true

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: automate.example.com
      paths:
        - path: /
          pathType: Prefix
# values.yaml — Production Automatisch with TLS and resource limits
automatisch:
  webAppUrl: 'https://automate.example.com'
  appEnv: production

postgresql:
  enabled: true
  auth:
    password: 'postgres-password'

redis:
  enabled: true

resources:
  requests:
    memory: 256Mi
    cpu: 100m
  limits:
    memory: 1Gi
    cpu: 500m

ingress:
  enabled: true
  ingressClassName: traefik
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
  hosts:
    - host: automate.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: automatisch-tls
      hosts:
        - automate.example.com
# values.yaml — Automatisch with external PostgreSQL and Redis
automatisch:
  webAppUrl: 'https://automate.example.com'

database:
  external:
    host: postgresql.database.svc.cluster.local
    port: '5432'
    name: automatisch
    username: automatisch
    existingSecret: automatisch-db-credentials
    existingSecretPasswordKey: password

redis_config:
  external:
    host: redis.cache.svc.cluster.local
    port: '6379'

postgresql:
  enabled: false

redis:
  enabled: false

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: automate.example.com
      paths:
        - path: /
          pathType: Prefix

Configuration Reference

Core

Parameter Type Default Description
nameOverride string "" Override the chart name.
fullnameOverride string "" Override the full release name.
commonLabels object {} Extra labels added to all resources.

Image

Parameter Type Default Description
image.repository string docker.io/automatischio/automatisch Automatisch container image.
image.tag string "0.15.0" Image tag.
image.pullPolicy string IfNotPresent Image pull policy.
imagePullSecrets array [] Pull secrets for private registries.

Automatisch Configuration

Parameter Type Default Description
automatisch.webAppUrl string http://localhost:3000 Public URL of the Automatisch instance. Required for OAuth callbacks and webhooks.
automatisch.appEnv string production Application environment. Keep production in all non-development deployments.
automatisch.extraEnv array [] Extra environment variables for advanced configuration.

Database — External PostgreSQL

Used when postgresql.enabled: false.

Parameter Type Default Description
database.external.host string "" External PostgreSQL hostname.
database.external.port string "5432" External PostgreSQL port.
database.external.name string automatisch Database name on the external server.
database.external.username string automatisch Username for the external database.
database.external.password string "" Password for the external database (prefer existingSecret).
database.external.existingSecret string "" Existing secret containing the database password.
database.external.existingSecretPasswordKey string password Key inside the existing secret for the password.

Redis — External

Used when redis.enabled: false. Note the key name is redis_config (with underscore).

Parameter Type Default Description
redis_config.external.host string "" External Redis hostname.
redis_config.external.port string "6379" External Redis port.
redis_config.external.existingSecret string "" Existing secret containing the Redis password.
Both PostgreSQL and Redis are required

Automatisch uses PostgreSQL to store workflow definitions, connections, and execution logs, and Redis as a job queue for asynchronous workflow execution. If either dependency is unavailable, workflows will not run. When using external services, ensure both are reachable from the cluster before deploying.

Subcharts

Parameter Type Default Description
postgresql.enabled boolean true Deploy the bundled PostgreSQL subchart.
postgresql.auth.database string automatisch Database name created by the subchart.
postgresql.auth.username string automatisch Database user created by the subchart.
postgresql.auth.password string "" Database password. Auto-generated if empty.
redis.enabled boolean true Deploy the bundled Redis subchart.
redis.architecture string standalone Redis architecture.

Service

Parameter Type Default Description
service.type string ClusterIP Kubernetes service type.
service.port integer 80 Service port exposed to the cluster.
service.annotations object {} Annotations for the Service.

Ingress

Parameter Type Default Description
ingress.enabled boolean false Enable an Ingress resource.
ingress.ingressClassName string traefik Ingress class name.
ingress.annotations object {} Annotations for the Ingress (e.g. cert-manager).
ingress.hosts array [] Ingress host and path rules.
ingress.tls array [] TLS configuration (secret name and hosts).

Probes

Parameter Type Default Description
probes.startup.enabled boolean true Enable startup probe.
probes.startup.initialDelaySeconds integer 10 Startup probe initial delay.
probes.startup.periodSeconds integer 5 Startup probe period.
probes.startup.timeoutSeconds integer 3 Startup probe timeout.
probes.startup.failureThreshold integer 30 Startup probe failure threshold.
probes.liveness.enabled boolean true Enable liveness probe.
probes.liveness.initialDelaySeconds integer 0 Liveness probe initial delay.
probes.liveness.periodSeconds integer 15 Liveness probe period.
probes.liveness.timeoutSeconds integer 5 Liveness probe timeout.
probes.liveness.failureThreshold integer 3 Liveness probe failure threshold.
probes.readiness.enabled boolean true Enable readiness probe.
probes.readiness.initialDelaySeconds integer 0 Readiness probe initial delay.
probes.readiness.periodSeconds integer 10 Readiness probe period.
probes.readiness.timeoutSeconds integer 5 Readiness probe timeout.
probes.readiness.failureThreshold integer 3 Readiness probe failure threshold.

Resources and Security

Parameter Type Default Description
resources object {} CPU and memory requests and limits.
podSecurityContext object {} Pod-level security context.
securityContext object {} Container-level security context.

Service Account

Parameter Type Default Description
serviceAccount.create boolean false Create a dedicated ServiceAccount.
serviceAccount.name string "" Override the ServiceAccount name.
serviceAccount.annotations object {} Annotations for the ServiceAccount.

Scheduling

Parameter Type Default Description
nodeSelector object {} Node selector for scheduling.
tolerations array [] Tolerations for scheduling.
affinity object {} Affinity rules.
topologySpreadConstraints array [] Topology spread constraints.
priorityClassName string "" PriorityClass for the pod.
terminationGracePeriodSeconds integer 30 Termination grace period.
podLabels object {} Extra labels for the pod.
podAnnotations object {} Extra annotations for the pod.

Extra

Parameter Type Default Description
extraVolumes array [] Extra volumes to attach to the pod.
extraVolumeMounts array [] Extra volume mounts for the container.
extraManifests array [] Extra Kubernetes manifests deployed alongside the chart.

More Information