You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deploy script presets. Deployments now ship with a library of bash pipeline presets — Laravel Production, Laravel Development, Static/Node — that you pick per deployment, adapt with variables, and preview before anything runs. Built-ins are smart: composer install only runs when composer.json/composer.lock actually changed since the last deploy, npm ci && npm run build only when package.json/package-lock.json (or resources/, vite.config.*) changed. First deploys run everything.
"Deploy" is now its own button. Provisioning (Apply) and deploying code (pull + builds) are separate steps. The new green Deploy button on each deployment card runs just the pipeline over SSH with live logs — no packages, vhosts, or SSL touched.
Your .env survives re-apply. Re-running Apply used to wipe the deploy directory and recreate .env from .env.example, silently destroying hand-edited values (mail creds, API keys). Apply now backs up .env before the wipe and restores it over the fresh clone.
Fixed: service cards stuck on RUNNING after Stop all. Closing the service-logs viewer silently deregistered every service:status listener in the app, freezing the Dashboard cards until restart — Stop all then looked like a no-op even though services actually stopped.
What's new
Deploy script presets
Preset manager — "Script presets" button on the Deployments page. Three read-only built-ins; duplicate any of them to create a customizable copy edited in Monaco (shell highlighting).
Variables — presets resolve {name}, {domain}, {raw_domain}, {branch}, {php_version}, {deploy_root}, {environment}, {git_url}, {web_server}, {database} from the deployment config, plus custom variables you declare per preset (label + default) and fill per deployment. Bash ${VAR} expansion is left untouched.
Per-deployment adaptation — pick a preset in the Apply form, fill its variables, or click "Customize script for this deployment" to edit a private copy (the preset itself stays untouched, with "Reset to preset" one click away).
Script preview — see the exact rendered bash (variables substituted, execution wrapper included) before saving or running. Unresolved variables are flagged. Preview and execution share one code path, so what you see is literally what runs.
One pipeline, three triggers — the same rendered script runs as the Apply build step, behind the new Deploy button, and inside the auto-deploy cron on the server.
Cloud sync — custom presets sync across machines as end-to-end-encrypted resources (Pro + sync enabled); they work fully offline/local otherwise.
Run history — manual deploys are recorded as runs with encrypted logs, like Apply.
What's fixed
Deployments
.env preserved on re-apply — backed up to /tmp before the wipe-and-clone, restored after. The deploy pipeline itself uses git fetch + reset and never touches untracked files.
Auto-pull script written via base64 — the cron script is no longer written through a heredoc, so user-authored pipelines containing arbitrary lines can't truncate it.
Legacy build scripts unchanged — existing deployments with a free-text build script keep producing byte-identical plans; the Apply form preselects "Free-text build script (legacy)" for them.
Dashboard / services
Stale RUNNING status after Stop all — EventsOff("service:status") in the service-logs modal removed every listener for the event app-wide (Wails semantics), permanently deafening the kept-alive Dashboard, Projects, and Downloads pages. All shared-event consumers now use the per-listener canceler returned by EventsOn. The same fix was applied to install:progress (closing the PHP Extensions or Bootstrap modal no longer kills download progress on the Libs/Tools page).
Install
Download LaraEnv-0.4.17.msi and double-click.
SHA-256 in LaraEnv-0.4.17.msi.sha256.
Auto-update from prior versions picks this up automatically.
Compatibility
Windows 10+ (x64) for the desktop app.
Cloud deploy targets: Ubuntu/Debian (apt-based).
No config or data migrations. Drop-in replacement for 0.4.16.
Deployments saved before this version keep their free-text build script behavior exactly as-is until you switch them to a preset.