hmtanbir/n8n

By hmtanbir

Updated 8 days ago

Customized N8N image

Image
Languages & frameworks
0

835

hmtanbir/n8n repository overview

n8n - Workflow Automation Platform

n8n is an extendable workflow automation tool that enables you to connect different systems, databases, and APIs without writing complex code. With its node-based approach, you can easily build, run, and scale automated workflows.


🚀 Quick Start (Single Container)

To run n8n quickly using an SQLite database, execute the following command:

docker run -d --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  hmtanbir/n8n:latest

Once running, access the editor UI at: http://localhost:5678

Important

Always persist the `/home/node/.n8n` directory using a volume to ensure your workflows, database, and encryption keys are not lost when the container restarts or updates.

⚡ Production Deployment (Docker Compose with PostgreSQL & Redis)

For production environments, it is recommended to run n8n with PostgreSQL (for persistence) and Redis/Dragonfly (for Queue Mode scaling).

Create a docker-compose.yml file with the following configuration:

services:
  postgres:
    image: dhi.io/postgres:16-alpine
    container_name: n8n-postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: n8n-secure-password-change-me
      POSTGRES_DB: n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n -d n8n"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: hmtanbir/dragonfly:latest
    container_name: n8n-redis
    command: ["--logtostderr", "--dir=/data"]
    restart: unless-stopped
    volumes:
      - redis_data:/data
    healthcheck:
      test: ["CMD-SHELL", "nc -z 127.0.0.1 6379 || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 5

  n8n:
    image: hmtanbir/n8n:latest
    container_name: n8n-app
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - NODE_ENV=production
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - N8N_HOST=localhost
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=n8n-secure-password-change-me
      # Queue Mode scaling config
      - EXECUTIONS_MODE=queue
      - QUEUE_BULL_REDIS_HOST=redis
      - QUEUE_BULL_REDIS_PORT=6379
      # Encryption key (Crucial - change this to a secure random string!)
      - N8N_ENCRYPTION_KEY=change-this-to-a-secure-random-key-in-production
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy

volumes:
  postgres_data:
  redis_data:
  n8n_data:

Start the stack:

docker compose up -d

⚙️ Configuration & Environment Variables

VariableDescriptionDefault
N8N_ENCRYPTION_KEYKey used to encrypt credentials. Must be kept secure & persistent.Auto-generated if omitted
EXECUTIONS_MODESet to queue to enable multi-worker processing with Redis/Dragonfly.regular
DB_TYPEType of database to connect to. Supports sqlite or postgresdb.sqlite
GENERIC_TIMEZONEThe timezone n8n uses (e.g. America/New_York or Europe/Berlin).America/New_York

🔄 How to Update

To update n8n to the latest version under Docker Compose:

docker compose pull
docker compose down
docker compose up -d

Tag summary

Content type

Image

Digest

sha256:fd62b43a5

Size

331.6 MB

Last updated

8 days ago

docker pull hmtanbir/n8n:2.30.4