Discover how to efficiently set up a virtual private server (VPS) using Hetzner Cloud and deploy N8N using Coolify, an intuitive GUI Docker manager. This guide provides step-by-step instructions to streamline your setup process.
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
After the installation, a dashboard URL like http://xx.xx.xx.xx:8000
will be displayed. Access this URL to set up your Coolify account.
services:
n8n:
image: 'docker.n8n.io/n8nio/n8n:ai-beta'
environment:
# Fully Qualified Domain Name for N8N
- SERVICE_FQDN_N8N
# Base URL for the n8n editor UI
- 'N8N_EDITOR_BASE_URL=${SERVICE_FQDN_N8N}'
# Webhook URL for n8n to receive data
- 'WEBHOOK_URL=${SERVICE_FQDN_N8N}'
# The host name for n8n instance
- 'N8N_HOST=${SERVICE_DOMAIN_N8N}'
# The timezone setting for n8n and Docker container
- 'GENERIC_TIMEZONE="Europe/Berlin"'
- 'TZ="Europe/Berlin"'
# Postgres database connection details
- 'DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}' # Database name for Postgres
- 'DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}' # Postgres host
- 'DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}' # Postgres password
- 'DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT}' # Postgres port
- 'DB_POSTGRESDB_SCHEMA=${DB_POSTGRESDB_SCHEMA}' # Postgres database schema
- 'DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}' # Postgres user
# Database type, e.g., "postgresdb"
- 'DB_TYPE=${DB_TYPE}'
# Mode of execution, e.g., "regular" or "queue"
- 'EXECUTIONS_MODE=${EXECUTIONS_MODE}'
# Log level for n8n, e.g., "error", "warn", "info"
- 'N8N_LOG_LEVEL=${N8N_LOG_LEVEL}'
# Enable metrics for monitoring n8n performance
- 'N8N_METRICS=${N8N_METRICS}'
# Bull queue configuration for Redis
- 'QUEUE_BULL_PREFIX=${QUEUE_BULL_PREFIX}' # Prefix for Bull queue names
- 'QUEUE_BULL_REDIS_DB=${QUEUE_BULL_REDIS_DB}' # Redis database index for Bull queue
- 'QUEUE_BULL_REDIS_HOST=${QUEUE_BULL_REDIS_HOST}' # Redis host for Bull queue
- 'QUEUE_BULL_REDIS_PASSWORD=${QUEUE_BULL_REDIS_PASSWORD}' # Redis password for Bull queue
- 'QUEUE_BULL_REDIS_PORT=${QUEUE_BULL_REDIS_PORT}' # Redis port for Bull queue
# Enable diagnostics reporting and version update notifications
- 'N8N_DIAGNOSTICS_ENABLED=${N8N_DIAGNOSTICS_ENABLED}'
- 'N8N_VERSION_NOTIFICATIONS_ENABLED=${N8N_VERSION_NOTIFICATIONS_ENABLED}'
# Enable workflow templates and configure external frontend hooks
- 'N8N_TEMPLATES_ENABLED=${N8N_TEMPLATES_ENABLED}'
- 'EXTERNAL_FRONTEND_HOOKS_URLS=${EXTERNAL_FRONTEND_HOOKS_URLS}'
# Frontend and Backend diagnostics configuration
- 'N8N_DIAGNOSTICS_CONFIG_FRONTEND=${N8N_DIAGNOSTICS_CONFIG_FRONTEND}'
- 'N8N_DIAGNOSTICS_CONFIG_BACKEND=${N8N_DIAGNOSTICS_CONFIG_BACKEND}'
# Disable onboarding flow if set to true
- 'N8N_ONBOARDING_FLOW_DISABLED=${N8N_ONBOARDING_FLOW_DISABLED}'
volumes:
# Mounting volume for n8n data persistence
- 'n8n-data:/home/node/'
final Env config will look like this example:
DB_POSTGRESDB_DATABASE=postgres
DB_POSTGRESDB_HOST=k4o4wwk
DB_POSTGRESDB_PASSWORD=Ka36bNFBdHUtmvs3ZPKk2iWx8N
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_SCHEMA=public
DB_POSTGRESDB_USER=postgres
DB_TYPE=postgresdb
EXECUTIONS_MODE=queue
EXTERNAL_FRONTEND_HOOKS_URLS=
N8N_DIAGNOSTICS_CONFIG_BACKEND=false
N8N_DIAGNOSTICS_CONFIG_FRONTEND=false
N8N_DIAGNOSTICS_ENABLED=false
N8N_LOG_LEVEL=verbose
N8N_METRICS=false
N8N_ONBOARDING_FLOW_DISABLED=true
N8N_TEMPLATES_ENABLED=true
N8N_VERSION_NOTIFICATIONS_ENABLED=true
QUEUE_BULL_PREFIX=N8N_
QUEUE_BULL_REDIS_DB=0
QUEUE_BULL_REDIS_HOST=xsksg8s
QUEUE_BULL_REDIS_PASSWORD=Si8oa82GpHLS44lw8Ssm
QUEUE_BULL_REDIS_PORT=6379
SERVICE_DOMAIN_N8N=rmQirts0xAxkgDAd
SERVICE_FQDN_N8N=http://n8n-n4cw2c.65.19.17.197.sslip.io