Skip to content

Instantly share code, notes, and snippets.

@rafaelquintanilha
Last active July 15, 2025 14:13
Show Gist options
  • Save rafaelquintanilha/ff8b89d00f786687d6261699806b694a to your computer and use it in GitHub Desktop.
Save rafaelquintanilha/ff8b89d00f786687d6261699806b694a to your computer and use it in GitHub Desktop.
Docker Compose for n8n
services:
caddy:
image: caddy:2
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- web
n8n:
build:
context: ./n8n-playwright
dockerfile: Dockerfile
restart: always
environment:
- TZ=${TIMEZONE}
- GENERIC_TIMEZONE=${TIMEZONE}
- N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE}
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- WEBHOOK_URL=${N8N_WEBHOOK_URL}
- N8N_EDITOR_BASE_URL=${N8N_EDITOR_BASE_URL}
- N8N_PROTOCOL=${N8N_PROTOCOL}
- N8N_HOST=${N8N_HOST}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- GEMINI_API_KEY=${GEMINI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
# Playwright & Node modules
- NODE_FUNCTION_ALLOW_EXTERNAL=puppeteer-core,playwright-core
- NODE_FUNCTION_ALLOW_BUILTIN=*
- NODE_PATH=/home/node/node_modules:/usr/local/lib/node_modules
# Chrome/Chromium environment
- CHROME_BIN=/usr/bin/chromium-browser
- PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
- PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
- PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
- PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser
volumes:
- n8n_data:/home/node/.n8n
networks:
- web
mmatrends-cron:
build:
context: ./apps/mmatrends
dockerfile: Dockerfile.cron
environment:
- TZ=${TIMEZONE}
volumes:
- ./apps/mmatrends/logs:/var/log
restart: always
redis:
image: redis:7-alpine
restart: always
command: redis-server --requirepass ${REDIS_PASSWORD} --appendonly yes
ports:
- "${REDIS_EXTERNAL_PORT}:6379"
volumes:
- redis_data:/data
environment:
- TZ=${TIMEZONE}
networks:
- web
volumes:
caddy_data:
caddy_config:
n8n_data:
redis_data:
networks:
web:
driver: bridge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment