In order to better understand the concept of the Surf deployment process we will explain some fundamental terminology in this section.

Basically you should grasp the following four main terms to understand the basic concept of the deployment process:


The workflow defines the execution process of the deployment and consists of a number of stages and tasks for every stage. Surf ships already with one concrete Workflow called SimpleWorkflow. But you can define your own workflow as long as your workflow class inherits from the \TYPO3\Surf\DomainModel\Workflow class shipped with Surf.

You assign the workflow to the deployment class.


The application is the code you want to ship. The deployment configuration has at least one application. But you can configure as many applications as you want in one deployment configuration. The application itself contains of one or more nodes. You can also define within the workflow whether a task is to apply to all applications or only to a specific application.

See also



A node is basically a deployment target representing a server for an application. The node is assigned to an application for the deployment.


A task is the smallest unit in the whole deployment process. A task consists of commands either executed locally or remotely.

A task can be applied for all applications or only for certain applications.