Increase SolidTime defaults in ct/solidtime.sh (CPU from 2 to 4, RAM from 2048 to 4096) to provide more capacity by default. In install/matomo-install.sh, invoke setup_mariadb before creating the Matomo DB to ensure the MariaDB service is installed/configured prior to running MARIADB_DB_NAME/MARIADB_DB_USER setup.
Delete container templates and installer scripts for BentoPDF and YOURLS. Removed ct/bentopdf.sh, ct/yourls.sh, install/bentopdf-install.sh, and install/yourls-install.sh which contained container build/install logic (nginx, Node/PNPM steps for BentoPDF and PHP/MariaDB/nginx setup for YOURLS). This cleans up deprecated or duplicated setup scripts.
Introduce an optional ClickStack observability install (HyperDX UI + OTel Collector + MongoDB). Adds a Whiptail prompt to enable ClickStack and adjusts default resource suggestions when selected. Updates ct/clickhouse.sh to include observability tag, author, update logic to auto-update HyperDX and the OTel Collector, and prints appropriate access URLs. Extends install/clickhouse-install.sh to install dependencies, initialize ClickHouse schemas for logs/traces/sessions, deploy the OTel Collector with a ClickHouse exporter, clone/build HyperDX, create systemd services (clickstack-otel, clickstack-api, clickstack-app), and enable them. Updates json/clickhouse.json to include an informational note about the optional ClickStack requirements and usage.
Introduce ClickHouse support by adding a container template (ct/clickhouse.sh), an installer script (install/clickhouse-install.sh) and app metadata (json/clickhouse.json). The installer configures ClickHouse to listen on 0.0.0.0, restarts the service, and performs OS update, networking checks, MOTD/customization and cleanup. Metadata declares default resources (2 CPU, 4GB RAM, 10GB disk), interface port 8123, documentation/website links, and a warning about the default user having no password.
node-sass requires node-gyp which needs python3, and has no
prebuilt binaries for Node 22. Downgrade to Node 20 and add
python3 dependency to fix npm install failure.
Migrated all 80 app JSON files to place config_path inside each
install_methods object instead of at the root level. This allows
different install methods (e.g. Debian vs Alpine) to have distinct
config paths.
Also updated AGENTS.md JSON structure example to reflect the change.
Update PocketBase bot and import workflow to use direct `notes` and `install_methods` fields instead of the older `notes_json`/`install_methods_json` relations. Adjust parsing, PATCH/POST payloads and error messages accordingly, remove project_url handling, and drop the separate resolution/creation of related note/install_method records in the import script. Also update docs to reflect the new field names and clean up some formatting and allowed-field lists.
Replace Node.js usage with bun across install and control scripts: run /opt/blinko/dist/seed.js with bun during install and update, and start the service with bun using --env-file. Also remove the hardcoded PORT from the generated .env. These changes unify the runtime, ensure migrations and seeding use bun, and load environment variables directly when starting the service.
Switch development builds to production and harden install/update steps across several apps.
- Akaunting: use `npm run production` instead of `npm run dev` in both install and update scripts to produce production assets.
- Blinko: make bun installs run with `--unsafe-perm`, run `bun run build:web` and `bun run build:seed`, copy built public assets into `/opt/blinko/server/public`, run prisma migrations, and execute the generated seed script. Add PORT and NEXT_PUBLIC_BASE_URL to the .env. Update the systemd service to use WorkingDirectory `/opt/blinko/server` and start the app with `node /opt/blinko/dist/index.js`.
- InvoiceShelf & SolidTime: stop capturing APP_KEY via `php artisan key:generate --show` + sed; instead run `php artisan key:generate` during install after composer install. SolidTime also runs `php artisan storage:link` after build. These changes simplify key generation and ensure proper storage linking.
Overall these updates ensure production-ready builds, proper artifact placement, and correct runtime configuration for services.
Replace the generic ${APP} placeholder with explicit, consistently capitalized application names in install scripts to produce clearer log output. Affected scripts: install/{akaunting,blinko,dagu,gogs,invoiceshelf,matomo,papermark,rss-bridge,solidtime}-install.sh. Changes update msg_info and msg_ok messages only.
Install Bun during setup and replace npm/npx calls with bun/bunx. Added Bun install (sets BUN_INSTALL, runs bun install script, and symlinks bun and bunx to /usr/local/bin) in install/blinko-install.sh. Updated ct/blinko.sh and install/blinko-install.sh to use `bun install`, `bunx prisma ...`, and `bun run build` instead of npm/npx commands for dependency install, Prisma generate/migrate, and build steps.
Add new ProxmoxVED container templates (ct/*.sh), install scripts (install/*.sh) and metadata (json/*.json) for multiple applications: Akaunting, Blinko, Certimate, Dagu, Gogs, InvoiceShelf, Matomo, Papermark, RSS-Bridge, SolidTime and WhoDB. Each ct script includes update logic and deployment helpers; install scripts handle dependency installation, service creation (systemd), DB setup, and Caddy/PHP/Node/Postgres configuration where applicable. JSON entries provide UI metadata, resource defaults and access ports for each app.
Refactor ente-install.sh to make first-time setup more robust: update ente-get-verification to use a new log pattern and broader fallback, add run_psql and run_psql_exec helpers for consistent sudo-psql usage, implement a retry loop when polling for the verification code, and improve prompts/error messages. Switch admin whitelisting to use the numeric user_id (and verify existence) instead of email in museum.yaml. Simplify and harden subscription upgrade logic to use the new DB helpers and ensure inserts/updates run under the postgres user. Miscellaneous messaging and minor formatting tweaks.