235 Commits

Author SHA1 Message Date
Yury Kossakovsky
277466f144 fix(postiz): generate .env file to prevent dotenv-cli crash (#40)
the postiz backend image uses dotenv-cli to load /app/.env, which
doesn't exist when config is only passed via docker environment vars.
generate postiz.env from root .env and mount it read-only. also handle
edge case where docker creates the file as a directory on bind mount
failure, and quote values to prevent dotenv-cli misparses.
2026-02-27 20:44:18 -07:00
Yury Kossakovsky
6a1301bfc0 fix(docker): respect docker-compose.override.yml for user customizations (#44)
all compose file assembly points now include the override file last
when present, giving it highest precedence over other compose files
2026-02-27 19:05:50 -07:00
Yury Kossakovsky
19325191c3 fix(installer): skip n8n prompts when n8n profile is not active
load COMPOSE_PROFILES early in 05_configure_services.sh so
is_profile_active guards n8n workflow import and worker config
sections, avoiding confusing prompts for users who don't use n8n
2026-02-27 18:56:39 -07:00
Yury Kossakovsky
107f18296a feat: add appsmith low-code platform for internal tools
adds appsmith as an optional service with caddy reverse proxy,
auto-generated encryption secrets, wizard selection, welcome page
integration, update preview support, and final report output.
bumps version to 1.3.0.
2026-02-27 18:39:45 -07:00
Yury Kossakovsky
543593de36 docs(gost): clarify http proxy protocol in wizard and env example
users may mistakenly use https:// for http proxies, which causes
gost to fail connecting to upstream. the protocol refers to proxy
type, not connection security.
2026-01-30 10:55:31 -07:00
Yury Kossakovsky
ad9c7aa57d fix(caddy): set readable permissions on custom tls certificates
docker volume mounts preserve host permissions, and caddy container
may run as different uid than host user, causing certificate read
failures with restrictive (600) permissions.
2026-01-26 17:50:35 -07:00
Yury Kossakovsky
adc5b94f1c fix(caddy): resolve duplicate hostname error with custom tls certificates
change architecture from generating separate site blocks to using
a shared tls snippet that all services import
2026-01-24 20:23:25 -07:00
Yury Kossakovsky
a99676e3d5 fix(postiz): improve temporal integration
- increase elasticsearch memory to 512mb
- add temporal databases to initialization
- add postiz to final report
2026-01-17 19:56:29 -07:00
Yury Kossakovsky
4a6f1c0e01 feat(postiz): add temporal server for workflow orchestration
add temporal and temporal-ui services to the postiz profile for
workflow orchestration. includes caddy reverse proxy with basic
auth, secret generation, and welcome page integration.
2026-01-16 18:42:54 -07:00
Yury Kossakovsky
b28093b5cd feat(welcome): add changelog section to dashboard 2026-01-12 10:03:46 -07:00
Yury Kossakovsky
0e4b46ec31 feat(tls): add custom tls certificate support for corporate deployments
adds caddy-addon mechanism for custom certificates when let's encrypt
is not available. includes setup script with interactive wizard,
example configs, and documentation.
2026-01-09 23:26:41 -07:00
Yury Kossakovsky
e8f7934224 feat(git): add make git-pull command for fork workflows
adds support for forks that maintain custom changes and need to merge
from upstream instead of resetting. the new GIT_MODE=merge option in
update.sh calls git_merge_from_upstream() which fetches and merges
upstream/main while preserving local commits.
2026-01-09 20:28:22 -07:00
Yury Kossakovsky
44d36b8be8 fix(import): correct counter bug and improve script reliability
- fix credentials counter bug caused by posix sh subshell behavior
- add trap for temp file cleanup on exit
- make import_workflows.sh executable
- add explanatory comments in restart.sh for down/up logic
- extract sleep value to EXTERNAL_SERVICE_INIT_DELAY constant
2026-01-02 16:25:46 -07:00
Yury Kossakovsky
6a67456db4 fix(restart): start supabase and dify separately to fix volume paths
docker compose resolves relative paths from the first compose file's
directory. when multiple compose files are combined, supabase's
./volumes/logs/vector.yml path resolves from project root instead of
supabase/docker/, causing vector container to fail with "is a directory"
error. this matches the behavior of start_services.py.
2026-01-02 16:10:55 -07:00
Yury Kossakovsky
3f93b8a367 feat(n8n): add limit parameter to make import command 2026-01-02 16:08:50 -07:00
Yury Kossakovsky
5a279b4a0a feat(n8n): add import_limit option to workflow import script 2026-01-02 15:55:29 -07:00
Yury Kossakovsky
45ba3642a8 feat(n8n): add make import command for workflow imports 2026-01-02 15:48:55 -07:00
Yury Kossakovsky
d1da940ffe fix(env): use single quotes for values containing $ to prevent expansion 2025-12-30 17:26:28 -07:00
Yury Kossakovsky
492e9ea194 style(env): use double quotes consistently in env file output 2025-12-30 17:19:05 -07:00
Yury Kossakovsky
192d457c87 fix(gost): add nocodb to no_proxy bypass list
n8n couldn't connect to nocodb via internal hostname when gost proxy
is enabled. also ensures gost_no_proxy is updated from template on
system updates.
2025-12-30 16:21:26 -07:00
Yury Kossakovsky
58799d9ae1 refactor(compose): centralize external compose file handling
add build_compose_files_array() and getter functions for n8n-workers,
supabase, dify compose files in utils.sh. simplifies restart.sh and
apply_update.sh by using shared function. now checks both profile
activation AND file existence before including external compose files.
2025-12-29 13:06:03 -07:00
Yury Kossakovsky
c5d5925986 fix(restart): include n8n workers compose file in make restart 2025-12-28 15:17:42 -07:00
Yury Kossakovsky
e1abdfecd8 fix(databasus): add logging limits and final report entry
completes databasus rebrand by adding missing pieces:
- log rotation (1mb max) to prevent disk bloat
- post-install instructions for account setup
2025-12-28 11:34:38 -07:00
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