EnvKit v0.33.0-beta.7
macOS build with a big memory and CPU fix.
The "hardware acceleration" setting is now Lite mode (on by default). It used to
force SwiftShader, which kept a GPU process rasterizing the 3D globe on the CPU — on
an idle Mac that was ~81% CPU and ~443 MB. Lite mode now disables hardware
acceleration properly, so no WebGL is loaded at all: ~0% idle CPU and ~346 MB.
Turn Lite mode off in Settings → Performance if you want the animated globe back.
Also fixed three leaks that grew for as long as the app stayed open:
- Supervised services (nginx, mysql, php-fpm, and especially Vite/Next dev servers)
buffered their entire stdout/stderr in memory forever. Now capped to a 64 KB tail. - The dashboard globe leaked a whole WebGL context every time you switched between
light and dark theme. - The Logs page grew without limit while following a busy log.
Plus: the sidebar shimmer no longer animates in Lite mode or while the window is
hidden, and hiding the window now releases cached state.
Note: this build is signed but not notarized, so on first launch macOS will warn.
Right-click the app → Open, or run:
xattr -dr com.apple.quarantine /Applications/EnvKit.app
Windows is still on 0.33.0-beta.6; a Windows build of these fixes follows.
Windows
Sharing fixes for Laravel and Vite projects, plus better start diagnostics.
Sharing
- Laravel apps generate correct URLs when shared. Trusted proxies are now configured through
bootstrap/app.php, the only place Laravel 11/12 actually honours it — the previous approach was reset on every request, so shared sites producedhttp://localhostlinks and blocked assets. - Projects running Vite (
composer run dev/npm run dev) work when shared: asset and HMR traffic is routed through the share URL instead oflocalhost:5173, which no visitor can reach. - Shares follow the selected web server's HTTPS port. On Apache with a custom SSL port the tunnel pointed at the wrong port, which showed as a Cloudflare "Bad gateway / Host Error" (#102). Sharing while the web server is stopped now fails immediately with a clear message instead of reporting the share live.
- Local HTTPS for
*.envkit.netis fixed. A certificate refresh that failed once (the file is held open by the running web server) could never recover, so share URLs kept warning; the check now reads the certificate itself. Let's Encrypt sites get a separate block for their share hostname, which that certificate could never cover. - Each project's Vite dev server uses its own certificate — previously every project trusted one certificate naming every site on the machine.
- The share URL resolves immediately after going live.
Services
- nginx no longer fails to start when its generated config files are missing (after moving the data folder, for example) — they are rebuilt automatically.
- MySQL start failures explain themselves: an InnoDB buffer pool too large for the machine to commit names the setting to lower, and corrupted InnoDB files are reported as data corruption with the real recovery routes. A start that times out now carries the same diagnosis as one that exits.
- nginx failures no longer show a wall of routine notices instead of the actual error, and a redis config locked by antivirus no longer aborts startup.
Dashboard and site page
- Mailpit shows its web and SMTP ports (MongoDB, Meilisearch and MinIO too), the Port/Version columns line up, and a MySQL 8/9 install is labelled MySQL rather than MariaDB (#96, #98).
- Settings → Paths: the Open buttons open the file itself in an editor, including the error log (#97).
- Redesigned Share Online dialog with clear starting / live / error states, and a polished site page (keyboard-accessible tabs, grouped actions, loading skeletons).