Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

deploy erro #6655

Open
Open

Description

@zhuyifeiRuichuang

Describe the bug

In the document,https://docs.flowiseai.com/getting-started,can not deploy it ,·

root@app1 Thu Jul 23 [02:06:39] : /opt/Flowise/docker
# docker logs docker-flowise-1 
node:fs:1386
  const result = binding.mkdir(
                         ^

Error: ENOENT: no such file or directory, mkdir ''
    at Object.mkdirSync (node:fs:1386:26)
    at Object.<anonymous> (/usr/local/lib/node_modules/flowise/dist/utils/logger.js:46:8)
    at Module._compile (node:internal/modules/cjs/loader:1521:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1623:10)
    at Module.load (node:internal/modules/cjs/loader:1266:32)
    at Module._load (node:internal/modules/cjs/loader:1091:12)
    at Module.require (node:internal/modules/cjs/loader:1289:19)
    at require (node:internal/modules/helpers:182:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/flowise/dist/utils/index.js:37:34)
    at Module._compile (node:internal/modules/cjs/loader:1521:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1623:10)
    at Module.load (node:internal/modules/cjs/loader:1266:32)
    at Module._load (node:internal/modules/cjs/loader:1091:12)
    at Module.require (node:internal/modules/cjs/loader:1289:19)
    at require (node:internal/modules/helpers:182:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/flowise/dist/DataSource.js:35:17) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'mkdir',
  path: ''
}

Node.js v20.20.2
(base) 

To Reproduce

Image

Expected behavior

containerd should healthy

Screenshots

No response

Flow

No response

Use Method

None

Flowise Version

No response

Operating System

None

Browser

None

Additional context

No response

Activity

  1. prd-hoang-doan commented on Jul 23, 2026

    @prd-hoang-doan
    Contributor

    Hi @zhuyifeiRuichuang ,
    I found your issue related to LOG_PATH in .env file, I think the variable is commented by default, so you just un-comment the variable like

    LOG_PATH=/root/.flowise/logs
    or
    LOG_PATH=/Users/<username>/.flowise/logs
    

    Then use --force-recreate to build docker compose again, it will work.
    By the way, you should update all environment in .env having value like your_ (e.g: DATABASE_PATH, BLOB_STORAGE_PATH)

  2. nvroot commented on Jul 29, 2026

    @nvroot

    @zhuyifeiRuichuang try this:

    x-default-healthcheck: &default-healthcheck
      interval: 120s
      timeout: 20s
      retries: 5
      start_period: 60s
      start_interval: 5s
    services:
      flowise:
        image: flowiseai/flowise:latest
        container_name: flowise
        restart: unless-stopped
        entrypoint: /bin/sh -c "sleep 3; flowise start"
        environment:
          - DATABASE_PATH=/home/node/.flowise
          - DATABASE_TYPE=postgres
          - DATABASE_PORT=5432
          - DATABASE_HOST=flowise-db
          - DATABASE_NAME=flowise
          - DATABASE_USER=flowise-user
          - DATABASE_PASSWORD=changeme # CHANGEME
          - DATABASE_SSL=false
          - PGSSLMODE=false
          - SECRETKEY_STORAGE_TYPE=local
          - SECRETKEY_PATH=/home/node/.flowise
          - FLOWISE_SECRETKEY_OVERWRITE=changeme # CHANGEME openssl rand -hex 32
          - DEBUG=false
          - LOG_LEVEL=info
          - LOG_PATH=/home/node/.flowise/logs
          - STORAGE_TYPE=local
          - BLOB_STORAGE_PATH=/home/node/.flowise/storage
          - NUMBER_OF_PROXIES=1
          - CORS_ALLOW_CREDENTIALS=false
          - CORS_ORIGINS=*
          - MCP_CORS_ORIGINS=*
          - IFRAME_ORIGINS=*
          - SHOW_COMMUNITY_NODES=true
          - DISABLE_FLOWISE_TELEMETRY=true
          - APP_URL=https://flowise.example.com # CHANGEME
          - PORT=3001
          - REDIS_HOST=flowise-redis
          - REDIS_PORT=6379
          - APIKEY_PATH=/home/node/.flowise
          - ENABLE_METRICS=false
        expose:
          - 3001
        networks:
          - flowise-network
          - proxy
        volumes:
          - flowise-data:/home/node
        depends_on:
          flowise-db:
            condition: service_healthy
          flowise-redis:
            condition: service_healthy
          flowise-qdrant:
            condition: service_healthy
        healthcheck:
          test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:3001/api/v1/ping || exit 1"]
          <<: *default-healthcheck
    
      flowise-db:
        image: postgres:17-alpine
        restart: unless-stopped
        environment:
          - POSTGRES_USER=flowise-user
          - POSTGRES_PASSWORD=changeme # CHANGEME
          - POSTGRES_DB=flowise
        networks:
          - flowise-network
        volumes:
          - flowise-pg:/var/lib/postgresql/data
        healthcheck:
          test:
            - CMD-SHELL
            - "pg_isready -h localhost -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
          <<: *default-healthcheck
    
      flowise-redis:
        image: redis:7
        restart: unless-stopped
        networks:
          - flowise-network
        volumes:
          - flowise-redis:/data
        healthcheck:
          test:
            - CMD-SHELL
            - "redis-cli -h localhost -p 6379 ping"
          <<: *default-healthcheck
    
      flowise-qdrant:
        image: qdrant/qdrant:latest
        restart: unless-stopped
        environment:
          - QDRANT__SERVICE__API_KEY=changemevector # CHANGEME , CONNECT IN UI
        volumes:
          - flowise-qdrant:/qdrant/storage
        expose:
          - 6333
        networks:
          - flowise-network
          - proxy
        healthcheck:
          test: ["CMD", "/qdrant/qdrant", "-V"]
          <<: *default-healthcheck
    
    networks:
      flowise-network:
      proxy:
        external: true
    volumes:
      flowise-data:
      flowise-pg:
      flowise-redis:
      flowise-qdrant:
    
  3. alexandrosang21 commented on Jul 29, 2026

    @alexandrosang21

    This is fixed by #6031, which has been open since March. It is the same root cause as #6030.

    The chain, for anyone landing here from a search:

    1. docker/.env.example has LOG_PATH commented out by default.

    2. docker/docker-compose.yml passes it unconditionally as LOG_PATH=${LOG_PATH}, so an unset
      variable becomes an empty string inside the container rather than being absent.

    3. packages/server/src/utils/config.ts reads it with ??:

      dir: process.env.LOG_PATH ?? path.join(__dirname, '..', '..', 'logs')

      ?? only falls back on null and undefined. An empty string is not nullish, so dir
      stays "" instead of taking the default.

    4. packages/server/src/utils/logger.ts then runs fs.mkdirSync(""), which throws exactly the
      ENOENT: no such file or directory, mkdir '' above.

    So it is not a misconfiguration on your side. Following the documented Docker quickstart without
    setting LOG_PATH reproduces it every time, which is why the workaround in the comments above,
    uncommenting LOG_PATH, does resolve it.

    #6031 changes the ?? to ?.trim() ||, which also covers a whitespace-only value.

    One thing that might be worth folding into that PR while it is open: logger.ts calls

    if (!fs.existsSync(logDir)) {
        fs.mkdirSync(logDir)
    }

    without { recursive: true }. The workaround being suggested here is LOG_PATH=/root/.flowise/logs,
    which still fails with ENOENT if /root/.flowise does not already exist. Adding recursive: true
    would make both the default and a user-supplied nested path work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions