Download the PHP package atomic-deploy/client without Composer
On this page you can find all versions of the php package atomic-deploy/client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download atomic-deploy/client
More information about atomic-deploy/client
Files in atomic-deploy/client
Package client
Short Description Zero downtime deployment using just FTP and PHP
License MIT
Informations about the package client
AtomicDeploy
This command utility connects with atomic-deploy/server
in order to deploy websites atomically to hosting without SSH access.
Why? Its 2020, there's DigitalOcean, Docker, microservices, Azure, Heroku. Why do I need this? Well the unfortunate reality is many clients are still stuck on ancient shared web hosting. This gives a slightly nicer experience for the developer whilst still working without SSH access.
How? Though there are FTP components built into this client, namely GitFtpCommand
and ComposerTransferInstalledCommand
, the current recommended way is to pull each deployment from scratch from a Git repository. atomic-deploy/server
will then facilitate running things like composer install
, despite not having any SSH access to the server itself.
AtomicDeploy will allow you to have multiple deployments of your website on the server at the same time, and they can be switched between using an atomic rename
file operation which just switches a symlink over. In the ideal world, this will allow for zero-downtime deployments.
Security
Of course, the atomic-deploy/server
installation needs to be placed behind some form of password barrier, as it is basically as powerful as cPanel when it comes to wreaking havoc on a shared webhosting installation.
Usage
To see a list of current deployments, run
$ adp ls
To push the latest version
$ adp push
To switch between versions
$ adp use [desired_git_commit]
Configuration file
The adp
command should be run from the directory of your website. That directory should contain a deploy.php
file which stores configuration for the deployment. He is an example configuration file:
All versions of client with dependencies
touki/ftp Version ^1.2
symfony/console Version ^4.3.4
symfony/process Version ^4.3.4
symfony/debug Version ^4.4.7
vlucas/phpdotenv Version ~4.0
ext-json Version *
ext-curl Version *