Skip to content

KTStack 0.3.2

Choose a tag to compare

@nguyenkhoi489 nguyenkhoi489 released this 05 Oct 06:14

KTStack 0.3.2

New: Scheduled Backups

  • Settings → Scheduled Backups: a plan backs up the databases you pick, and optionally site source code and KTStack settings, into one archive every day or every week. It keeps the last N archives. A missed run (Mac asleep or KTStack closed) runs once as soon as possible, and a plan can skip runs on battery power.
  • Settings → Backup Destinations: a local folder (external drive, network share, iCloud Drive, Dropbox), any S3-compatible storage (Amazon S3, Cloudflare R2, Backblaze B2, MinIO, Wasabi, DigitalOcean Spaces or a custom endpoint), or a Google Drive folder. Each plan uploads to one destination and can keep a copy on this Mac. Test Connection checks a destination before you use it. Secrets live in the macOS Keychain.
  • Google Drive sign-in runs in your browser and only asks for access to files KTStack creates or that you pick.
  • Restore… on a plan downloads an archive, verifies its checksum, adds its database dumps to Database → Backups and copies site folders and settings into Downloads.
  • The kt CLI and MCP server can back up managed databases. MCP also gains ktstack_create_site and ktstack_switch_php_version. Restore stays out of reach of agents.

Other additions

  • Appearance setting: System, Light or Dark (KTStack no longer forces Light).
  • VoiceOver labels on toggles and icon-only buttons. The ⌘D and ⌘⇧D shortcuts in the menu bar window now work.
  • Settings → General → Queue actions while busy: server start, stop and restart clicked during another server operation now run once it finishes instead of being ignored.

Changed

  • Sites are served to this Mac only by default. Other devices on your network get 403 unless you turn on Settings → Sites & Network → Allow devices on your network. Backends now see the real client IP instead of 127.0.0.1.
  • New local CAs are created with name constraints: they can only sign certificates for .test, .home.arpa, .internal, your dev TLD and loopback IPs. Replace an existing CA with Settings → HTTPS Certificates → Regenerate CA (the old one is kept in a retired folder), or turn this off with Restrict CA to dev domains.
  • MongoDB documents are shown and saved as Extended JSON. Decimal128, binary subtypes, regular expressions and JavaScript code keep their types when you edit a document.
  • Remove Site now only unregisters the site by default. Moving the folder to the Trash and dropping its MySQL database are separate opt-in checkboxes.
  • Uninstalling a database or cache engine version keeps its data. Runtimes shows the kept data, restores it into a reinstalled version, and offers Delete data… to move it to the Trash.
  • Uninstalling KTStack moves its data to the Trash instead of deleting it, and shows progress.
  • Shared tunnels stop on their deadline or when KTStack quits, even after a crash. Tunnel URLs keep the site's nginx directives and Apache .htaccess rules.
  • Editing sites reloads only the backends whose configuration changed.
  • Launch, HTTPS settings, the PHP version list and SQL highlighting on large queries no longer block the interface.
  • lsof, php-fpm -t, codesign and launchctl run with timeouts, so a hung tool can no longer freeze KTStack.

Fixed

  • A failed WordPress restore puts the original site back instead of deleting it.
  • A MySQL overwrite restore keeps its safety dump until the restore or rollback is verified. mysqldump now includes routines, events and triggers.
  • Grid edits commit to the row they were opened on and survive sorting, paging and commits. Placeholders and large numbers are no longer saved by mistake.
  • Postgres filtered and sorted browsing uses the selected schema.
  • Idle workspace tabs reconnect on every entry point.
  • A bad sites.json no longer wipes sites, vhosts or certificates.
  • Services keep launchd in sync with their toggles and start the active engine version.
  • Runtime downloads cancel reliably.
  • Legacy KDWarm launchd jobs are booted out on migration.

Upgrade notes

  • The privileged helper is now version 0.3.1. KTStack asks you to approve the helper again after updating.
  • If you open your local sites from a phone or another computer, turn on Settings → Sites & Network → Allow devices on your network after updating.

Downloads

  • Apple Silicon: KTStack-0.3.2-arm64.dmg
  • Intel: KTStack-0.3.2-x86_64.dmg

Both are signed with Developer ID and notarized. Existing installs update automatically through Sparkle.