Zero-downtime deployments

Zero-downtime deployments let you publish a new version of your application without taking the current version offline while files are being transferred.

Launchdeck's SSH deployment strategy does this by uploading each deployment as a new release. Once the new release is ready, Launchdeck switches your application to the new version.

How zero-downtime deployments work

Each deployment is stored in its own release directory inside the installation path configured for your server.

A typical installation might look like:

my-app/
├── current -> releases/12345678/
└── releases/
    ├── 12345677/
    └── 12345678/

The current symlink points to the active release.

When a new deployment is ready, Launchdeck updates this symlink to point to the new release. Because the existing release remains active while the new one is being prepared, your application can continue serving requests during the deployment.

Installation path

The installation path is the directory Launchdeck uses to manage your application's releases.

For example:

/var/www/my-app

Launchdeck creates and manages the release structure inside this directory.

You can configure the installation path when setting up your SSH connection.

Webroot

Your web server should serve the application through Launchdeck's current release.

Launchdeck can manage this using the webroot settings configured for your SSH connection.

If your application has its own public directory, such as Laravel's public directory, you can also configure the webroot path within your repository.

Running commands during deployment

Some applications need commands to run on the destination server as part of a deployment, such as database migrations, clearing caches or restarting services.

Launchdeck can run these using SSH commands.

Rolling back a deployment

Because previous releases are kept separately, Launchdeck can switch your application back to an earlier release without rebuilding or transferring it again.

A rollback only restores the files contained in that release. It cannot reverse changes made outside the release, such as files or directories that have been manually deleted from the server.

Rollbacks also do not reverse database migrations. If a deployment includes a database migration that needs to be undone, you'll need to roll back the database change separately.

Configuring zero-downtime deployments

Zero-downtime deployments are available when deploying over SSH.

To get started, configure an SSH connection for your project.

Happy deploying!

What Customers Say

“Outstanding customer service.”
- Markus M, Business Owner
“It has really been making deployment of our software to several different staging environments a lot smoother.”
- Arjan S, SaaS Company CTO
“I just wanted to say, great job. I spent like a week to find a service like this.”
- Pasha K, Lead Frontend Engineer
A better way to deploy code
Try Launchdeck free

No credit card required