Skip Navigation
Self-Hosted Main @selfhosted.forum
roycorderov @alien.top
BOT

which is the best solution to selfhosted n8n?

hi folks i am starting to use n8n and i want to do some automations in my kommo crm and other things, but i have seen that there are several ways to install n8n in a self hosted way, so my question is for those who have n8n as self hosted services,

which would be the best way to install it?

docker without database?
docker with database and which database would be better postgress or mysql?
thanks

13 comments
  • I wouldn't know if someone can help me.

    I have this has my Portainer Stack and all the variables configuration in the environment variables but while container works fine when first access, it reset when I edit the container or update and I have to create a new login.

    I discovered recently that while other containers works fine, the worker container wouldn't.

    I'm new to docker and container and would appreciate help

    This my docker-compose file

     undefined
        
    version: '3.8'
    
    volumes:
      db_storage:
      n8n_storage:
      redis_storage:
    
    x-shared: &shared
      restart: always
      environment:
        - DB_TYPE=postgresdb
        - DB_POSTGRESDB_HOST=postgres
        - DB_POSTGRESDB_PORT=5432
        - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
        - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
        - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
        - EXECUTIONS_MODE=queue
        - QUEUE_BULL_REDIS_HOST=redis
        - QUEUE_HEALTH_CHECK_ACTIVE=true
        - N8N_BASIC_AUTH_ACTIVE=true
        - N8N_BASIC_AUTH_USER
        - N8N_BASIC_AUTH_PASSWORD
      links:
        - postgres
        - redis
      volumes:
        - n8n_storage:/home/node/
      depends_on:
        redis:
          condition: service_healthy
        postgres:
          condition: service_healthy
    
    services:
      postgres:
        image: postgres:11
        restart: always
        environment:
          - POSTGRES_USER
          - POSTGRES_PASSWORD
          - POSTGRES_DB
          - POSTGRES_NON_ROOT_USER
          - POSTGRES_NON_ROOT_PASSWORD
        volumes:
          - db_storage:/var/lib/postgresql/data
          - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
          interval: 5s
          timeout: 5s
          retries: 10
    
      redis:
        image: redis:6-alpine
        restart: always
        volumes:
          - redis_storage:/data
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
          interval: 5s
          timeout: 5s
          retries: 10
    
      n8n:
        <<: *shared
        image: n8nio/n8n
        command: /bin/sh -c "n8n start --tunnel"
        ports:
          - 5678:5678
    
      n8n-worker:
        <<: *shared
        image: n8nio/n8n
        command: /bin/sh -c "sleep 5; n8n worker"
        depends_on:
          - n8n
    
      
13 comments