explaingit

deployphp/deployer

11,049PHPAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

Deployer is a PHP command-line tool that automates pushing code to remote servers with zero-downtime deployments, automatic server provisioning, and ready-made recipes for popular PHP frameworks.

Mindmap

mindmap
  root((Deployer))
    What it does
      Automates deployment
      Zero downtime
      Server provisioning
    Framework recipes
      Laravel
      Symfony
      Custom tasks
    Integrations
      GitHub Actions
      Docker image
      CI pipelines
    Audience
      PHP developers
      DevOps teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Deploy a Laravel or Symfony app to a VPS from the command line with zero downtime using built-in framework recipes.

USE CASE 2

Set up a fresh server with the correct PHP version and web server config using Deployer's automatic provisioning.

USE CASE 3

Trigger PHP deployments automatically from a GitHub Actions workflow whenever you push to main.

USE CASE 4

Roll back a failed deployment to the previous working release with a single Deployer command.

Tech stack

PHP

Getting it running

Difficulty · moderate Time to first run · 30min

Requires SSH access to a remote server, full configuration options and framework recipes are documented at deployer.org.

Use, copy, modify, and distribute freely for any purpose, including commercial, as long as you keep the license notice.

In plain English

Deployer is a command-line deployment tool for PHP projects. It automates the process of pushing your code from a local machine or CI pipeline to a remote server, handling the steps that would otherwise require manual SSH commands. Rather than logging into a server by hand and running update commands each time you release a change, Deployer runs a defined sequence of tasks for you. The README is intentionally brief, pointing readers to the project website at deployer.org for full documentation and configuration guides. The tool is built around three main features. The first is automatic server provisioning, which means Deployer can configure a fresh server to have the right software and settings installed, not just deploy code to a server that already exists. The second is zero downtime deployments: the tool prepares the new version of your application in a separate directory and then switches a symlink to point at it, so the live site never serves partially updated files to visitors. The third is a library of ready-to-use recipes for popular PHP frameworks, which means you can often get a working deployment pipeline for a project without writing everything from scratch. For teams using GitHub Actions, there is an official GitHub Action that runs Deployer as part of a continuous integration or delivery workflow. A Docker image is also available for those who prefer containerized tooling. The project is released under the MIT license. Because the GitHub README is sparse, anyone wanting to learn about specific configuration options, supported frameworks, or task definitions should visit the full documentation at deployer.org.

Copy-paste prompts

Prompt 1
Write a Deployer deploy.php file for a Laravel project that deploys to a DigitalOcean VPS over SSH, runs composer install and php artisan migrate, and uses zero-downtime symlink switching.
Prompt 2
How do I add a custom Deployer task that clears the Laravel cache and sends a Slack notification after each successful deployment?
Prompt 3
Set up a GitHub Actions workflow that runs Deployer to deploy a Symfony app to my server whenever I push to the main branch.
Prompt 4
I'm using Deployer and a deployment failed halfway through. How do I roll back to the previous release and investigate what went wrong?
Prompt 5
Configure Deployer to provision a fresh Ubuntu server with Nginx, PHP 8.3, and PostgreSQL before deploying my PHP app for the first time.
Open on GitHub → Explain another repo

← deployphp on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.