Create a Project
- Repo URL (HTTPS, SSH, or owner/repo).
- Site URL (main domain for links and default health checks).
- Local Path (existing or auto-created).
- Local paths can be reused across projects (for example multiple FTP hosts using
/public_html); GWM shows a warning when a path is already in use instead of blocking save. - Branch (main, master, or any branch).
- Health Check URL (full URL or relative path; Laravel commonly uses
/up). - The wizard includes a Configuration step for environment and
.htaccesssetup.
Community limit: up to 5 total projects per installation. Projects are shared across users because GWM is designed for a single organization workspace.
Project types include Laravel, Node, Static, and Custom. Python, Rust, and Container project types are visible with lock indicators and require Enterprise Edition.
Workspace Navigation
The Projects area uses a left-side workspace menu for project operations:
- Create Project
- Projects
- Task Queue
- Scheduler
- FTP/SSH Access (admin)
Project Directories
Projects can now be assigned to multi-layer directories (for example Clients/Acme/Marketing) from both Create and Edit screens.
- Directories are optional; blank keeps the project at root level.
- Project list rendering is now collapsible by directory tree.
- Nested folders are supported and can be expanded/collapsed independently.
- Folder headers aggregate issue badges so you can spot problem areas before expanding each directory.
Environment Tab
Each project includes an Environment tab for editing the project’s .env file directly.
- Edit and save
.envvalues without leaving the UI. - Create a missing
.envdirectly from the editor when the project path exists. - Create
.envfrom.env.exampleor.env.samplewhen available. - The create wizard can prefill the Environment step with
.env.exampleor.env.samplecontent when it exists. - Node projects can also use the Environment step; the prefill toggle is enabled when an example file is detected.
- If an existing
.envis detected, it is used immediately with no additional setup. - When editing a project, you can paste
.envcontent to seed it before the first deploy if the file is missing. - When a deployment or health check failed due to a missing
.env, saving the file triggers an automatic deploy retry. - Laravel deploy checks require a valid
.envbefore running artisan tasks such as migrations.
Configuration Step
Before Build & Deploy, the wizard includes a Configuration step to seed key files.
- Paste a custom
.envfile during setup (used only if no.envexists yet). - Paste a custom
.htaccessfile; defaults are provided based on the project type. - Use the
.env.exampleprefill toggle to seed environment variables faster. - Both files are created only when missing, so existing server configs are preserved.
- Editing a project also lets you seed
.envand.htaccessbefore deployment if they are missing.
Migration Safety Override
Some legacy databases already contain tables, which can cause migrations to fail with “table already exists.”
- Enable Ignore migration “table already exists” errors to log a warning and continue deployments.
- This option is highlighted on the final step of project creation and is also available in Edit Project.
Deploy Actions
- Deploy – standard update with change preservation.
- Force Deploy – destructive update (use carefully).
- Undo Last Deploy – one-click rollback to the previous successful release (visible only when a rollback target exists).
- Check Updates – refresh repository status.
- Audit Projects – Enterprise only (run npm/composer audits and attempt fixes immediately).
Project List Shortcuts
- Check Health runs health checks across all listed projects.
- Check Updates checks repositories for new commits across all listed projects.
- Audit Projects is available in Enterprise to run dependency audits across all listed projects.
- A small loading indicator appears next to each project while bulk checks are running.
- The project list now shows Last health check timestamps next to deployments.
- Health checks run on a 60-second cadence for projects with a site or health URL, so FTP and non-FTP projects refresh together.
- Projects show Composer Issue or Npm Issue badges when the most recent dependency action failed or warned.
- If email is configured, an alert is sent only when an automatic update check detects a health drop (OK → not OK). Manual checks do not trigger emails.
- Email alerts are batched together when multiple projects go offline at once and include a cooldown to reduce noisy flapping notifications.
- You can turn health alert emails on or off in System Settings (a warning appears if email is not configured).
Security & Dependency Actions
- Security tab shows Dependabot alerts and audit issues for the project.
- Use the Security tab actions to run Composer Update or Npm Audit Fix without leaving the page.
- Audit Project is an Enterprise-only action in the Security tab.
- After fixes, the Security tab can prompt you to commit and push dependency changes back to the repo.
- Projects with audit vulnerabilities show a Vulnerabilities found badge in the project list.
- Audit Fix actions can prompt you to commit and push dependency changes back to the repo.
- Composer Update and Npm Update actions can also prompt you to commit and push updated manifest/lock files, so Dependabot doesn't re-open resolved advisories.
If app caches or published assets look stale after an update, use the authenticated /recovery page to repair published assets. See the Troubleshooting guide for details.
Task Queue
When queueing is enabled, auto-deploys and webhooks are added to the queue and processed in order. Enterprise audit jobs are also queued when enabled. Manual deploys run immediately and take priority. The Task Queue tab lets you cancel, reorder, or force-cancel stuck items.
Deploy File Filters
Use Exclude and Whitelist paths to control what is synchronized during deployment (especially FTPS sync mode).
- Exclude Paths preserve matching files/folders and skip overwriting them.
- Whitelist Paths allow only matching files/folders to be uploaded.
- If Whitelist is empty, all paths are eligible unless excluded.
storage/
public/uploads/
.env
*.log