- Replace custom git clone + version tracking with fetch_and_deploy_gh_release tarball mode
- Replace manual version comparison with check_for_gh_release in update script
- Remove git from dependencies (no longer needed for tarball download)
- Version file ~/.clickstack now managed by tools.func
- Switch tag format from hyperdx@* to @hyperdx/app@* (v2.x releases)
- Remove @types/hyperdx__lucene workaround (fixed in v2.x)
- Fix API build path: dist/index.js -> build/index.js
- Use next start instead of standalone server for app
- Add IS_LOCAL_APP_MODE for auth-free local deployment
- Add DEFAULT_SOURCES/DEFAULT_CONNECTIONS for auto-provisioning
- Update script: fresh clone approach for major version changes
- Add corepack setup to update script for yarn version changes
Yarn Berry caches resolution descriptors in yarn.lock in a multi-line
block format that sed line-deletion cannot properly handle. The
@types/hyperdx__lucene -> npm:@types/lucene alias persists across all
partial cleanup attempts. Deleting yarn.lock forces a fresh resolution
from package.json only, which is safe for a build-from-source install.
- Use sed to remove all lines referencing the alias from yarn.lock
(both block headers and inline workspace dependency refs)
- Also strip @types/lucene resolution target (package doesn't exist)
- Remove .yarn/install-state.gz to clear Yarn Berry cached state
- Keep node -e for package.json cleanup (devDeps + resolutions)
Removing from packages/app/package.json devDependencies alone is not
enough — Yarn Berry still resolves the alias from yarn.lock entries.
sed removes all yarn.lock lines referencing the broken package.
- Event store migrations use PostgreSQL-specific SQL (SERIAL, UUID) that
fails on SQLite — replaced with doctrine:schema:update --force
- Run messenger:setup-transports BEFORE event_store schema to avoid
messenger_messages table conflict
- Read model migrations (--em=read_model) include role seeding (ROLE_USER,
ROLE_ADMIN) which doctrine:schema:create skips
- Fix default_credentials in json to match script (admin@slink.local)
- apt auto-starts caddy with default config (port 80); systemctl enable --now
is a no-op if already running, so new Caddyfile (:8080) was never loaded
- client falls back to http://localhost:8080 without explicit API_URL; add
API_URL=http://127.0.0.1:8080 to /etc/default/slink-client
v1.10.1 packages/app/package.json contains '@types/hyperdx__lucene': 'npm:@types/lucene'
but @types/lucene does not exist on npm (404), causing yarn install --immutable to fail.
Remove the devDependency via node patch before install and drop --immutable flag.
isCustomDomain() in middleware.ts treats any non-localhost/papermark.*/vercel
host as a custom domain in production, causing DomainMiddleware to redirect
/ to https://www.papermark.com when no Redis entry exists.
Fix: patch middleware.ts before build to exclude IP addresses from custom
domain detection.
- HANKO_API_KEY and NEXT_PUBLIC_HANKO_TENANT_ID are required at build time
(module throws hard error if unset during page data collection)
- QSTASH_TOKEN, NEXT_PRIVATE_DOCUMENT_PASSWORD_KEY, NEXT_PRIVATE_VERIFICATION_SECRET
added as placeholders/random values
- NODE_OPTIONS=--max-old-space-size=3584 for npm run build (Next.js OOM fix)
- RAM raised from 2048 to 4096 (Next.js build requires ~3.5GB heap)
- matomo: move creds to /root/matomo.creds (out of webroot), keep tests/ dir,
block dotfiles in Caddy (@blocked /.* pattern)
- papermark: add NEXT_PUBLIC_APP_BASE_HOST and NEXT_PUBLIC_WEBHOOK_BASE_HOST
placeholder env vars to prevent undefined 'value' in has:host routes
causing Next.js build failure
- slink: replace doctrine:database:create with touch for SQLite (getCreateDatabaseSQL
not supported by SQLitePlatform)
Stop removing /opt/matomo/node_modules in Matomo install/upgrade scripts (leave tests removal intact). For SolidTime, set SESSION_SECURE_COOKIE=false and APP_FORCE_HTTPS=false in the generated .env (and append them if missing) to ease non-HTTPS/local installs. Also add a warning message in the SolidTime UI JSON instructing admins to verify new accounts via: php /opt/solidtime/artisan admin:user:verify YOUR@EMAIL.
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.