Add informative status messages and improve image customization flow: install base packages and Docker during virt-customize, enable Docker service, and configure /etc/docker/daemon.json (sets DOCKER_PREINSTALLED on success). Add finalization messages while setting hostname and SSH config. For images without cloud-init, add systemd drop-ins to enable root autologin on serial-getty@ttyS0 and getty@tty1. Also add a trailing newline to nginx-ui.json.
Collapse duplicated qm set invocation into a single call when attaching the EFI and root disk, removing the duplicate conditional block. Also stop redirecting setup_cloud_init output (remove >/dev/null 2>&1) so Cloud-Init setup logs and errors are visible for debugging. Note: the previous conditional added a --scsi1 "${STORAGE}:cloudinit" only when USE_CLOUD_INIT=yes; that explicit scsi1 assignment is no longer present in this unified call.
Remove Portainer option and related install/helper functions. Add caching of downloaded OS images to /var/lib/vz/template/cache and use a temporary work qcow2 for customization. Try to preinstall qemu-guest-agent and Docker with virt-customize (marking DOCKER_PREINSTALLED on success) and provide a fallback first-boot install-docker.service script when customization fails. Replace import flow to detect qm disk import vs qm importdisk, import the prepared image into storage, resize the disk, attach EFI/root disks, and simplify VM creation steps. Include various UX/cleanup tweaks (spinner handling, storage import flags, status messages and Cloud-Init/SSH handling).
Pass VITE_APP_API_BASE_URL, UPTIME_APP_API_BASE_URL and VITE_APP_LOG_LEVEL into the Checkmate client build so the frontend targets /api/v1 and uses a warn log level (applied in both update and install scripts). Rename PORT to SERVER_HOST/SERVER_PORT in the installer and set SERVER_HOST=0.0.0.0 so the server binds correctly. Use quiet systemctl enable (-q --now) for checkmate services and reload nginx instead of re-enabling it. Move vaultwarden-install.sh into install/deferred/.
Add support for deploying Discourse as a container: adds ct/discourse.sh (container build/install/update flow and resource defaults), frontend/public/json/discourse.json (app metadata, install resources, and notes), and install/discourse-install.sh (full installer that installs dependencies, Postgres/Node/Ruby, clones the Discourse repo, generates secrets and DB password saved to /opt/discourse/.env, installs gems and yarn, precompiles assets, runs migrations, creates an admin user, sets up a systemd service and nginx reverse proxy, and enables required services). Admin user 'admin' is created with a generated password stored in the .env file.