- Deploy binary to /opt/surrealdb with symlink to /usr/local/bin
- Use literal 'SurrealDB' in messages instead of ${APP}
- Fix installation check path to /opt/surrealdb/surreal
- Update ExecStart to use /opt/surrealdb/surreal
- Use selfhst CDN logo URL and capitalize 'Debian' in JSON
- Capitalize 'Completed Successfully' to match conventions
- Fix uv pip install by setting VIRTUAL_ENV instead of --python flag
- Remove redundant get_lxc_ip (already called by framework bootstrap)
- Merge "Saving Credentials" block into "Creating Services" section
- Use loop for writing frontend env to each Vite app
- Add GitHub URL to source line (ct/plane.sh)
- Replace ${APP} with direct 'Plane' string in msg_* calls
- Use fetch_and_deploy_from_url for MinIO server download
- Add explicit 'tarball' mode to fetch_and_deploy_gh_release
- Use setup_uv + uv venv + uv pip instead of python3 venv
- Combine systemctl enable commands into single line
- Use ${PG_DB_USER} var in credentials output
- Merge MinIO bucket creation into service creation block
- Use fetch_and_deploy_gh_release instead of manual curl/tar/mv
- Use apt instead of apt-get per project convention
- Remove preinstalled deps (curl, sudo, jq)
- Collapse erlang deps with brace expansion
- Generate random RabbitMQ password instead of hardcoded
- Rename MinIO client to mcli to avoid Midnight Commander conflict
- Use nginx sites-available/sites-enabled convention
- Add Requires=plane-api.service to worker and beat units
- Add RabbitMQ credentials to ~/plane.creds
- Add VITE rebuild warning note to JSON
- Add plane-space systemd service for SSR (react-router-serve on port 3002)
- Fix nginx /spaces/ to proxy to plane-space instead of static files
- Fix nginx /static/ alias to correct Django collectstatic path
- Fix plane-live EnvironmentFile to /opt/plane/.env
- Fix plane-live ExecStart to use start.mjs
- Update script: backup/restore all .env files, include plane-space
- Update script: add configure_instance after migrations
- Split JSON notes for god-mode and credentials
Replace the old curl-based installer and interactive update menu with unified GitHub release deployment helpers. ct/surrealdb.sh now checks for a new surrealdb release via check_for_gh_release, stops the service, uses fetch_and_deploy_gh_release to deploy the prebuilt binary to /usr/local/bin, sets exec permissions, and restarts the service (also use ${APP} in an error message). The previous menu-driven update and storage-switch options (memory vs rocksdb) were removed. install/surrealdb-install.sh now skips the removed mc dependency install, uses fetch_and_deploy_gh_release instead of the install.surrealdb.com script, makes the binary executable, and no longer writes a release-version file. Overall moves to a consistent release fetch/deploy flow and simplifies update/install logic.
Sources core.func, tools.func, error_handler.func, and api.func
instead of inline color vars and msg functions. Adds structured
sections (CONFIGURATION, OS DETECTION, UNINSTALL, INSTALL, MAIN)
matching the qbittorrent-exporter/pihole-exporter pattern.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Addon script that installs Homebrew into an existing LXC container.
Dynamically detects the first non-root user, sets up multi-user access
via linuxbrew group with setgid directories, and configures shell
integration for both login and non-login shells.
Tested on Debian 13 (trixie) — brew doctor reports "ready to brew".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This script installs Tailscale in an existing LXC container on Proxmox VE, handling both Alpine and Debian/Ubuntu distributions, and updates the container configuration accordingly.