which is the best solution to selfhosted n8n? - eviltoast

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

  • Impressive-Self9135@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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

    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