Updating Kuayle

The repository update script fetches the current branch, rebuilds the application images, recreates Caddy and the app services, then applies pending migrations. Back up and review changes before running it.

Manual update via script

Run the script from a clean repository checkout. It uses `git pull --ff-only`, serves a maintenance page, rebuilds the backend and frontend, recreates the application containers and runs migrations.

  • cd kuayle
  • bash selfhosting/update.sh
  • The script: pulls latest code → rebuilds images → recreates containers → runs migrations

One-click update from the UI

Authorized sysadmins can invoke the same script from Settings → Version after the updater sidecar and token are configured. This grants the sidecar access to the Docker socket and repository checkout.

  • Add your user ID to SYSADMINS in selfhosting/.env
  • Set SYSTEM_UPDATER_TOKEN to a strong random string
  • Start the updater sidecar with the updater profile
  • Use the Update button in Settings → Version

What happens during an update

The script leaves the PostgreSQL and Redis services running while it recreates Caddy, the backend and the frontend. Application requests receive a maintenance page during the refresh.

  • Maintenance page served during update
  • Backend and frontend images rebuilt
  • Pending migrations applied after container recreation
  • PostgreSQL and Redis are not recreated by the script

Review Kuayle before you deploy it

Inspect the Apache 2.0 source, then follow the Docker Compose guide to run an instance on your infrastructure.