Self Update

Git Web Manager

Keep GWM up to date and track new versions.

Status Badge

The System → App Updates tab includes a badge that shows whether you are up to date or if a new release is available.

Nightly Updates

Nightly self-update runs at 02:30 server time when enabled in System → Settings (Perform auto-updates).

The base availability still depends on GWM_SELF_UPDATE_ENABLED. If disabled, scheduled updates will not run.

Preserving Local Changes

Updates automatically detect and preserve local changes. Protected files (like .htaccess) and custom exclusions are restored after the update.

Exclude paths from the app update (for example docs) using GWM_SELF_UPDATE_EXCLUDE_PATHS.

Force Update

If an update fails, admins can run a Force Update to reset the working tree to the remote branch. This discards local code changes but preserves .env, storage, .htaccess, and excluded paths.

Force Update does not clear app data (logs, cache, storage files, and other protected paths are kept).

Recovery After Updates

If cached Laravel files or published assets look stale after a self update, open the authenticated /recovery page and use Repair Published Assets. This clears Laravel caches and republishes bundled assets without npm.

Fallback URLs

If the UI is unavailable, you can trigger updates manually using authenticated fallback URLs:

  • /update runs a standard self-update.
  • /rollback reverts to the previous update’s from_hash.
  • /rollback?hash=<commit> reverts to a specific commit.

These endpoints require authentication. If no rollback target exists, use /update instead.

Post-Update Steps

Composer install runs only when Composer files change or vendor is missing. The GWM application UI ships static assets and no longer runs npm, Vite, or Tailwind during self-update.

If the app exposes the custom app:clear-cache command, it runs after updates to flush cached data and publish bundled assets.