This section covers the (fast) setup of a deployment configuration and the deployment of your project using that configuration. Check the installation section for installation instructions.


fumi offers a small amount of easy to use commands:

  • deploy: deploy with a given configuration
  • list: show all the available configurations
  • new: create a new deployment configuration with the bare minimum
  • remove: remove an existing configuration.

You will most likely be using deploy the most, so you just need to remember that you can use it in two ways:

By simply running:

$ fumi deploy

in your project's directory, which will use the default configuration, or ask you for a default one.

Or by running:

$ fumi deploy CONF

where CONF is the configuration name that you want fumi to use.

Creating your first configuration

In order to create a basic configuration with the bare minimum:

$ fumi new CONF

This will create a CONF configuration in the fumi.yml file that you can adapt to your project's needs. However, you should take a look at the structure of the deployment file for advanced options and details.

Making your first deployment

Once you are happy with your configuration, run:

$ fumi deploy CONF

to make your first deployment. Remember that you can also set it as default by running:

$ fumi deploy

and specifying the configuration to use by default.

The deployment directory

The remote deployment directory has the following structure:


Each time you deploy your project, a new revision will be created in the rev directory, using timestamp of the deployment as name. This directory is then symlinked to the current directory, which is were the live version of your project can be accessed from.

Things to consider

fumi performs deployments through SSH. Since version 0.3.0, it is possible to specify a password for the connection in the configuration file or introduce it when deploying. Public key authentication is also available.

The tool is language-agnostic, hence it is up to you to decide how your project must be deployed and what commands to execute in the remote host (or locally) before and after deployment.

You will not be prompted for superuser password if you issue a sudo command or similar.