Replace occurrences of the ${APP} placeholder with the explicit string "linkding" in the install/linkding-install.sh messaging to ensure consistent, clear output during installation. Also a trivial change to frontend/public/json/linkding.json (removed trailing newline) with no functional impact.
Add Linkding integration: new CT template (ct/linkding.sh) and installer (install/linkding-install.sh) to deploy Linkding as a container. Installer fetches the GitHub release, builds the frontend, compiles the SQLite ICU extension, creates .env with generated admin password, and installs systemd services (linkding, linkding-tasks). Also add frontend metadata (frontend/public/json/linkding.json) for the app catalog. Minor tweak: remove unused import_local_ip from install/wger-install.sh.
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.
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.
Updated the Vaultwarden install script to extract the web vault files into /opt/vaultwarden/web-vault instead of the root Vaultwarden directory. Also added creation of the web-vault directory. Reformatted checkmate.json for consistent indentation; no functional changes.