Commit Graph

526 Commits

Author SHA1 Message Date
Yury Kossakovsky
e602cfd1dd docs: expand claude.md with installation flow and key scripts 2025-12-25 18:22:05 -07:00
Yury Kossakovsky
8b08442815 refactor: extract telemetry and database modules
- create scripts/telemetry.sh with all telemetry functions
- rename init_databases.sh to databases.sh and convert to library
- remove code duplication in init_all_databases()
- update all scripts to source new modules
- update documentation references
2025-12-25 18:22:05 -07:00
Yury Kossakovsky
a1521f8a48 feat: add error telemetry with stage tracking
sends minimal data to scarf on install/update failures:
event type, stage, exit_code. uses err trap in orchestrator
scripts. respects existing opt-out settings.
2025-12-25 18:22:05 -07:00
Yury Kossakovsky
a86cf8893c fix(nocodb): add database init and final report entry
missing from initial nocodb implementation
2025-12-25 18:22:05 -07:00
Yury Kossakovsky
e9291dc825 fix(nocodb): correct healthcheck endpoint and add redis caching
- Fix healthcheck endpoint: /api/v2/health → /api/v1/health (per PR #2460)
- Add NC_REDIS_URL for production caching (per official docs)
- Add redis dependency with service_healthy condition
- Revert unrelated changes to Postiz, WAHA, LightRAG database configs
2025-12-25 18:22:01 -07:00
Yury Kossakovsky
108daca1fe feat: add nocodb as optional service
add nocodb (open source airtable alternative) with:
- docker service definition with postgresql backend
- caddy reverse proxy configuration
- jwt secret auto-generation
- wizard integration for service selection
- welcome page dashboard entry
- readme and changelog updates
2025-12-25 16:50:28 -07:00
Yury Kossakovsky
2f6516880b fix: preserve installation id during updates
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
2025-12-25 16:49:43 -07:00
Yury Kossakovsky
ffca8693f7 feat: add anonymous telemetry via scarf
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.
2025-12-25 16:32:32 -07:00
Yury Kossakovsky
30e4c9407b fix: initialize databases before starting dependent services
- start postgresql first, then run init_databases.sh, then other services
- add depends_on postgres for lightrag service
- remove unused nocodb from databases list
- document database initialization in add-new-service workflow
2025-12-25 13:15:07 -07:00
Yury Kossakovsky
f32c92287e feat: add isolated postgresql databases for services
add init_databases.sh script that creates dedicated databases for
langfuse, lightrag, nocodb, postiz, and waha during install/update.
update connection strings to use service-specific databases instead
of sharing the default postgres database.
2025-12-25 11:25:31 -07:00
Yury Kossakovsky
d7af7b6900 feat: add nodes_exclude to enable execute command node in n8n 2.0+ 2025-12-24 11:23:03 -07:00
Yury Kossakovsky
d6cd2d44df fix: configure git pull.rebase to prevent divergent branch errors 2025-12-22 09:22:42 -07:00
Yury Kossakovsky
8650c70992 fix: use static ffmpeg binary for n8n 2.1.0+ compatibility 2025-12-22 09:14:19 -07:00
Yury Kossakovsky
bb29eefae1 docs: update readme title to emphasize ease of self-hosting 2025-12-21 18:43:41 -07:00
Yury Kossakovsky
850bf05208 style: alphabetize environment variables in docker-compose.yml
organizes caddy, waha, and ragflow service env vars for consistency
2025-12-21 18:34:34 -07:00
Yury Kossakovsky
530efac120 chore: extend gost no_proxy list to support 10 n8n workers
adds n8n-worker-5 through n8n-worker-10 and n8n-runner-5 through n8n-runner-10
2025-12-21 18:33:21 -07:00
Yury Kossakovsky
f1285f864e chore: remove flowise built-in auth credentials
flowise no longer uses FLOWISE_USERNAME/PASSWORD for authentication
2025-12-21 18:32:51 -07:00
Yury Kossakovsky
42f78de284 docs: update github issue templates for n8n-install 2025-12-21 18:01:31 -07:00
Yury Kossakovsky
1b264e0c5c docs: expand claude.md with welcome page, validation, and full utility reference 2025-12-21 16:17:16 -07:00
Yury Kossakovsky
47a8dd14a6 docs: expand claude.md with utility functions and proxy patterns 2025-12-21 16:13:34 -07:00
Yury Kossakovsky
198c972987 feat: add claude code command for adding new services
replace cursor rule with claude code /add-new-service command
that provides comprehensive step-by-step instructions for adding
optional services to the project. optimized for llm execution
with clear structure, code examples, and validation checklist.
2025-12-21 16:09:46 -07:00
Yury Kossakovsky
5d9d592267 docs: expand add-new-service guide with comprehensive patterns
add multi-service profiles, gpu variants, and yaml anchors
document caddyfile patterns for conditional auth and special protocols
expand secret generation docs with SERVICES_NEEDING_HASH importance
add configure_services.sh, quick start, and final report sections
include changelog and update scripts documentation
enhance checklist with logging, multi-container, and first-run items
2025-12-21 16:01:03 -07:00
Yury Kossakovsky
f4319321a3 docs: expand service addition guide with proxy and welcome page details 2025-12-21 15:52:32 -07:00
Yury Kossakovsky
5def4cf4db fix(gost): simplify healthcheck to tcp port check 2025-12-21 15:52:28 -07:00
Yury Kossakovsky
25680c2b2a docs: add changelog with project history since fork 2025-12-21 15:52:23 -07:00
Yury Kossakovsky
6a6fa752ed fix(welcome): prevent long passwords and urls from overflowing cards
add break-all and min-w-0 classes to credential values and internal urls
to properly wrap text within card boundaries when revealed
2025-12-21 15:35:52 -07:00
Yury Kossakovsky
e532bc581a fix(gost): use busybox-compatible wget syntax in healthcheck 2025-12-21 15:17:50 -07:00
Yury Kossakovsky
99c745b9d0 fix(gost): use http instead of https in healthcheck 2025-12-21 15:12:54 -07:00
Yury Kossakovsky
903e50b514 fix(gost): add proxy env to n8n runners
runners execute code nodes with fetch(), need proxy vars for
outbound requests through gost
2025-12-21 15:05:42 -07:00
Yury Kossakovsky
3bfe860a5a fix(gost): use fixed username and proper healthcheck
- 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
2025-12-21 14:55:03 -07:00
Yury Kossakovsky
fd730836dc fix(healthcheck): bypass proxy for localhost healthchecks
busybox wget in alpine doesn't respect NO_PROXY, causing healthchecks
to route localhost requests through gost proxy which returns 403
2025-12-21 14:43:20 -07:00
Yury Kossakovsky
4d2ef26bc8 fix(gost): generate proxy url in wizard after upstream input
wizard runs after generate_secrets, so GOST_PROXY_URL was not
being created when user selected gost during update.
2025-12-20 17:12:19 -07:00
Yury Kossakovsky
26485b32c0 feat(gost): require upstream proxy for geo-bypass
gost now always requires an external upstream proxy to function.
wizard prompts for upstream proxy url when gost is selected.
if no upstream provided, gost is removed from selection.
2025-12-20 15:21:27 -07:00
Yury Kossakovsky
ed046b3c68 feat: add gost proxy service for outbound ai traffic routing
- 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
2025-12-20 15:04:12 -07:00
Yury Kossakovsky
531d34a328 fix: run permission fix after every update
Some hosting providers (CLOUD.RU, etc.) reset file permissions during
updates, leaving .env and generated files owned by root. This prevents
normal users from reading configuration.

Now 08_fix_permissions.sh runs after each update to restore proper
ownership and permissions.
2025-12-17 11:18:07 -07:00
Yury Kossakovsky
86d0783ec5 refactor(welcome): standardize service link presentation
- remove urlSuffix feature, external links now always point to root hostname
- add service name prefix to extra links (e.g., "Qdrant Dashboard" instead of "Dashboard")
- keeps internal/external/dashboard links clearly separated
2025-12-17 10:52:23 -07:00
Yury Kossakovsky
fbfa2563c2 fix: enable universe repository for fail2ban and python3-dotenv
on minimal ubuntu installations (especially cloud vps), the universe
repository may be disabled by default, causing apt to fail installing
packages like fail2ban and python3-dotenv which are only available in
universe. this adds software-properties-common and enables universe
before installing packages.
2025-12-17 10:35:06 -07:00
Yury Kossakovsky
bd52d9f72b docs: update cloudflare tunnel instructions with current ui paths
- update navigation paths to match nov 2025 cloudflare dashboard changes
- add 9 missing services (lightrag, docling, libretranslate, etc.)
- fix authentication status labels (prometheus, comfyui have caddy auth)
- correct ip list naming to lowercase per cloudflare requirements
- condense waf rules section for better readability
- mark dify/supabase as external services
2025-12-17 10:24:06 -07:00
Yury Kossakovsky
ec46f4badc revert: replace --wait flag with sleep delays for service startup
supabase-realtime healthcheck lacks start_period, causing
docker compose --wait to fail before container becomes healthy
2025-12-16 16:58:41 -07:00
Yury Kossakovsky
ea30650109 feat(welcome): add urlSuffix support for service links 2025-12-16 16:38:07 -07:00
Yury Kossakovsky
7a429ede7a refactor: remove redundant log message from update script 2025-12-16 16:38:03 -07:00
Yury Kossakovsky
09c439fa6d style: update report header to include update scenario 2025-12-16 16:37:59 -07:00
Yury Kossakovsky
f3c178858c fix: increase docker compose wait timeout to 180s 2025-12-16 16:37:55 -07:00
Yury Kossakovsky
20106f21f8 feat: fix file ownership after sudo installation
add step 8 to installation that restores file ownership to the invoking
user when running with sudo. also adds cleanup for legacy n8n worker
containers during updates.

- add 08_fix_permissions.sh script to detect real user and fix ownership
- add get_real_user() utility with multiple fallback detection methods
- add cleanup_legacy_n8n_workers() to remove old container naming format
- set restrictive permissions (600) on .env file for security
2025-12-16 16:07:08 -07:00
Yury Kossakovsky
f9ea7783a0 docs: add community port for arch-based linux 2025-12-15 13:57:56 -07:00
Yury Kossakovsky
3134eee354 refactor: remove N8N_VERSION env variable, hardcode stable 2025-12-15 10:06:13 -07:00
Yury Kossakovsky
b4dbead6f3 chore: change default n8n version from beta to stable 2025-12-15 10:03:02 -07:00
Yury Kossakovsky
e4613e652c style(welcome): increase skeleton loaders count for services and quickstart 2025-12-14 15:48:07 -07:00
Yury Kossakovsky
1ac993a44c refactor: remove --remove-orphans flag from docker compose commands 2025-12-14 14:32:01 -07:00
Yury Kossakovsky
fd953c3e56 fix(supabase): include external compose files in start_local_ai()
The --remove-orphans flag was killing Supabase and Dify containers
because their compose files were not included when starting local AI
services. Now we include them conditionally if they are enabled.
2025-12-14 14:19:50 -07:00