Multi-user Docker Environment

Hi @Ian_Taggart

Thanks I was able to host multiple instances with SSL but there is a problem that there is only one database which can be accessed from any user. so for example I have created a credential from user1, then it is user2 can also see those in his credentials.

Here is my whole docker-compose.yml file

version: "3"
services:
  traefik:
    image: "traefik"
    command:
      - "--api=true"
      - "--api.insecure=true"
      - "--api.dashboard=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
      - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
      - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
    ports:
      - "443:443"
      - "80:80"
    volumes:
      - ${DATA_FOLDER}/letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
  n8n:
    image: n8nio/n8n
    ports:
      - "127.0.0.1:5678:5678"
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n.rule=Host(`${DOMAIN_NAME}`)
      - traefik.http.routers.n8n.tls=true
      - traefik.http.routers.n8n.entrypoints=websecure
      - "traefik.http.routers.n8n.rule=PathPrefix(`/${SUBFOLDER}{regex:$$|/.*}`)"
      - "traefik.http.middlewares.n8n-stripprefix.stripprefix.prefixes=/${SUBFOLDER}"
      - "traefik.http.routers.n8n.middlewares=n8n-stripprefix"
      - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
      - traefik.http.middlewares.n8n.headers.SSLRedirect=true
      - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
      - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n.headers.STSPreload=true
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER
      - N8N_BASIC_AUTH_PASSWORD
      - N8N_HOST=${DOMAIN_NAME}
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - N8N_PATH
      - WEBHOOK_TUNNEL_URL=https://${DOMAIN_NAME}${N8N_PATH}
      - VUE_APP_URL_BASE_API=https://${DOMAIN_NAME}${N8N_PATH}
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${DATA_FOLDER}/.n8n:/root/.n8n

  n8n3:
    image: n8nio/n8n
    ports:
      - "127.0.0.1:5600:5600"
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n3.rule=Host(`${DOMAIN_NAME}`)
      - traefik.http.routers.n8n3.tls=true
      - traefik.http.routers.n8n3.entrypoints=websecure
      - "traefik.http.routers.n8n3.rule=PathPrefix(`/test{regex:$$|/.*}`)"
      - "traefik.http.middlewares.n8n3-stripprefix.stripprefix.prefixes=/test"
      - "traefik.http.routers.n8n3.middlewares=n8n3-stripprefix"
      - traefik.http.routers.n8n3.tls.certresolver=mytlschallenge
      - traefik.http.middlewares.n8n3.headers.SSLRedirect=true
      - traefik.http.middlewares.n8n3.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n3.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n3.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n3.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n3.headers.SSLHost=${DOMAIN_NAME}
      - traefik.http.middlewares.n8n3.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n3.headers.STSPreload=true
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER="admin1"
      - N8N_BASIC_AUTH_PASSWORD="pass1"
      - N8N_HOST=${DOMAIN_NAME}
      - N8N_PORT=5600
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - N8N_PATH=/test/
      - WEBHOOK_TUNNEL_URL=https://${DOMAIN_NAME}/test/
      - VUE_APP_URL_BASE_API=https://${DOMAIN_NAME}/test/
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${DATA_FOLDER}/.n8n:/root/.n8n

  n8n5:
    image: n8nio/n8n
    ports:
      - "127.0.0.1:5601:5601"
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n5.rule=Host(`${DOMAIN_NAME}`)
      - traefik.http.routers.n8n5.tls=true
      - traefik.http.routers.n8n5.entrypoints=websecure
      - "traefik.http.routers.n8n5.rule=PathPrefix(`/test2{regex:$$|/.*}`)"
      - "traefik.http.middlewares.n8n5-stripprefix.stripprefix.prefixes=/test2"
      - "traefik.http.routers.n8n5.middlewares=n8n5-stripprefix"
      - traefik.http.routers.n8n5.tls.certresolver=mytlschallenge
      - traefik.http.middlewares.n8n5.headers.SSLRedirect=true
      - traefik.http.middlewares.n8n5.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n5.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n5.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n5.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n5.headers.SSLHost=${DOMAIN_NAME}
      - traefik.http.middlewares.n8n5.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n5.headers.STSPreload=true
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin2
      - N8N_BASIC_AUTH_PASSWORD=pass2
      - N8N_HOST=${DOMAIN_NAME}
      - N8N_PORT=5601
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - N8N_PATH=/test2/
      - WEBHOOK_TUNNEL_URL=https://${DOMAIN_NAME}/test2/
      - VUE_APP_URL_BASE_API=https://${DOMAIN_NAME}/test2/
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${DATA_FOLDER}/.n8n:/root/.n8n

  n8n4:
    image: n8nio/n8n
    ports:
      - "127.0.0.1:5700:5700"
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n4.rule=Host(`${DOMAIN_NAME}`)
      - traefik.http.routers.n8n4.tls=true
      - traefik.http.routers.n8n4.entrypoints=websecure
      - "traefik.http.routers.n8n4.rule=PathPrefix(`/asit{regex:$$|/.*}`)"
      - "traefik.http.middlewares.n8n4-stripprefix.stripprefix.prefixes=/asit"
      - "traefik.http.routers.n8n4.middlewares=n8n4-stripprefix"
      - traefik.http.routers.n8n4.tls.certresolver=mytlschallenge
      - traefik.http.middlewares.n8n4.headers.SSLRedirect=true
      - traefik.http.middlewares.n8n4.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n4.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n4.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n4.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n4.headers.SSLHost=${DOMAIN_NAME}
      - traefik.http.middlewares.n8n4.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n4.headers.STSPreload=true
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER
      - N8N_BASIC_AUTH_PASSWORD
      - N8N_HOST=${DOMAIN_NAME}
      - N8N_PORT=5700
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - N8N_PATH=/asit/
      - WEBHOOK_TUNNEL_URL=https://${DOMAIN_NAME}/asit/
      - VUE_APP_URL_BASE_API=https://${DOMAIN_NAME}/asit/
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${DATA_FOLDER}/.n8n:/root/.n8n

Should I change the DATA_FOLDER for each instance ?
Thanks