Skip to content

Instantly share code, notes, and snippets.

@itxtoledo
Last active July 30, 2025 12:50
Show Gist options
  • Save itxtoledo/5cffd7a0590b6514b7f8813eca48f736 to your computer and use it in GitHub Desktop.
Save itxtoledo/5cffd7a0590b6514b7f8813eca48f736 to your computer and use it in GitHub Desktop.
Docker Compose for deploying a Typebot instance on Coolify with little to no configuration
x-typebot-common: &typebot-common
depends_on:
postgresql:
condition: service_healthy
# redis:
# condition: service_healthy
maildev:
condition: service_started
x-typebot-env: &typebot-env
DATABASE_URL: postgresql://${SERVICE_USER_POSTGRESQL}:${SERVICE_PASSWORD_POSTGRESQL}@postgresql:5432/${POSTGRES_DB:-typebot}
ENCRYPTION_SECRET: ${SERVICE_BASE64_32_SECRET}
NEXTAUTH_URL: ${SERVICE_FQDN_BUILDER}
NEXT_PUBLIC_VIEWER_URL: ${SERVICE_FQDN_VIEWER}
ADMIN_EMAIL: ${ADMIN_EMAIL:[email protected]}
DEFAULT_WORKSPACE_PLAN: UNLIMITED
NEXTAUTH_URL_INTERNAL: http://localhost:3000
DISABLE_SIGNUP: ${DISABLE_SIGNUP:-true}
# REDIS_URL: redis://redis:6379
SMTP_USERNAME: ${SMTP_USERNAME:-''}
SMTP_PASSWORD: ${SMTP_PASSWORD:-''}
SMTP_HOST: ${SMTP_HOST:-maildev}
SMTP_PORT: ${SMTP_PORT:-1025}
NEXT_PUBLIC_SMTP_FROM: ${NEXT_PUBLIC_SMTP_FROM:[email protected]}
SMTP_SECURE: ${SMTP_SECURE:-false}
SMTP_IGNORE_TLS: ${SMTP_IGNORE_TLS:-true}
SMTP_AUTH_DISABLED: ${SMTP_AUTH_DISABLED:-false}
DEBUG: ${DEBUG:-true}
NEXT_PUBLIC_UNSPLASH_APP_NAME: ${UNSPLASH_APP_NAME:-Typebot}
NEXT_PUBLIC_UNSPLASH_ACCESS_KEY: ${UNSPLASH_ACCESS_KEY:-YOUR_UNSPLASH_ACCESS_KEY}
NEXT_PUBLIC_PEXELS_API_KEY: ${PEXELS_API_KEY:-YOUR_PEXELS_API_KEY}
services:
builder:
<<: *typebot-common
image: 'baptistearno/typebot-builder:latest'
environment:
SERVICE_FQDN_BUILDER: ""
<<: *typebot-env
viewer:
<<: *typebot-common
image: 'baptistearno/typebot-viewer:latest'
environment:
SERVICE_FQDN_VIEWER: ""
<<: *typebot-env
# redis:
# image: redis:alpine
# restart: always
# command: --save 60 1 --loglevel warning
# volumes:
# - redis-data:/data
# healthcheck:
# test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
# start_period: 20s
# interval: 30s
# retries: 5
# timeout: 3s
postgresql:
image: postgres:16-alpine
volumes:
- postgresql_data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- POSTGRES_DB=${POSTGRES_DB:-typebot}
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB:-typebot}"]
interval: 5s
timeout: 20s
retries: 10
maildev:
image: maildev/maildev:latest
restart: always
environment:
- SERVICE_FQDN_MAILDEV_8080=""
- MAILDEV_WEB_PORT=8080
- MAILDEV_SMTP_PORT=1025
volumes:
- maildev-data:/data
volumes:
redis-data:
postgresql_data:
maildev-data:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment