- nginx: add exact-match location for /uploads (no trailing slash)
to handle S3 presigned POST URLs from Plane's storage backend
- ct: fix curl -s to curl -fsSL for consistency with other scripts
- 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