You can run it yourself.
symflip is Apache-2.0 and ships as one Go binary plus Postgres. Use the hosted version, or run it on your own box so your deploy keys and secrets stay on your network.
Both deploy one PHP project to many servers with zero downtime. symflip is open source, runs on your own infrastructure if you want, and builds the new release on every server before any of them goes live. Here's an honest side by side, including where Envoyer is the better pick.
Deploying to two or more servers needs Team (€29/mo, cancel anytime).
Envoyer is still sold and still maintained. Laravel says it
will be maintained for the foreseeable future
[1].
If it works for you, that's a fine reason to stay. This page is for teams
who want something different from their deploy tool, not for teams who've
been told to leave.
symflip is Apache-2.0 and ships as one Go binary plus Postgres. Use the hosted version, or run it on your own box so your deploy keys and secrets stay on your network.
Every server fetches and builds the new release first. If any of them fails, none go live and every server keeps serving what it had. Then each server switches with one atomic symlink rename, all in parallel. If a server fails to switch, or the release fails its health check with auto-rollback on, the servers that switched roll back so the fleet ends on one release. If a rollback itself fails, symflip says so loudly.
Give symflip a command, such as curl -fsS http://127.0.0.1/up, plus a retry count. Turn on auto-rollback and a release that never passes is rolled back on every server.
Pick a primary server. Migrations run there, once, before anything goes live. There's no per-server hook config to get right, and a failed migration means a safe abort.
Require approval before a deploy goes live (Business). Schedule deploys for off-peak windows with cron (Team). See who shipped what in an audit log (Business). Give each teammate a role instead of a shared login (Team).
.env for the whole fleet.Secrets are sealed at rest, and every deploy rewrites the same shared/.env on every server.
If you hold SSH access to client servers, this is the first thing to check.
authorized_keys.shared/.env.authorized_keys and symflip's access is gone.The details: How symflip handles your SSH keys and secrets.
| Feature | symflip | Envoyer |
|---|---|---|
| Zero-downtime deploys | Yes | Yes [2] |
| One project, many servers | Yes, from Team | Yes [3] |
| Migrations once, on one server | Yes, built in | Yes, by limiting a hook to one server [5] |
| Health checks | Yes, a command run on each server | Yes, a URL that must return 2xx [4] |
| When the health check fails | Optional automatic rollback | Notifies your channels; no auto-rollback documented [4] |
| Rollback | One click on single-server projects; automatic on a failed health check | Yes [2] |
| Approvals before go-live | Yes (Business) | Not listed [2] |
| Scheduled deploys | Yes (Team and up) | Not listed [2] |
| Audit log | Yes (Business) | Not listed [2] |
| Feature | symflip | Envoyer |
|---|---|---|
| Price per month | Free, then €12 / €29 / €99 | $10 / $20 / $50 [2] |
| Projects | 1 / 5 / 20 / unlimited | 10 / 20 / unlimited [2] |
| Team members | 1 / 1 / 5 / 15 seats | Unlimited on every plan [2] |
| Open source, self-hostable | Yes, Apache-2.0 | No, hosted service [2] |
| Push-to-deploy | GitHub and GitLab webhooks | GitHub, Bitbucket, GitLab including self-hosted [2] |
| Notifications | Slack, Mattermost or any incoming webhook | Slack, Microsoft Teams, Discord, email [7] |
| Heartbeats (cron monitoring) | No | Yes [2] |
| Public API | No | Yes [6] |
| Configurable linked folders | No, shares .env and storage/ |
Yes [3] |
| Server OS | Linux | Linux and FreeBSD [3] |
symflip plans in order: Hobby, Solo, Team, Business. Envoyer plans: Basic, Plus, Premium.
Envoyer details checked on . Sources:
We'd rather you pick the right tool than pick us. Stay with Envoyer if:
.env and storage/ only. You can link more with a hook, but Envoyer does it properly.
There's no one-click importer. Moving a project means four things: copy
your hooks into symflip's pipeline fields, paste your .env
into secrets, add your servers, then repoint nginx, the scheduler and your
workers at the new current path. You can run both tools side by
side, and switch back by repointing nginx.
The cutover, on each server:
root to the new current/public and reload nginx.schedule:run cron entry at the new path.Step-by-step guide: Migrating a multi-server Envoyer project to symflip
Laravel, Laravel Forge and Laravel Envoyer are trademarks of their owner. Deployer is an independent open-source project. symflip is not affiliated with or endorsed by either. Competitor details are as published on the cited pages on and may have changed since.
Deploy to a single server free, with no card. Add servers when you move to Team (€29/mo).