Commit Graph

179 Commits

Author SHA1 Message Date
Yury Kossakovsky
eb119e67bf fix(update): redirect backup logs to stderr
log_info/log_error were writing to stdout, which corrupted the
backup path returned by backup_preserved_dirs() via command
substitution. this caused restore to fail silently.
2025-12-13 09:37:11 -07:00
Yury Kossakovsky
7711fdbf89 feat(update): preserve user directories during git reset
backup and restore user-customizable directories (like python-runner/)
during update to prevent data loss from git reset --hard

closes #22
2025-12-13 09:21:14 -07:00
Yury Kossakovsky
f84a15e305 chore: make scripts executable 2025-12-12 18:39:02 -07:00
Yury Kossakovsky
bfc1e3671c refactor(welcome): simplify service cards and remove duplicates
- remove min-height from card headers for natural sizing
- remove duplicate postgres credentials from postgresus card
- consolidate python-runner info into single multiline note
- add spacing between credential rows and support for line breaks
2025-12-12 18:14:25 -07:00
Yury Kossakovsky
4c153bca58 refactor(welcome): reorganize service card layout
- move extra info from header to bottom section with credentials
- display links (docs, dashboard, admin, ui) as compact "Link" buttons
- move password toggle button to left of masked value
- add python runner mount/entry info to data generation
- remove redundant postgresus note
- reduce vertical spacing in bottom section
2025-12-12 18:00:46 -07:00
Yury Kossakovsky
f3c2754a85 style(wizard): unify whiptail theme to green-only supabase palette 2025-12-12 16:32:11 -07:00
Yury Kossakovsky
fb31ec292e feat: add n8n-compatible metadata to downloaded workflows 2025-12-12 16:14:02 -07:00
Yury Kossakovsky
d1137190ee feat: add script to download popular n8n workflow templates 2025-12-12 16:03:56 -07:00
Yury Kossakovsky
4f6677bddc refactor(welcome): improve service cards with brand colors and docs links
- add official brand colors for all services
- add documentation urls with clickable icons
- fix responsive layout on mobile devices
- deduplicate quick start steps for postgresus
- show internal urls in card header to avoid duplication
2025-12-12 15:44:09 -07:00
Yury Kossakovsky
5fd292c506 chore(deps): remove unused system packages 2025-12-12 14:03:49 -07:00
Yury Kossakovsky
04e70cee2d refactor(utils): improve whiptail dialogs and logging utilities
- 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
2025-12-12 13:43:20 -07:00
Yury Kossakovsky
c58b759135 refactor: unify logging and remove emoji in configure script 2025-12-12 10:20:56 -07:00
Yury Kossakovsky
0b0bcbdc80 style: add blank line before all log output 2025-12-12 10:14:27 -07:00
Yury Kossakovsky
b62eefa4da refactor: simplify wizard and improve docker compose startup
- remove quick start mode from wizard, always show service selection
- add --wait flag to docker compose up for proper sequencing
- remove hardcoded time.sleep delays in favor of --wait
- clean up unused imports
2025-12-12 10:10:59 -07:00
Yury Kossakovsky
7645c02562 fix: ensure_file_exists returns 0 when file exists 2025-12-12 10:02:54 -07:00
Yury Kossakovsky
e0018f2b2d refactor: consolidate shared utilities and add script documentation
- move common functions to utils.sh: init_paths, read_env_var, write_env_var,
  is_profile_active, load_env, gen_password, gen_hex, gen_base64, generate_bcrypt_hash
