System Requirements

Stephen Ball edited this page Jan 22, 2017 · 2 revisions

Getting Started

Using Deployer

  • Creating Projects
  • Server Management
  • Deployments
  • Command Hooks
  • File Management
  • Notifications
  • Health Checks
  • Templates

Advanced Options

  • Webhooks
  • Custom Notifications

Troubleshooting

  • Additional Options
  • Getting Help
Clone this wiki locally

Deployer is a complex application and has several requirements.

Optional extras

  • Supervisor to keep the queue listener and Node.js socket server running
  • A caching server, unless you expect a lot of traffic the default file cache is probably enough
  • Yarn an improved package manager for Node.js

System requirements

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 Requirements

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.

Apache Requirements

Most distributions of Apache come with everything needed, however here is a list required Apache modules:

  • mod_rewrite
  • mod_ssl (if you wish to run Deployer under SSL)

You should also ensure you have AllowOveride All set in the <Directory> and/or <VirtualHost> blocks so that the .htaccess file processes correctly and rewrite rules take effect.

PHP Requirements

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 mysql, pgsql or sqlite.

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 php.ini

CLI Requirements

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

  • ssh
  • git
  • bash (a shell, currently other shells are not supported)
  • composer (needs to be executable, and in $PATH)