FTP/SSH Access

Git Web Manager

Manage remote server credentials for FTP and SSH deployments.

FTP/SSH Access Records

Access records store the remote server credentials GWM uses for FTP and SSH deployments. They are managed by admin users at Projects → FTP/SSH Access.

  • Each record holds a hostname, username, password, and optional port.
  • Records are shared — multiple projects can reference the same access record.
  • A connection test runs automatically when a new record is created.
  • If the credentials change after a test, the badge shows Needs Test until you re-run it.

FTP Connection

GWM connects over FTPS (FTP over TLS) by default. The FTP test verifies that a connection can be established with the saved credentials.

  • Default port: 21.
  • A green FTP OK badge means the last test passed.
  • A red badge indicates a failure — check the hostname, port, and credentials.
  • FTP-only deployments build locally and sync changed files to the remote host via FTPS.

FTP-only mode is a fallback for hosts without SSH access. Dependency folders (vendor/, node_modules/) may need to be uploaded if lock files differ.

SSH Connection

SSH access allows GWM to run git pull, build commands, and dependency installs directly on the remote server rather than uploading files via FTP.

  • Default port: 22.
  • SSH credentials default to the FTP username and password unless overridden per record.
  • SSH key authentication is supported — paste the private key or set a key file path.
  • Password-based SSH uses GWM's built-in askpass helper, or sshpass if configured.
  • Per-record overrides for the SSH binary, sshpass, and key path take precedence over the global GWM_SSH_* environment variables.

SSH deployments are significantly more efficient than FTP-only because dependencies install on the server, avoiding large uploads.

Assigning to Projects

Enable remote access on a project by selecting an Access record in Edit Project → Deployment.

  • FTP only — GWM builds locally and syncs changed files via FTPS.
  • SSH only — GWM runs git and build steps over SSH with no FTP transfer.
  • FTP + SSH — SSH handles git and build steps; FTP is available for specific file-sync paths.

Dependency Sync Optimisation

For FTP-only deployments GWM compares remote dependency files before uploading to avoid unnecessary installs.

  • Composer: compares composer.lock, falling back to composer.json.
  • npm: compares package-lock.json or npm-shrinkwrap.json, falling back to package.json.
  • If lock files match and local vendor/ or node_modules/ exist, those directories are excluded from the sync.
  • If lock files differ, a local install runs and the dependency folder is uploaded.

Set GWM_FTP_WORKSPACE_PATH to specify the local staging directory used when the project path is not writable (default: storage/app/ftp-workspaces).

Related Configuration

Global SSH and FTP environment variable overrides are documented on the Configuration page under SSH Deployments and FTP-Only Deployments.