Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Deployer is a complex application and has several requirements.
- PHP 5.6.4+ or newer
- A database, either MySQL or PostgreSQL (SQLite can also be used but is not recommended).
- Beanstalkd for queuing jobs. Although Laravel can use redis there is currently an issue when using more than 1 queue worker, the default in Deployer is 3.
- Supervisor to keep the queue listener and Node.js socket server running
- A caching server, unless you expect a lot of traffic the default
filecache is probably enough
- Yarn an improved package manager for Node.js
Deployer makes extensive use of shell scripting and various GNU CLI applications, this means that it currently only runs on Linux & Mac servers.
It is recommended that you do not run Deployer on a shared hosting environment. Your hosting environment will need to allow long running background processes, which many shared hosting providers do not allow.
Nginx is the recommended web server due to being able to proxy requests to the Node.js socket server. You will need to have
php-fpm installed in order for nginx to be able to serve PHP pages.
Most distributions of Apache come with everything needed, however here is a list required Apache modules:
mod_ssl(if you wish to run Deployer under SSL)
You should also ensure you have
AllowOveride All set in the
<VirtualHost> blocks so that the
.htaccess file processes correctly and rewrite rules take effect.
Most hosting providers have PHP pre-configured with everything you need for Deployer to run out of the box. However, some distributions ship with a very minimal PHP setup. Therefore, you may need to install or enable these PHP modules:
gd(a graphics library used to manipulate images)
curl(client for URL handling)
openssl(an encryption library)
mbstring(multibyte string support)
The following extensions are also required, but should be included in your PHP installation by default unless your hosting provider has disabled them.
tokenizer(a library for handling PHP tokens)
json(a library for handling JSON)
pdo(a database connection library)
phar(a library for handling PHP archives)
You will also require that
pdo includes support for either
Deployer also needs to be able to use the proc_open function, which may be disabled by your hosting provider for security reasons. Check the
disable_functions setting in
Deployer makes uses of several system commands, you will need to ensure that the following commands are accessible. Normally, they would be in one of the directories from the
$PATH environment variable.
ssh(used to connect to remote servers)
ssh-keygen(used to generate public/private keys for each project)
scp(used to copy files to the remote servers)
git(used to checkout the code from your repository)
Servers you are deploying to will need the following commands accessible
bash(a shell, currently other shells are not supported)
composer(needs to be executable, and in