Commit Graph

212 Commits

Author SHA1 Message Date
Yury Kossakovsky
37b696ac14 refactor(telemetry): send separate request per service for scarf analytics 2025-12-28 11:28:47 -07:00
Yury Kossakovsky
975df4afb4 fix(cleanup): preserve volumes in make clean, add make clean-all 2025-12-28 11:26:02 -07:00
Yury Kossakovsky
944844871a refactor: rename postgresus to databasus
rebrand backup service following upstream project rename.
updates docker image to databasus/databasus:latest,
adds healthcheck, and includes cleanup function for
migration from old container name.
2025-12-28 11:00:07 -07:00
Yury Kossakovsky
8b16b37265 revert: re-enable nocodb in wizard selection 2025-12-26 09:45:33 -07:00
Yury Kossakovsky
ad24e3f4a3 chore(wizard): temporarily disable nocodb selection 2025-12-26 09:42:56 -07:00
Yury Kossakovsky
0e1d0f475b feat(welcome): display nocodb user token on welcome page 2025-12-26 09:38:27 -07:00
Yury Kossakovsky
9b252a1287 refactor(update): replace git pull with fetch + reset for reliable sync
extract git utilities into scripts/git.sh module. this approach handles
accidental local commits that would cause rebase conflicts during updates.
2025-12-26 09:29:53 -07:00
Yury Kossakovsky
0709e3b6d3 feat(wizard): add nocodb to service selection 2025-12-25 20:55:43 -07:00
Yury Kossakovsky
6fbcc8768a fix: add database name variables for backward compatibility
existing installations use 'postgres' database to preserve data
new installations use service-specific databases (postiz, waha, lightrag)
2025-12-25 19:22:44 -07:00
Yury Kossakovsky
bd29d6d5dc chore: remove nocodb from service selection wizard 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
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
d6cd2d44df fix: configure git pull.rebase to prevent divergent branch errors 2025-12-22 09:22:42 -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
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
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
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
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
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
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
78e2306a5a feat(supabase): add PG_META_CRYPTO_KEY secret generation 2025-12-14 13:25:04 -07:00
Yury Kossakovsky
e14288611e style(wizard): switch whiptail theme to solarized dark 2025-12-13 09:43:29 -07:00
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