Repository navigation
KTStack 0.3.2
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
ktCLI and MCP server can back up managed databases. MCP also gainsktstack_create_siteandktstack_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
403unless you turn on Settings → Sites & Network → Allow devices on your network. Backends now see the real client IP instead of127.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 aretiredfolder), 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
.htaccessrules. - 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,codesignandlaunchctlrun 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.
mysqldumpnow 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.jsonno 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.