the telemetry id was being lost during updates because:
1. apply_update.sh didn't export INSTALLATION_ID
2. 03_generate_secrets.sh only checked env var, not existing .env
now checks both exported var and generated_values from existing .env,
and generates new id for pre-telemetry installations upgrading
collect basic usage statistics (install/update events, version, os, selected
services) to help improve the project. users can opt-out by setting
SCARF_ANALYTICS=false or DO_NOT_TRACK=1.
- change gost username from email to fixed 'gost' to avoid @ symbol
breaking proxy url parsing
- fix healthcheck to make real proxy request to httpbin.org instead of
invalid spider request to proxy port
- increase healthcheck interval to 60s and timeout to 15s
- add gost http/https proxy service with authentication
- create x-proxy-env anchor for shared proxy configuration
- apply proxy settings to ai services (n8n, flowise, langfuse, etc.)
- add gost to wizard, welcome page, and final report
- generate gost credentials and proxy url in secrets script
- use wget healthcheck compatible with alpine-based gost image
- add adaptive terminal sizing for all whiptail dialogs (wt_get_size)
- add new wrapper functions: wt_checklist, wt_radiolist, wt_menu
- add safe parser wt_parse_choices to replace eval
- improve NEWT_COLORS theme with better contrast (brightgreen/brightcyan)
- add new logging functions: log_header, log_subheader, log_divider, log_box
- add spinner animation utilities for progress indication
- expand color palette with bright variants and text styles
- update 04_wizard.sh to use new whiptail wrappers
replace terminal-based final report with web-based welcome page that
displays service credentials, hostnames, and quick start guide.
- add welcome/index.html with tailwind css and dark mode support
- add welcome/app.js with service metadata and password toggle/copy
- add scripts/generate_welcome_page.sh to generate data.json from env
- simplify 07_final_report.sh to show welcome page url and make commands
- add welcome page basic auth credentials to caddy and secret generation
- update add-new-service documentation with new welcome page steps
- 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
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
- 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.
- 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.
- 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.
- 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.
- 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.
- Replaced standard input prompts with whiptail dialogs in 03_generate_secrets.sh and 05_configure_services.sh for domain, email, OpenAI API key, and n8n worker count.
- Added validation messages using whiptail for empty inputs and invalid formats.
- Introduced new utility functions in utils.sh for whiptail integration, ensuring the script checks for whiptail availability.
- Removed redundant prompts for OpenAI API key and Cloudflare Tunnel token in `03_generate_secrets.sh` and `04_wizard.sh`.
- Introduced `05_configure_services.sh` to handle service configuration and .env updates, improving clarity and maintainability.
- Enhanced user prompts for n8n worker count and workflow import settings, ensuring better user experience during configuration.
- Updated installation script to include the new configuration script, ensuring a cohesive setup process.
- Updated environment variable names in .env.example, Caddyfile, and docker-compose.yml for consistency and clarity.
- Adjusted the final report script to reflect the new variable names, ensuring accurate output.
- Enhanced the script for generating secrets to accommodate the updated variable names, improving maintainability.
- Updated environment variable names in .env.example to align with container environment variables.
- Simplified the docker-compose.yml to use the new variable names, enhancing clarity and maintainability.
- Removed outdated API endpoint documentation from the final report script to streamline output.
- Add LibreTranslate service with 50+ language support
- Configure with Basic Auth for security
- Integrate with wizard and final report
- Add documentation to README
- Updated .env.example to include PaddleOCR credentials (username, password, password hash).
- Modified Caddyfile to implement basic authentication for PaddleOCR using the new credentials.
- Enhanced docker-compose.yml to pass PaddleOCR environment variables to the service.
- Updated scripts to generate and manage PaddleOCR password securely.
- Added PaddleOCR documentation link in README.md for user reference.
- Removed Cloudflare Tunnel Token prompts from the secrets generation script.
- Added logic to handle Cloudflare Tunnel Token input in the service selection wizard.
- Updated final report script to simplify security notice related to Cloudflare Tunnel.
- Removed the dependency on the Caddy service in docker-compose.yml for the Cloudflare Tunnel.
- Updated prompts in the secret generation script to clarify that leaving the Cloudflare Tunnel Token empty will skip the input.
- Deleted POSTIZ_USERNAME, POSTIZ_PASSWORD, and POSTIZ_PASSWORD_HASH from .env.example and docker-compose.yml to streamline configuration.
- Removed basic authentication setup from Caddyfile for the Postiz service.
- Updated scripts to eliminate generation of Postiz-related secrets, enhancing security and simplifying setup.
- Updated .env.example to include new environment variables for Postiz, including authentication and social media integration settings.
- Modified Caddyfile to implement basic authentication for the Postiz service.
- Enhanced docker-compose.yml to incorporate Postiz environment variables and ensure proper service configuration.
- Updated scripts to generate Postiz-related secrets and included them in the final report for user reference.
- Updated .env.example to include RAGAPP_HOSTNAME, RAGAPP_USERNAME, and RAGAPP_PASSWORD for basic authentication.
- Modified Caddyfile to implement basic authentication for the RAGApp reverse proxy.
- Enhanced docker-compose.yml to add a new RAGApp service with necessary environment variables.
- Updated scripts to generate RAGApp credentials and include them in the setup wizard and final report.
- Documented RAGApp details in the final report for user visibility.
- Updated .env.example to include COMFYUI_USERNAME and COMFYUI_PASSWORD for basic authentication.
- Modified Caddyfile to implement basic authentication for the ComfyUI reverse proxy.
- Enhanced docker-compose.yml to pass ComfyUI credentials as environment variables.
- Updated scripts to generate ComfyUI password and username, ensuring proper setup.
- Included ComfyUI credentials in the final report for visibility.
- Updated .env.example to eliminate PORTAINER_USERNAME and PORTAINER_PASSWORD.
- Modified Caddyfile to remove basic authentication for Portainer.
- Adjusted docker-compose.yml to exclude Portainer credentials from environment variables.
- Refactored scripts to stop generating Portainer password and username, ensuring a cleaner setup process.
- Updated .env.example to include PORTAINER_HOSTNAME, PORTAINER_USERNAME, PORTAINER_PASSWORD, and PORTAINER_PASSWORD_HASH for configuration.
- Modified Caddyfile to add a reverse proxy for Portainer with basic authentication.
- Enhanced docker-compose.yml to include a new Portainer service and associated volume.
- Updated scripts to generate Portainer credentials and include it in the setup wizard and final report.
- Documented the integration process and reflections in the memory bank for future reference.
- Integrated Dify, an open-source AI application development platform, as an optional service in the n8n-installer project.
- Updated start_services.py to include functions for cloning the Dify repository, preparing the environment, and starting Dify services.
- Configured docker-compose.yml to reference Dify's external Docker Compose file and included necessary environment variables.
- Enhanced Caddyfile with reverse proxy settings for Dify, ensuring proper routing and access.
- Updated .env.example to include Dify-specific configuration variables.
- Revised README.md to document Dify's capabilities and access details.
- Enhanced service selection wizard to allow users to choose Dify during setup.
- Comprehensive testing and validation phase pending to ensure full functionality.
- Introduced QDRANT_API_KEY and QDRANT_HOSTNAME to .env.example for required configuration.
- Updated Caddyfile to include reverse proxy settings for Qdrant service.
- Modified docker-compose.yml to set QDRANT__SERVICE__API_KEY environment variable and adjusted service hostname.
- Enhanced secret generation script to include QDRANT_API_KEY for better integration.
- Changed LOGFLARE_PRIVATE_ACCESS_TOKEN and LOGFLARE_PUBLIC_ACCESS_TOKEN to indicate "not-in-use" status, clarifying their role in the script.
- Enhanced logic to only pre-populate generated values with non-empty entries from existing environment variables, improving the handling of user inputs during secret generation.
- Introduced LOGFLARE_PRIVATE_ACCESS_TOKEN and LOGFLARE_PUBLIC_ACCESS_TOKEN to the secret generation script, allowing for better integration with Supabase.
- Updated logic to preserve empty values from existing environment variables, ensuring comprehensive handling of user inputs during secret generation.
- Removed the RUN_N8N_IMPORT_COMPLETE variable from .env.example and the associated logic in 03_generate_secrets.sh to simplify the import process for n8n workflows.
- Streamlined user prompts for importing workflows, ensuring a more straightforward decision-making process during script execution.
- Updated the logic in 03_generate_secrets.sh to clarify the conditions under which the n8n import decision is made.
- Ensured that the import status is always marked as complete for future runs after user interaction, improving the script's usability and consistency.
- Added conditional checks to ensure prompts for user email and OpenAI API key are only displayed if the respective environment variables are not set, improving user experience and preventing unnecessary input requests.
- Added a null command to the 'then' block of the OpenAI API Key check in 03_generate_secrets.sh to prevent syntax errors and improve script stability.