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
- 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
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.
- 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.
- 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.
- 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.
- 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.
- Introduced a new Nginx configuration file to handle static file serving and API request routing.
- Updated docker-compose.yml to mount the Nginx configuration for the RAGFlow service, ensuring proper reverse proxy setup and static asset management.
- Added a new volume 'ragflow_data' for persistent storage.
- Updated RAGFlow image tag to 'latest' for the most recent version.
- Configured volume mapping for RAGFlow to ensure data persistence.
- Added RAGFLOW_ADMIN_HOSTNAME to .env.example for environment variable consistency.
- Updated Caddyfile to use the new RAGFLOW_ADMIN_HOSTNAME for the admin reverse proxy.
- Included RAGFLOW_ADMIN_HOSTNAME in docker-compose.yml to ensure proper service configuration.
- Modified final report script to display the admin host information for better visibility.
- Introduced a new Redis service (ragflow-redis) in docker-compose.yml for enhanced caching capabilities.
- Updated environment variables to include RAGFLOW_REDIS_PASSWORD for secure access.
- Modified .env.example to reflect the addition of Redis credentials.
- Updated secrets generation script to include RAGFLOW_REDIS_PASSWORD for consistency in credential management.
- Changed MYSQL_DATABASE environment variable from 'ragflow' to 'rag_flow' for improved clarity and consistency across services.
- Added REDIS_PASSWORD environment variable to enhance security configuration.
- Changed service dependency condition from 'service_healthy' to 'service_started' for improved startup reliability.
- Updated Infinity service image tag to v0.6.2 for enhanced stability.
- Removed health check configuration and unnecessary port mapping, while adding ulimits for file descriptor limits.
- Introduced a new service definition for Infinity, including image, container name, restart policy, and command.
- Configured health checks and environment variables for the Infinity service.
- Added a new volume for Infinity data storage to ensure persistent data management.
- Updated service dependencies to include health checks for proper startup order.
- Removed Elasticsearch service configuration from docker-compose.yml, simplifying the setup.
- Updated RAGFlow service to use the latest image tag for better compatibility.
- Changed environment variable from ES_HOST and ES_PORT to DOC_ENGINE for improved clarity.
- Removed vm.max_map_count configuration from the system preparation script, as it is no longer necessary for RAGFlow.
- Increased Java heap size from 1g to 2g for improved performance.
- Disabled unnecessary security features and geoip downloader to streamline setup.
- Adjusted health check parameters to allow for more retries and a longer start period, enhancing service stability.
- Updated .env.example to include RAGFlow hostname and internal credentials for MySQL and MinIO.
- Modified Caddyfile to set up a reverse proxy for RAGFlow service.
- Enhanced docker-compose.yml with RAGFlow service definition, including environment variables and health checks for dependencies.
- Updated README.md to include RAGFlow information and service URL for user guidance.
- Configured system preparation script to set vm.max_map_count for Elasticsearch support required by RAGFlow.
- Added secret generation for RAGFlow internal credentials in the secrets generation script.
- Included RAGFlow in the final report script for visibility on service status and access information.
- Modified the pip install command to specify 'paddlex[all,ocr,ie]' for enhanced functionality.
- This change ensures that the necessary components for OCR and intelligent edge capabilities are included during the setup process.
- Modified docker-compose.yml to use environment variables for WAHA_DASHBOARD_ENABLED and WHATSAPP_SWAGGER_ENABLED, allowing for more flexible configuration.
- Added service health dependencies for Redis and Postgres in docker-compose.yml to ensure proper service startup order.
- Updated README.md to include WAHA service URL for better user guidance.
- Introduced WAHA_PUBLIC_URL in .env.example for external access configuration.
- Enhanced docker-compose.yml with additional environment variables for WAHA service, including WAHA_DASHBOARD_ENABLED and WHATSAPP_SESSIONS_POSTGRESQL_URL.
- Updated final report script to reflect changes in WAHA service URLs for improved visibility.
- Updated .env.example to include WAHA_HOSTNAME and related environment variables for configuration.
- Modified Caddyfile to set up reverse proxy for WAHA service.
- Enhanced docker-compose.yml to define WAHA service with necessary environment variables.
- Updated scripts to generate secrets for WAHA, including dashboard and Swagger credentials.
- Added WAHA information to the final report for user visibility.
- Introduced N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES variable in .env.example to enhance file access security.
- Updated docker-compose.yml to set N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES to true by default, ensuring better protection of n8n files.
- Adjusted the Postgres image version to 17 for compatibility.
- Cleaned up formatting in healthcheck commands for consistency.
- Removed unnecessary whitespace in service definitions.
- Changed the default Redis authentication setting in docker-compose.yml to be empty for better flexibility.
- Added a dashboard link to the final report script for easier access to Qdrant's dashboard.
- Added SMTP configuration options for email settings, including host, port, and authentication details.
- Restored the N8N_PAYLOAD_SIZE_MAX setting to maintain maximum payload size limit for data processing.
- Changed the installation command to use 'paddlex[ocr]' for focused functionality.
- Updated the command to directly serve the OCR pipeline without checking for a configuration file, simplifying the setup process.
- Changed the installation command to include 'paddlex[all]' for broader functionality.
- Updated the pipeline configuration file reference from `PP-ChatOCRv3-doc.yaml` to `PP-ChatOCRv5-doc.yaml`, ensuring the service uses the latest version for improved performance.
- Modified the OCR service command to check for the existence of the pipeline configuration file and download it if not present, enhancing the setup process.
- Added a volume mount for the paddlex directory to ensure access to necessary files during execution.
- Deleted the `ocr_config.yaml` file as it is no longer needed.
- Updated the OCR service command in `docker-compose.yml` to reference the pipeline directly instead of the configuration file, streamlining the setup.
- Updated the OCR service command in `docker-compose.yml` to properly quote the path to the configuration file `ocr_config.yaml`.
- This change improves the reliability of the command execution and ensures correct parsing of the file path.
- Modified the OCR service command in `docker-compose.yml` to reference the new configuration file `ocr_config.yaml`.
- Introduced `ocr_config.yaml` to specify the Russian language for the OCR pipeline.
- These changes streamline the OCR service setup and enhance language support.
- Modified the OCR service command in `docker-compose.yml` to correctly quote the path to the HPI configuration file.
- Cleaned up the `ocr_hpi.yaml` file by removing unnecessary lines and ensuring proper formatting for the OCR pipeline configuration.
- These changes improve the clarity and functionality of the OCR service setup.