n8nio/runners image uses pnpm, not npm. configure allowed modules
via n8n-task-runners.json instead of environment variables.
- switch from npm to pnpm in Dockerfile.runner
- add n8n-task-runners.json for module allowlist config
- remove redundant env vars from docker-compose.yml
- update documentation to reflect new config location
n8n v2.0 executes code nodes in a separate task runner container.
the runner image (n8nio/runners) doesn't include npm packages like
cheerio, axios, moment, lodash - causing "module is disallowed" errors.
- add Dockerfile.runner with npm packages for code nodes
- rename Dockerfile to Dockerfile.n8n for clarity
- update docker-compose.yml to use custom runner build
switching project name from 'localai' to directory-based naming would
cause users to lose all data stored in docker volumes (workflows,
databases, configs) since volumes are prefixed with project name
- fix quote parsing in N8N_WORKER_COUNT from .env
- remove unused N8N_RUNNER_COUNT references
- parameterize n8n version for both n8n and runner images
- add healthchecks to n8n main and worker services
update CLAUDE.md with sidecar pattern details including dynamic
generation, network mode, and scaling instructions. add worker
count and architecture info to final installation report.
remove N8N_RUNNER_COUNT (now 1:1 with workers), add
OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS setting, clarify that
generate_n8n_workers.sh should be run after changing count.
update configure services to call generate_n8n_workers.sh instead of
prompting for separate runner count. update start_services.py and
apply_update.sh to include docker-compose.n8n-workers.yml when present.
replace replicated workers/runners with dynamically generated 1:1
worker-runner pairs where each runner connects to its worker via
localhost (network_mode: service). this improves task routing by
ensuring each worker has dedicated runner capacity.
add generate_n8n_workers.sh script to create docker-compose.n8n-workers.yml
upgrade n8n from 1.123.3 to 2.0.0-rc.4 with external task runners for
Code node execution. task runners handle javascript and python code
execution in isolated containers with configurable concurrency.
key changes:
- add n8n-runner service using n8nio/runners:2.0.0-rc.4
- configure runner auth token and broker communication
- add N8N_RUNNER_COUNT for scaling runner replicas
- move code node library config to runner container
- update binary data mode from filesystem to database
- add runner count prompt to installation wizard
- Introduced N8N_LOG_LEVEL and N8N_LOG_OUTPUT variables in .env.example for logging customization.
- Updated docker-compose.yml to support dynamic assignment of logging configuration, defaulting to 'info' and 'console' respectively.
- Added EXECUTIONS_MODE variable to .env.example for clarity on execution settings.
- Updated docker-compose.yml to allow dynamic assignment of EXECUTIONS_MODE, defaulting to 'queue' if not set.
add environment variables for vlm pipeline support (remote services,
model loading, device selection) and persistent cache volume. improve
final report with detailed vlm pipeline usage example showing how to
use ollama with granite3.2-vision model for document conversion.
- Updated the healthcheck command in docker-compose.yml for improved readability by formatting it as a list.
- Standardized the output for PostgreSQL host in 07_final_report.sh to remove environment variable references, ensuring consistent messaging.
- Included Docling service details in the "Quick Start and Usage" section of README.md, providing users with access information.
- Updated the service addition guidelines in add-new-service.mdc to include instructions for adding service URLs in alphabetical order.
- Updated the final report script to streamline the output for the Docling service by reorganizing the displayed information.
- Removed redundant lines and ensured that essential details such as API endpoints and user credentials are clearly presented.
- Changed the Docling image reference in .env.example and docker-compose.yml to use the correct naming convention for the CPU version, ensuring consistency across configuration files.
- Modified the confirmation prompts in 03_generate_secrets.sh and 05_configure_services.sh to default to 'yes' for user actions regarding domain and email confirmation, as well as n8n worker updates. This change aims to streamline user interactions and reduce the need for repeated confirmations.
- Introduced Docling hostname and credentials in .env.example for environment setup.
- Updated Caddyfile to include reverse proxy configuration for the Docling service.
- Added Docling service definition in docker-compose.yml with necessary environment variables and health checks.
- Enhanced README.md to document Docling integration and access details.
- Updated scripts to generate Docling credentials and include them in the final report for user visibility.
- Created CLAUDE.md to provide comprehensive guidance on the n8n-install project, including architecture, key files, common commands, and service addition workflow.
- Deleted outdated workflow files: Local_RAG_AI_Agent_n8n_Workflow.json, Create_Google_Doc.json, Get_Postgres_Tables.json, Post_Message_to_Slack.json, and Summarize_Slack_Conversation.json to streamline the repository and remove unused resources.
- Updated final report script to reflect changes in user messaging.
- Changed PostgreSQL image version to 17 for consistency with the latest features.
- Updated volume mapping to specify the data directory for better data management.
- Modified the PostgreSQL image definition in docker-compose.yml to use a more robust syntax for the version variable.
- Added a TODO comment in docker-compose.yml to rename the volume for clarity in future updates.
- Simplified the service selection wizard in 04_wizard.sh by removing unnecessary dynamic sizing calculations.
- Changed PostgreSQL image version in docker-compose.yml to use the latest tag for improved compatibility.
- Enhanced the service selection wizard in 04_wizard.sh to dynamically adjust dialog size based on terminal dimensions, ensuring better usability.
- Modified the LightRAG service description in the wizard script for clarity.
- Increased the display size in the service selection wizard to accommodate longer descriptions.
- Updated PostgreSQL image version from 17 to 18 for the latest features and security improvements.
- Adjusted volume mapping for PostgreSQL to ensure proper data storage.
- Reformatted healthcheck commands for Elasticsearch and RAGFlow services for better readability.
- Updated .env.example to include RAGFLOW_ELASTICSEARCH_PASSWORD for Elasticsearch credentials.
- Modified docker-compose.yml to replace the Infinity service with a new ragflow-elasticsearch service, including necessary environment variables and health checks.
- Adjusted README.md to reflect the integration of Elasticsearch as the backend for RAGFlow.
- Enhanced system preparation script to configure vm.max_map_count for Elasticsearch requirements.
- Updated secrets generation script to include RAGFLOW_ELASTICSEARCH_PASSWORD for credential management.
- Introduced LightRAG hostname and credentials in .env.example for environment setup.
- Updated Caddyfile to include reverse proxy configuration for LightRAG service.
- Added LightRAG service definition in docker-compose.yml with necessary environment variables and volume mappings.
- Enhanced README.md to document LightRAG integration and access details.
- Updated scripts to generate LightRAG credentials and include them in the final report for user visibility.
- Changed environment variable names from MINIO_ACCESS_KEY and MINIO_SECRET_KEY to MINIO_USER and MINIO_PASSWORD for clarity and consistency in service configuration.
- Deleted RAGFLOW_ADMIN_HOSTNAME from .env.example for environment variable cleanup.
- Removed the RAGFlow Admin reverse proxy block from Caddyfile to simplify routing.
- Excluded RAGFLOW_ADMIN_HOSTNAME from docker-compose.yml to streamline service configuration.
- Updated final report script to omit admin host information for clarity.