- add documentation headers to all installation scripts
- replace duplicate code with shared utility calls
- consolidate bcrypt hash generation loop in 03_generate_secrets.sh
- add DEBIAN_FRONTEND save/restore helpers for whiptail scripts
- standardize path initialization across all scripts
2025-12-12 09:58:12 -07:00
Yury Kossakovsky
323d0cb02c fix: improve welcome page ux and add dynamic quick start
- fix password reveal button not working (add preventDefault)
- update n8n and flowise to show "create account on first login"
- change redis internal info to combined host:port format
- add dynamic quick_start array based on active profiles
- rename "make commands" section to "useful commands"
2025-12-11 17:46:01 -07:00
Yury Kossakovsky
97b9cb1d05 feat: redesign welcome page with supabase-inspired theme
- fix json generation bug in generate_welcome_page.sh (missing commas)
- add supabase-style dark theme with green accents (#3ECF8E)
- add make commands section to welcome page
- move make commands from final report to welcome page
- make next steps conditional based on active profiles
- update poweredby to yury kossakovsky
- format generated json with proper indentation for readability
2025-12-11 17:28:59 -07:00
Yury Kossakovsky
366865ad4c feat: add welcome page dashboard for post-install credentials
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
2025-12-11 17:09:42 -07:00
Yury Kossakovsky
ab4ab149ad feat: add system improvements - doctor diagnostics, update preview, and wizard service groups
- add make doctor command for system diagnostics (dns, ssl, containers, disk, memory)
- add make update-preview for dry-run update checks without applying changes
- add service groups to wizard with quick start pack (n8n + monitoring + postgresus + portainer)
- add make switch-beta and switch-stable commands for branch switching
- update readme with organized commands table
2025-12-11 16:44:39 -07:00
Yury Kossakovsky
5dc994eec6 revert: restore -p localai to preserve user data volumes
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
2025-12-11 11:39:01 -07:00
Yury Kossakovsky
ee236471a5 fix: add explicit container names for n8n workers and runners 2025-12-11 11:39:01 -07:00
Yury Kossakovsky
e608c4705d refactor: remove hardcoded project name from docker compose commands 2025-12-11 11:39:01 -07:00
Yury Kossakovsky
9088a54540 fix: remove container_name to prevent duplicate containers 2025-12-11 11:39:01 -07:00
Yury Kossakovsky
35ca31d1af fix: address n8n v2.0 migration review issues
- 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
2025-12-11 11:39:01 -07:00
Yury Kossakovsky
62089b0b4b docs: document worker-runner sidecar architecture
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.
2025-12-11 11:39:01 -07:00
Yury Kossakovsky
98f2dd807e refactor: integrate worker-runner generation into install/update flow
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.
2025-12-11 11:39:01 -07:00
Yury Kossakovsky
d54eca620c feat: implement worker-runner sidecar pattern for n8n
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
2025-12-11 11:39:01 -07:00
Yury Kossakovsky
638c3d17a6 feat: add n8n v2.0 external task runner support
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
2025-12-11 11:39:01 -07:00
Yury Kossakovsky
ac13c400f5 feat(docling): add vlm pipeline configuration and usage instructions
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.
2025-11-26 17:32:09 -07:00
Yury Kossakovsky
761200adbc Refactor healthcheck command format in docker-compose.yml and standardize PostgreSQL host output in final report script
- 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.
2025-11-12 23:13:00 -07:00
Yury Kossakovsky
ba81e717e2 Refactor Docling final report output for clarity and consistency
- 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.
2025-11-09 14:24:38 -07:00
Yury Kossakovsky
bb3c6b4810 Update confirmation prompts in secret generation and service configuration scripts to default to 'yes'
- 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.
2025-11-09 13:48:00 -07:00
Yury Kossakovsky
5b0d701734 Add Docling service configuration and credentials
- 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.
2025-11-09 13:38:09 -07:00
Yury Kossakovsky
702d50e90b Add CLAUDE.md for project documentation and remove obsolete workflow files
- 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.
2025-11-05 10:22:52 -07:00
Yury Kossakovsky
2ac966908d Update PostgreSQL image syntax and add TODO for volume renaming
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
92db912ee3 Update PostgreSQL image version and enhance wizard dialog sizing
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
75fc090a22 Update LightRAG service description and adjust wizard display size
- Modified the LightRAG service description in the wizard script for clarity.
- Increased the display size in the service selection wizard to accommodate longer descriptions.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
da6ea89432 Integrate Elasticsearch support into RAGFlow configuration
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
fba8f96b81 Add LightRAG service configuration and credentials
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
c8838f0e03 Remove RAGFlow Admin configuration from .env.example, Caddyfile, docker-compose.yml, and final report script
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
e551756a9f Add RAGFlow Admin hostname configuration and update related files
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
430a6e3c9a Add Redis service configuration and update environment variables in docker-compose.yml
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
48414607fd Refactor RAGFlow service configuration in docker-compose.yml and system preparation script
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
bf5575a48f Add RAGFlow service configuration and documentation
- 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.
2025-11-05 10:18:35 -07:00
Yury Kossakovsky
1e2636d3bf Update documentation and scripts for n8n installation
- Renamed references from "n8n-installer" to "n8n-install" across multiple files for consistency.
- Improved formatting in Cloudflare instructions for better readability.
- Updated installation script to handle directory corrections for the new naming convention.
- Adjusted service selection script comments to reflect the updated project name.
2025-11-05 10:17:32 -07:00
Yury Kossakovsky
d0ac21a20b Update WAHA service configuration in docker-compose.yml and README.md
- 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.
2025-10-15 19:22:50 -06:00
Yury Kossakovsky
5429ba4324 Add WAHA configuration updates to .env.example and docker-compose.yml
- 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.
2025-10-15 13:06:06 -06:00
Yury Kossakovsky
fd96208619 Refactor WAHA API key generation in 03_generate_secrets.sh to ensure it occurs after .env write/substitutions. This change prevents overwriting existing values and maintains the integrity of generated secrets. 2025-10-15 12:51:12 -06:00
Yury Kossakovsky
5037bc6d16 Add WAHA (WhatsApp HTTP API) configuration to project
- 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.
2025-10-15 11:45:04 -06:00