What is n8n and Why Use It?
n8n (pronounced "n-eight-n") is an open‑source workflow automation tool that lets you connect APIs, databases, and services without writing code. It provides a visual editor, supports over 300 integrations, and can be extended with custom nodes.
- Open‑source license (MIT) – no vendor lock‑in.
- Self‑hostable – full control over data and execution environment.
- Scalable – runs in containers, suitable for single‑user or enterprise deployments.
How to Self‑Host n8n with Docker Compose and Traefik
Follow these steps to deploy a production‑ready n8n instance behind a Traefik reverse proxy.
- Prerequisites
- Docker Engine (>=20.10) and Docker Compose (v2).
- Domain name pointing to your server (e.g., n8n.example.com).
- Basic knowledge of Linux command line.
- 1. Create a project directory
mkdir -p ~/n8n && cd ~/n8n
- 2. Define the Docker Compose file
cat > docker-compose.yml <<'EOF' version: "3.8" services: traefik: image: traefik:v2.11 command: - "--api.insecure=true" - "--providers.docker=true" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.myresolver.acme.tlschallenge=true" - "--certificatesresolvers.myresolver.acme.email=you@example.com" - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" ports: - "80:80" - "443:443" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "letsencrypt:/letsencrypt" restart: unless-stopped n8n: image: n8nio/n8n:latest environment: - "N8N_BASIC_AUTH_ACTIVE=true" - "N8N_BASIC_AUTH_USER=admin" - "N8N_BASIC_AUTH_PASSWORD=strongpassword" - "N8N_HOST=n8n.example.com" - "N8N_PORT=5678" - "N8N_PROTOCOL=https" - "WEBHOOK_URL=" labels: - "traefik.enable=true" - "traefik.http.routers.n8n.rule=Host(`n8n.example.com`)" - "traefik.http.routers.n8n.entrypoints=websecure" - "traefik.http.routers.n8n.tls.certresolver=myresolver" volumes: - "n8n_data:/home/node/.n8n" restart: unless-stopped volumes: n8n_data: letsencrypt: EOF - 3. Adjust environment variables
- Replace
n8n.example.comwith your actual domain. - Set a strong
N8N_BASIC_AUTH_PASSWORDor configure other auth methods.
- Replace
- 4. Launch the stack
docker compose up -d
- 5. Verify deployment
- Open
in a browser. - Log in with the basic auth credentials.
- Check Traefik dashboard (default at
) to see the n8n service.
- Open
Why Self‑Hosting n8n Is Beneficial
Self‑hosting gives you direct control over performance, security, and customization.
- Performance – Running n8n on your own hardware eliminates third‑party latency and allows you to allocate resources as needed.
- Data Privacy – Sensitive workflow data never leaves your infrastructure, complying with GDPR, HIPAA, or internal policies.
- Cost Efficiency – Avoid recurring SaaS fees; you only pay for the underlying server resources.
- Extensibility – Add custom nodes, integrate private APIs, or modify the Docker image without restrictions.
- Reliability – Combine Docker Compose with Traefik’s automatic TLS and health‑check features for a resilient setup.