diff --git a/README.md b/README.md
index 80f7b23b9f..b19341f5d2 100644
--- a/README.md
+++ b/README.md
@@ -266,12 +266,12 @@ A [hatchery](https://ovh.github.io/cds/hatchery/) is like an incubator, it gives
 
 Several types of hatchery are available: 
 
- - **[hatchery kubernetes](https://ovh.github.io/cds/hatchery/kubernetes/)** (start workers in pods)
- - **[hatchery openstack](https://ovh.github.io/cds/hatchery/openstack/)** (start virtual machines)
- - **[hatchery swarm](https://ovh.github.io/cds/hatchery/swarm/)** (start docker containers)
- - **[hatchery marathon](https://ovh.github.io/cds/hatchery/marathon/)** (starts docker containers)
- - **[hatchery VSphere](https://ovh.github.io/cds/hatchery/vsphere/)** (start virtual machines)
- - **[hatchery local](https://ovh.github.io/cds/hatchery/local/)** ( starts processes on a host). 
+ - **[hatchery kubernetes](https://ovh.github.io/cds/hatchery/kubernetes/)** starts workers in pods
+ - **[hatchery openstack](https://ovh.github.io/cds/hatchery/openstack/)** starts virtual machines
+ - **[hatchery swarm](https://ovh.github.io/cds/hatchery/swarm/)** starts docker containers
+ - **[hatchery marathon](https://ovh.github.io/cds/hatchery/marathon/)** starts docker containers
+ - **[hatchery VSphere](https://ovh.github.io/cds/hatchery/vsphere/)** starts virtual machines
+ - **[hatchery local](https://ovh.github.io/cds/hatchery/local/)** starts processes on a host
  
  So yes, buzzwords or not, a multi-cloud Auto-scale OnDemand is a reality with CDS :-)
 
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/1.application.yml b/contrib/workflow-templates/demo-workflow-hello-world/1.application.yml
new file mode 100644
index 0000000000..e5cbe735cf
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/1.application.yml
@@ -0,0 +1,2 @@
+version: v1.0
+name: [[.name]]
\ No newline at end of file
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/1.environment.yml b/contrib/workflow-templates/demo-workflow-hello-world/1.environment.yml
new file mode 100644
index 0000000000..33edee6d7c
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/1.environment.yml
@@ -0,0 +1,5 @@
+name: [[.name]]-dev
+values:
+  url:
+    type: string
+    value: http://dev.[[.name]]
\ No newline at end of file
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/1.pipeline.yml b/contrib/workflow-templates/demo-workflow-hello-world/1.pipeline.yml
new file mode 100644
index 0000000000..a8883e8e88
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/1.pipeline.yml
@@ -0,0 +1,16 @@
+version: v1.0
+name: build-[[.id]]
+stages:
+- build
+- package
+jobs:
+- job: build
+  stage: build
+  steps:
+  - script:
+    - echo "Building my application"
+- job: package
+  stage: package
+  steps:
+  - script:
+    - echo "Packaging my application"
\ No newline at end of file
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/2.environment.yml b/contrib/workflow-templates/demo-workflow-hello-world/2.environment.yml
new file mode 100644
index 0000000000..c21ab01900
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/2.environment.yml
@@ -0,0 +1,5 @@
+name: [[.name]]-preprod
+values:
+  url:
+    type: string
+    value: http://preprod.[[.name]]
\ No newline at end of file
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/2.pipeline.yml b/contrib/workflow-templates/demo-workflow-hello-world/2.pipeline.yml
new file mode 100644
index 0000000000..ca4e854e1c
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/2.pipeline.yml
@@ -0,0 +1,10 @@
+version: v1.0
+name: deploy-[[.id]]
+stages:
+- deploy
+jobs:
+- job: deploy
+  stage: deploy
+  steps:
+  - script:
+    - echo "Deploying my application at {{.cds.env.url}}"
\ No newline at end of file
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/3.environment.yml b/contrib/workflow-templates/demo-workflow-hello-world/3.environment.yml
new file mode 100644
index 0000000000..4e201862e2
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/3.environment.yml
@@ -0,0 +1,5 @@
+name: [[.name]]-prod
+values:
+  url:
+    type: string
+    value: http://prod.[[.name]]
\ No newline at end of file
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/3.pipeline.yml b/contrib/workflow-templates/demo-workflow-hello-world/3.pipeline.yml
new file mode 100644
index 0000000000..1bf63731b7
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/3.pipeline.yml
@@ -0,0 +1,10 @@
+version: v1.0
+name: it-[[.id]]
+stages:
+- it
+jobs:
+- job: it
+  stage: it
+  steps:
+  - script:
+    - echo "Testing my application at {{.cds.env.url}}"
\ No newline at end of file
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/README.md b/contrib/workflow-templates/demo-workflow-hello-world/README.md
new file mode 100644
index 0000000000..8d65a27ebb
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/README.md
@@ -0,0 +1,24 @@
+# Description
+
+*This is a demo tempate*
+
+The template will generates a Hello World workflow with usual steps:
+- build and package
+- deploy on development environment
+- it test
+- deploy on pre-production and production environments
+
+It's the same as demo-workflow-skeleton workflow template, but does not contain dependency with a Git Repository Manager. So that, it's pretty
+useful to discover CDS Workflow with the [Ready To Run](https://ovh.github.io/cds/hosting/ready-to-run/docker-compose/) without having a Git
+repository manager attached.
+
+# How to import it on your CDS Instance
+
+This template is linked to group: `shared.infra`
+
+If you want to import it, you have to be CDS Administrator on your CDS Instance.
+
+``` bash
+# import from github
+cdsctl template push https://raw.githubusercontent.com/ovh/cds/master/contrib/workflow-templates/demo-workflow-hello-world/demo-workflow-hello-world.yml
+```
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/demo-workflow-hello-world.yml b/contrib/workflow-templates/demo-workflow-hello-world/demo-workflow-hello-world.yml
new file mode 100644
index 0000000000..46f0d44ac6
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/demo-workflow-hello-world.yml
@@ -0,0 +1,15 @@
+slug: demo-workflow-hello-world
+name: Demo workflow hello world
+group: shared.infra
+description: A template that generates a Hello World Workflow. It's the same as demo-workflow-skeleton, but does not contain dependency with a Git Repository Manager.
+workflow: workflow.yml
+pipelines:
+- 1.pipeline.yml
+- 2.pipeline.yml
+- 3.pipeline.yml
+applications:
+- 1.application.yml
+environments:
+- 1.environment.yml
+- 2.environment.yml
+- 3.environment.yml
diff --git a/contrib/workflow-templates/demo-workflow-hello-world/workflow.yml b/contrib/workflow-templates/demo-workflow-hello-world/workflow.yml
new file mode 100644
index 0000000000..3a6ad4c390
--- /dev/null
+++ b/contrib/workflow-templates/demo-workflow-hello-world/workflow.yml
@@ -0,0 +1,38 @@
+name: [[.name]]
+version: v1.0
+workflow:
+  build:
+    pipeline: build-[[.id]]
+    application: [[.name]]
+  deploy-dev:
+    pipeline: deploy-[[.id]]
+    application: [[.name]]
+    environment: [[.name]]-dev
+    depends_on:
+    - build
+  it-dev:
+    pipeline: it-[[.id]]
+    application: [[.name]]
+    environment: [[.name]]-dev
+    depends_on:
+    - deploy-dev
+  fork:
+    depends_on:
+    - it-dev
+  deploy-preprod:
+    pipeline: deploy-[[.id]]
+    application: [[.name]]
+    environment: [[.name]]-preprod
+    when:
+    - success
+    depends_on:
+    - fork
+  deploy-prod:   
+    pipeline: deploy-[[.id]]
+    application: [[.name]]
+    environment: [[.name]]-prod 
+    when:
+    - manual
+    - success
+    depends_on:
+    - fork
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 0d6e6a6200..ae47264d35 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -31,10 +31,10 @@ services:
       - /tmp:/app/artifacts
     environment:
       CDS_API_DATABASE_HOST: cds-db
-      CDS_API_URL_API: ${HOSTNAME}:8081
-      CDS_API_URL_UI: ${HOSTNAME}:8080
+      CDS_API_URL_API: http://${HOSTNAME}:8081
+      CDS_API_URL_UI: http://${HOSTNAME}:2015
       CDS_API_AUTH_DEFAULTGROUP: cdsdemo
-      CDS_LOG_LEVEL: debug
+      CDS_LOG_LEVEL: info
       CDS_API_CACHE_MODE: redis
       CDS_API_CACHE_REDIS_HOST: cds-cache:6379
       CDS_API_CACHE_REDIS_PASSWORD: cds
@@ -79,7 +79,6 @@ services:
     environment:
       CDS_HATCHERY_SWARM_COMMONCONFIGURATION_NAME: hatchery-swarm
       CDS_HATCHERY_SWARM_COMMONCONFIGURATION_API_TOKEN: changeitchangeitchangeitchangeitchangeitchangeitchangeitchangeit
-      # if you launch docker-compose on osx with socat, set 2376 insteand of 2375 below
       DOCKER_HOST: tcp://${HOSTNAME}:2375
       # CDS_LOG_LEVEL: debug
       # DOCKER_HOST: unix://var/run/docker.sock
diff --git a/docs/content/contribute/_index.md b/docs/content/contribute/_index.md
index 51a274901a..25a98133a1 100644
--- a/docs/content/contribute/_index.md
+++ b/docs/content/contribute/_index.md
@@ -13,6 +13,7 @@ See https://github.com/ovh/cds/blob/master/ROADMAP.md
 * Benjamin COENEN - [@BnJ25](https://twitter.com/BnJ25)
 * François SAMIN - [@francoissamin](https://twitter.com/francoissamin)
 * Steven GUIHEUX - [@sguiheux](https://twitter.com/sguiheux)
+* Richard LE TERRIER - [@richardlte](https://twitter.com/richardlte)
 * Yvonnick ESNAULT - [@yesnault](https://twitter.com/yesnault)
 
 A remark / question / suggestion, feel free to join us on https://gitter.im/ovh-cds/Lobby
@@ -22,4 +23,3 @@ All CDS Contributors: https://github.com/ovh/cds/graphs/contributors
 ## Found a bug?
 
 Feel free to open an issue on https://github.com/ovh/cds/issues
-
diff --git a/docs/content/hosting/ready-to-run/docker-compose.md b/docs/content/hosting/ready-to-run/docker-compose.md
index 7f8ed19519..cec2b2fbff 100644
--- a/docs/content/hosting/ready-to-run/docker-compose.md
+++ b/docs/content/hosting/ready-to-run/docker-compose.md
@@ -21,8 +21,8 @@ Docker compose is very convenient to launch CDS for testing it. But this is not
 ## How to run
 
 ```bash
-$ git clone https://github.com/ovh/cds.git
-$ cd cds
+$ mkdir /tmp/cdstest && cd /tmp/cdstest
+$ curl https://raw.githubusercontent.com/ovh/cds/master/docker-compose.yml -o docker-compose.yml
 $ export HOSTNAME=$(hostname)
 
 # Get the latest version
@@ -40,62 +40,103 @@ $ docker-compose up --no-recreate cds-migrate
 # You should have this log: "cds_cds-migrate_1 exited with code 0"
 
 # run API and UI
-$ docker-compose up cds-api cds-ui
-
+$ docker-compose up -d cds-api cds-ui
 ```
 
-Open a browser on http://localhost:2015, then register a new user `admin`,
+- Create the first user with WebUI
+
+Open a browser on http://localhost:2015/account/signup, then register a new user `admin`,
 with an email `admin@localhost.local` for example.
 As there is no SMTP server configured in docker-compose.yml file,
 run `docker-compose logs` to get URL for validate the registration.
 
-After registration on UI, keep the password displayed, we will use it after.
+```bash
+$ docker-compose logs|grep 'verify/admin'
+```
 
-## Prepare Project, Pipeline and Application
+After registration on UI, keep the password displayed, we will use it in next step.
 
-On UI http://localhost:2015:
+- Login with cdsctl
 
-- Create a project
-- Create a workflow
-- On the first Pipeline, add a stage and a job
-- Inside job, add a step of type "[script]({{< relref "workflows/pipelines/actions/builtin/script.md" >}})"
-- In script content, add theses lines:
+Please note that the version linux/amd64, darwin/amd64 and windows/amd64 use libsecret / keychain to store the CDS Password.
+If you don't want to use the keychain, you can select the version i386.
 
+See: [cdsctl documentation]({{< relref "cli/cdsctl/_index.md" >}})
+
+You can download cdsctl CLI from http://localhost:2015/settings/downloads
 ```bash
-#!/bin/bash
-set -ex
-echo "foo"
-sleep 10
-echo "bar"
+# on a Linux workstation:
+$ curl http://localhost:8081/download/cdsctl/linux/amd64 -o cdsctl
+# on a osX workstation, it's curl http://localhost:8081/download/cdsctl/darwin/amd64 -o cdsctl
+$ chmod +x cdsctl
+$ ./cdsctl login --api-url http://localhost:8081 -u admin
+CDS API URL: http://localhost:8081
+Username: admin
+Password:
+          You didn't specify config file location; /Users/yourhome/.cdsrc will be used.
+Login successful
 ```
 
-## Run Pipeline
-
-Run pipeline. As you can see now, your pipeline is in "waiting status". You have
-to run a CDS Worker or a CDS Hatchery which aims to create workers.
+- Test cdsctl
 
-Let's run a hatchery with docker-compose.
+```bash
+$ ./cdsctl user me
+CDS API:http://localhost:8081
+email       admin@localhost.local
+username    admin
+fullname    Administrator
+```
 
-We will spawn a container with a hatchery in `local` mode. Workers will be spawn inside this container.
+- Import a workflow template
 
 ```bash
-$ docker-compose up cds-hatchery-local
+$ ./cdsctl template push https://raw.githubusercontent.com/ovh/cds/master/contrib/workflow-templates/demo-workflow-hello-world/demo-workflow-hello-world.yml
+Workflow template shared.infra/demo-workflow-hello-world has been created
+Template successfully pushed !
 ```
 
-*Running a hatchery "local" in a container is not recommended. Use this way only for testing purpose*.
+- Create a project, then create your first workflow
+
+```bash
+$ ./cdsctl project create DEMO FirstProject
+$ ./cdsctl workflow applyTemplate
+? Found one CDS project DEMO - FirstProject. Is it correct? Yes
+? Choose the CDS template to apply: Demo workflow hello world (shared.infra/demo-workflow-hello-world)
+? Give a valid name for the new generated workflow MyFirstWorkflow
+? Push the generated workflow to the DEMO project Yes
+Application MyFirstWorkflow successfully created
+Application variables for MyFirstWorkflow are successfully created
+Permission applied to group FirstProject to application MyFirstWorkflow
+Environment MyFirstWorkflow-prod successfully created
+Environment MyFirstWorkflow-dev successfully created
+Environment MyFirstWorkflow-preprod successfully created
+Pipeline build-1 successfully created
+Pipeline deploy-1 successfully created
+Pipeline it-1 successfully created
+Workflow MyFirstWorkflow has been created
+Workflow successfully pushed !
+.cds/MyFirstWorkflow.yml
+.cds/build-1.pip.yml
+.cds/deploy-1.pip.yml
+.cds/it-1.pip.yml
+.cds/MyFirstWorkflow.app.yml
+.cds/MyFirstWorkflow-dev.env.yml
+.cds/MyFirstWorkflow-preprod.env.yml
+.cds/MyFirstWorkflow-prod.env.yml
+```
 
-After running this Hatchery, a worker will be spawned. Your pipeline will be in "Building", then "Success" status.
+Before running your new Workflow, we have to create a worker model and start a Hatchery for spawning workers.
 
-## Hatchery Docker Swarm
+- Create our first worker model
 
-The [docker-compose.yml](https://github.com/ovh/cds/blob/master/docker-compose.yml) runs hatchery belonging to the `shared.infra` groups.
+```bash
+$ ./cdsctl worker model import https://raw.githubusercontent.com/ovh/cds/master/contrib/worker-models/go-official-1.11.4-stretch.yml
+Worker model go-official-1.11.4-stretch imported with success
+```
 
-A `local hatchery` spawns workers on the same host as the hatchery. This is usually useful for specific cases, as
-running job on specific hardware.
-But this hatchery does not make it possible to respect the isolation of workspaces
-of workers as they share the same workspace.
+- Hatchery Docker Swarm
 
-There is another hatchery configured in [docker-compose.yml](https://github.com/ovh/cds/blob/master/docker-compose.yml) file: a 'swarm hatchery'
+The [docker-compose.yml](https://github.com/ovh/cds/blob/master/docker-compose.yml) runs hatchery belonging to the `shared.infra` groups.
 
 Please check that your Docker installation allows Docker API calls on `tcp://${HOSTNAME}:2375`
 Otherwise, please update environment variable `DOCKER_HOST: tcp://${HOSTNAME}:2375` in
@@ -103,53 +144,49 @@ Otherwise, please update environment variable `DOCKER_HOST: tcp://${HOSTNAME}:23
 
 ```bash
 $ export HOSTNAME=$(hostname)
-$ docker-compose up cds-hatchery-swarm
+$ # For osX user run this container. This will allow hatchery:swarm to communicate with your docker daemon
+$ docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 2375:2375 bobrik/socat TCP4-LISTEN:2375,fork,reuseaddr UNIX-CONNECT:/var/run/docker.sock
+$ docker-compose up -d cds-hatchery-swarm
 ```
 
 A `swarm hatchery` spawns CDS Workers inside dedicated containers.
 This ensures isolation of the workspaces and resources.
 
-Now, you have to create worker model of type `docker`, please follow [how to create a worker model Docker]({{< relref "workflows/pipelines/requirements/worker-model/docker/_index.md" >}}).
-
-## Next with Actions, Plugins
+- Run CDS Workflow!
 
-- You can download CDS CLI from https://github.com/ovh/cds/releases or from http://localhost:2015/settings/downloads
 ```bash
-# on a Linux workstation:
-$ wget http://localhost:2015/cdsapi/download/engine/linux/amd64 -O cdsctl
-$ chmod +x cdsctl
-$ ./cdsctl login --api-url http://localhost:8081 -u admin
-CDS API URL: http://localhost:8081
-Username: admin
-Password:
-          You didn't specify config file location; /Users/yourhome/.cdsrc will be used.
-Login successful
+$ ./cdsctl workflow run DEMO MyFirstWorkflow
+Workflow MyFirstWorkflow #1 has been launched
+http://localhost:2015/project/DEMO/workflow/MyFirstWorkflow/run/1
 ```
 
-Please note that the version linux/amd64, darwin/amd64 and windows/amd64 use libsecret / keychain to store the CDS Password.
-If you don't want to use the keychain, you can select the version i386.
+- Check on UI
 
-See: [cdsctl documentation]({{< relref "cli/cdsctl/_index.md" >}})
+on http://localhost:2015/project/DEMO/workflow/MyFirstWorkflow/run/1 you will have
 
-- Test cdsctl
-```bash
-$ cdsctl user me
-CDS API:http://localhost:8081
-fullname  admin
-email     admin@localhost.local
-username  admin
-```
+![Workflow Generated](/images/ready_to_run_docker_compose_ui.png)
+
+You see that the pipeline deploy in production was not launched automatically. 
+There is a Run Condition on it `cds.manual = true`: 
+
+![Run Condition](/images/ready_to_run_docker_compose_run_condition.png)
+
+The build pipeline contains two stages, with only one job in each stage
+
+![Build Pipeline](/images/ready_to_run_docker_compose_build_pipeline.png)
+
+## Next with Actions, Plugins
 
 - Import actions, example:
+
 ```bash
-# get cds-docker-package.yml from https://github.com/ovh/cds/blob/master/contrib/actions/
-$ cdsctl action import cds-docker-package.yml
+$ ./cdsctl action import https://raw.githubusercontent.com/ovh/cds/master/contrib/actions/cds-docker-package.yml
 ```
 
 - Import plugins: Please read [Plugins]({{< relref "workflows/pipelines/actions/plugins/_index.md" >}})
 
 # Go further
 
-- How to use OpenStack infrastructure to spawn CDS container [read more]({{< relref "hatchery/openstack.md" >}})
+- How to use OpenStack infrastructure to spawn CDS Workers [read more]({{< relref "hatchery/openstack.md" >}})
 - Link CDS to a repository manager, as GitHub, Bitbucket Server or GitLab [read more]({{< relref "/hosting/repositories-manager/_index.md" >}})
 - Learn more about CDS variables [read more]({{< relref "workflows/pipelines/variables.md" >}})
diff --git a/docs/content/workflows/pipelines/actions/plugins/plugin-kafka-publish.md b/docs/content/workflows/pipelines/actions/plugins/plugin-kafka-publish.md
index f15c4125ae..192cdf1b6f 100644
--- a/docs/content/workflows/pipelines/actions/plugins/plugin-kafka-publish.md
+++ b/docs/content/workflows/pipelines/actions/plugins/plugin-kafka-publish.md
@@ -9,21 +9,23 @@ You are able to send a custom "message" file and all the artifacts you want: the
 
 This action is a CDS Plugin packaged as a single binary file you can download and use to listen and consume data coming from CDS through Kafka. CDS can also wait for an acknowledgement coming from the consumer side. To send the acknowledgement, you can again use the plugin binary. For more details, see readme file of the plugin.
 
+How to use: https://github.com/ovh/cds/tree/master/contrib/grpcplugins/action/kafka-publish
+
 
 ## Parameters
 
-* **kafkaPassword**: Kafka password
 * **kafkaAddresses**: Kafka Addresses
-* **topic**: Kafka Topic
 * **artifacts**: Artifacts list (comma separated)"
 * **key**: Key used by AES Encryption. It have to be the same value as --key on plugin binary
+* **waitForAckTopic**: Wait for ACK topic
 * **kafkaUser**: Kafka user
 * **kafkaGroup**: Kafka Consumer Group (used for acknowledgment)
+* **topic**: Kafka Topic
 * **publicKey**: GPG Public Key (ASCII armored format)
 * **waitForAck**: Wait for ACK
-* **waitForAckTopic**: Wait for ACK topic
 * **waitForAckTimeout**: Ack timeout (seconds). Used only if "waitForAck" is true.
 * **message**: Kafka Message
+* **kafkaPassword**: Kafka password
 
 
 
diff --git a/docs/content/workflows/pipelines/actions/plugins/plugin-marathon.md b/docs/content/workflows/pipelines/actions/plugins/plugin-marathon.md
index 6a56574552..8abd909103 100644
--- a/docs/content/workflows/pipelines/actions/plugins/plugin-marathon.md
+++ b/docs/content/workflows/pipelines/actions/plugins/plugin-marathon.md
@@ -10,6 +10,8 @@ Your marathon.json file can be templated with cds variables "{{.cds.variables}}"
 
 ## Parameters
 
+* **url**: Marathon URL http://127.0.0.1:8081,http://127.0.0.1:8082,http://127.0.0.1:8083
+* **user**: Marathon User (please use project, application or environment variables)
 * **password**: Marathon Password (please use project, application or environment variables)
 * **configuration**: Marathon application configuration file (json format)
 * **waitForDeployment**: Wait for instances deployment.
@@ -18,8 +20,6 @@ If not set, CDS will consider a successful result if marathon accepts the provid
 
 * **insecureSkipVerify**: Skip SSL Verify if you want to use self-signed certificate
 * **timeout**: Marathon deployment timeout (seconds). Used only if "waitForDeployment" is true.
-* **url**: Marathon URL http://127.0.0.1:8081,http://127.0.0.1:8082,http://127.0.0.1:8083
-* **user**: Marathon User (please use project, application or environment variables)
 
 
 
diff --git a/docs/content/workflows/pipelines/actions/plugins/plugin-ssh-cmd.md b/docs/content/workflows/pipelines/actions/plugins/plugin-ssh-cmd.md
index a716645ad0..84a6847c4e 100644
--- a/docs/content/workflows/pipelines/actions/plugins/plugin-ssh-cmd.md
+++ b/docs/content/workflows/pipelines/actions/plugins/plugin-ssh-cmd.md
@@ -7,12 +7,12 @@ This plugin helps you to run cmd on remote server over ssh.
 
 ## Parameters
 
-* **username**: Username
 * **privateKey**: SSH RSA private key
 * **hostnames**: Hostnames (comma separated values)
 * **command**: Command
 * **timeout**: Timeout (seconds)
 * **commandTimeout**: Command Timeout (seconds)
+* **username**: Username
 
 
 
diff --git a/docs/content/workflows/pipelines/actions/plugins/plugin-tmpl.md b/docs/content/workflows/pipelines/actions/plugins/plugin-tmpl.md
index c85f93afd5..d0b165fa38 100644
--- a/docs/content/workflows/pipelines/actions/plugins/plugin-tmpl.md
+++ b/docs/content/workflows/pipelines/actions/plugins/plugin-tmpl.md
@@ -10,9 +10,9 @@ Check documentation on text/template for more information https://golang.org/pkg
 
 ## Parameters
 
+* **params**: Parameters to pass on the template file (key=value newline separated list)
 * **file**: Template file to use
 * **output**: Output path for generated file (default to <file>.out or just trimming .tpl extension)
-* **params**: Parameters to pass on the template file (key=value newline separated list)
 
 
 
diff --git a/docs/content/workflows/pipelines/actions/plugins/plugin-venom.md b/docs/content/workflows/pipelines/actions/plugins/plugin-venom.md
index f77fb20c18..848441c415 100644
--- a/docs/content/workflows/pipelines/actions/plugins/plugin-venom.md
+++ b/docs/content/workflows/pipelines/actions/plugins/plugin-venom.md
@@ -10,13 +10,13 @@ Add an extra step of type junit on your job to view tests results on CDS UI.
 
 ## Parameters
 
-* **vars-from-file**: filename.yaml or filename.json. See https://github.com/ovh/venom#run-venom-with-file-var
-* **path**: Path containers yml venom files. Format: adirectory/, ./*aTest.yml, ./foo/b*/**/z*.yml
 * **exclude**: Exclude some files, one file per line
 * **output**: Directory where output xunit result file
 * **parallel**: Launch Test Suites in parallel. Enter here number of routines
 * **loglevel**: Log Level: debug, info, warn or error
 * **vars**: Empty: all {{.cds...}} vars will be rewrited. Otherwise, you can limit rewrite to some variables. Example, enter cds.app.yourvar,cds.build.foo,myvar=foo to rewrite {{.cds.app.yourvar}}, {{.cds.build.foo}} and {{.foo}}. Default: Empty
+* **vars-from-file**: filename.yaml or filename.json. See https://github.com/ovh/venom#run-venom-with-file-var
+* **path**: Path containers yml venom files. Format: adirectory/, ./*aTest.yml, ./foo/b*/**/z*.yml
 
 
 
diff --git a/docs/static/images/ready_to_run_docker_compose_build_pipeline.png b/docs/static/images/ready_to_run_docker_compose_build_pipeline.png
new file mode 100644
index 0000000000..c2dd3582a0
Binary files /dev/null and b/docs/static/images/ready_to_run_docker_compose_build_pipeline.png differ
diff --git a/docs/static/images/ready_to_run_docker_compose_run_condition.png b/docs/static/images/ready_to_run_docker_compose_run_condition.png
new file mode 100644
index 0000000000..e880fd4cd1
Binary files /dev/null and b/docs/static/images/ready_to_run_docker_compose_run_condition.png differ
diff --git a/docs/static/images/ready_to_run_docker_compose_ui.png b/docs/static/images/ready_to_run_docker_compose_ui.png
new file mode 100644
index 0000000000..caf9d9bfdf
Binary files /dev/null and b/docs/static/images/ready_to_run_docker_compose_ui.png differ
diff --git a/engine/api/status.go b/engine/api/status.go
index 87f5ce23e1..910f4b02bd 100644
--- a/engine/api/status.go
+++ b/engine/api/status.go
@@ -338,7 +338,15 @@ func (api *API) computeMetrics(ctx context.Context) {
 func (api *API) countMetric(ctx context.Context, v *stats.Int64Measure, query string) {
 	n, err := api.mustDB().SelectInt(query)
 	if err != nil {
-		log.Warning("metrics>Errors while fetching count %s: %v", query, err)
+		// Example: Errors while fetching count SELECT MAX(id) FROM workflow_run: sql: Scan error on column index 0: converting driver.Value type <nil> ("<nil>") to a int64: invalid syntax
+		// this error is displayed when there is no data in the current table
+		// so that, record 0
+		// this will avoid unuseful warn logs on a fresh CDS Installation
+		if strings.Contains(query, "SELECT MAX") && strings.Contains(err.Error(), "converting driver.Value type <nil>") {
+			n = 0
+		} else {
+			log.Warning("metrics>Errors while fetching count %s: %v", query, err)
+		}
 	}
 	observability.Record(ctx, v, n)
 }
@@ -346,7 +354,7 @@ func (api *API) countMetric(ctx context.Context, v *stats.Int64Measure, query st
 func (api *API) countMetricRange(ctx context.Context, status string, timerange string, v *stats.Int64Measure, query string, args ...interface{}) {
 	n, err := api.mustDB().SelectInt(query, args...)
 	if err != nil {
-		log.Warning("metrics>Errors while fetching count %s: %v", query, err)
+		log.Warning("metrics>Errors while fetching count range %s: %v", query, err)
 	}
 	ctx, _ = tag.New(ctx, tag.Upsert(tagStatus, status), tag.Upsert(tagRange, timerange))
 	observability.Record(ctx, v, n)
diff --git a/engine/api/worker/model.go b/engine/api/worker/model.go
index 8542579ce4..5bd2a42885 100644
--- a/engine/api/worker/model.go
+++ b/engine/api/worker/model.go
@@ -79,6 +79,8 @@ const (
 // InsertWorkerModel insert a new worker model in database
 func InsertWorkerModel(db gorp.SqlExecutor, model *sdk.Model) error {
 	dbmodel := WorkerModel(*model)
+	dbmodel.NeedRegistration = true
+	model.UserLastModified = time.Now()
 	if err := db.Insert(&dbmodel); err != nil {
 		return err
 	}
diff --git a/engine/cds-engine-linux-amd64 b/engine/cds-engine-linux-amd64
deleted file mode 100755
index 88e58c068c..0000000000
Binary files a/engine/cds-engine-linux-amd64 and /dev/null differ