version: '3.1' services: mongo: image: mongo:4.0 restart: always environment: - MONGO_INITDB_ROOT_USERNAME - MONGO_INITDB_ROOT_PASSWORD - MONGO_INITDB_DATABASE - MONGO_NON_ROOT_USERNAME - MONGO_NON_ROOT_PASSWORD volumes: - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh n8n: image: n8n restart: always ports: - 5678:5678 links: - mongo volumes: - ~/.n8n:/root/.n8n # Wait 5 seconds to start n8n to make sure that MongoDB is ready # when n8n tries to connect to it command: /bin/sh -c "sleep 5; n8n start --NODE_CONFIG='{\"database\":{\"type\":\"mongodb\", \"mongodbConfig\":{\"url\":\"mongodb://n8nuser:${MONGO_NON_ROOT_PASSWORD}@mongo:27017/${MONGO_INITDB_DATABASE}\"}}}'"