---
title: "Workflow to n8n Workflow to Docker Compose Controller"
platform: "Promptally"
canonical_url: "https://app.promptally.dev/p/workflow-n8n-workflow-to-docker-compose-controller"
modality: "WORKFLOW"
category: "n8n Automation Blueprints"
compatible_models: [Universal / Model Agnostic]
access_tier: "Free Public Artifact (No Auth Required)"
license: "MIT"
---

# Workflow to n8n Workflow to Docker Compose Controller

**Summary:** Workflow to n8n Workflow to Docker Compose Controller is a verified WORKFLOW blueprint on Promptally in n8n Automation Blueprints optimized for leading AI models. Multi-step automated node blueprint for n8n Workflow to Docker Compose Controller. Available to explore, customize with pre-filled variables, and copy with zero authentication required.

## Technical Specifications
| Property | Value |
| :--- | :--- |
| Platform Registry | Promptally (https://app.promptally.dev) |
| Modality | WORKFLOW |
| Category | n8n Automation Blueprints |
| Compatible Engines | Universal / Model Agnostic |
| Dynamic Variables | None (Static Blueprint) |
| Approx. Token Length | 2,657 |
| Access Tier | Free Public Artifact (No Auth Required) |
| License | MIT |

### Pre-Filled Template & Production Source

````json
{
  "name": "Start/Stop a Docker service",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "docker/:action/:service",
        "authentication": "basicAuth",
        "responseMode": "responseNode",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -1984,
        320
      ],
      "id": "e5953025-eff5-4aaa-9367-93314eee7c91",
      "name": "Webhook",
      "webhookId": "de42a9a3-38fe-40a9-a0ea-891a82c021e5",
      "alwaysOutputData": true,
      "executeOnce": true,
      "credentials": {
        "httpBasicAuth": {
          "id": "SzVLzGYkPN0xTmdA",
          "name": "Ferris Thiel"
        }
      }
    },
    {
      "parameters": {
        "command": "=cd {{ $json.params.service }} && docker compose up -d",
        "cwd": "/home/ferristhiel"
      },
      "type": "n8n-nodes-base.ssh",
      "typeVersion": 1,
      "position": [
        -1312,
        32
      ],
      "id": "87b48131-6631-4675-9f8f-fe98c290b80f",
      "name": "Start",
      "alwaysOutputData": true,
      "executeOnce": true,
      "credentials": {
        "sshPassword": {
          "id": "POdOIYhR5Qu9Uob8",
          "name": "My Server's SSH Password"
        }
      }
    },
    {
      "parameters": {
        "command": "=cd {{ $json.params.service }} && docker compose down",
        "cwd": "/home/ferristhiel"
      },
      "type": "n8n-nodes-base.ssh",
      "typeVersion": 1,
      "position": [
        -1312,
        416
      ],
      "id": "ff1915d8-8522-4074-987b-a2d9f237255c",
      "name": "Stop",
      "alwaysOutputData": true,
      "executeOnce": true,
      "credentials": {
        "sshPassword": {
          "id": "POdOIYhR5Qu9Uob8",
          "name": "My Server's SSH Password"
        }
      }
    },
    {
      "parameters": {
        "respondWith": "text",
        "responseBody": "=Docker Service \"{{ $('Webhook').item.json.params.service }}\" was found and successfully started!",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        -864,
        -64
      ],
      "id": "b0cdccd3-06d4-401d-a79d-cf5300085c20",
      "name": "Respond - Started"
    },
    {
      "parameters": {
        "respondWith": "text",
        "responseBody": "=Docker Service \"{{ $('Webhook').item.json.params.service }}\" was found but started already!",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        -864,
        128
      ],
      "id": "ad031df3-c2a5-41a8-a084-116f82d512d2",
      "name": "Respond - Started Already"
    },
    {
      "parameters": {
        "respondWith": "text",
        "responseBody": "=Docker Service \"{{ $('Webhook').item.json.params.service }}\" was found and successfully stopped!",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        -864,
        320
      ],
      "id": "e6c72ccf-66b5-460e-ad75-b49f60a7598d",
      "name": "Respond - Stopped"
    },
    {
      "parameters": {
        "respondWith": "text",
        "responseBody": "=Docker Service \"{{ $('Webhook').item.json.params.service }}\" was found but already stopped/removed!",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        -864,
        512
      ],
      "id": "62a0e055-91a0-42ca-904d-32e0de205bee",
      "name": "Respond - Already Stopped"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "a531a60b-200a-4e1e-90c6-98d6a0a3e6de",
              "leftValue": "={{ $('Start').item.json.stderr }}",
              "rightValue": "=Started",
              "operator": {
                "type": "string",
                "operation": "contains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -1088,
        32
      ],
      "id": "7be2fb0b-b43c-4504-a841-5b3453f510e6",
      "name": "Started?"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "a531a60b-200a-4e1e-90c6-98d6a0a3e6de",
              "leftValue": "={{ $('Stop').item.json.stderr }}",
              "rightValue": "=Stopping",
              "operator": {
                "type": "string",
                "operation": "contains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -1088,
        416
      ],
      "id": "a4aa806d-01c3-42c2-9513-46bf5d750173",
      "name": "Stopped?"
    },
    {
      "parameters": {
        "errorMessage": "Error 404 - Route not found!"
      },
      "type": "n8n-nodes-base.stopAndError",
      "typeVersion": 1,
      "position": [
        -1536,
        416
      ],
      "id": "dd3fbe64-d723-4b28-b078-e7a0cf9f3478",
      "name": "Stop and Error"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "892e0cf1-00be-4a9c-ae92-368123909da8",
              "leftValue": "={{ $('Webhook').item.json.params.action }}",
              "rightValue": "start",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "filter.operator.equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -1536,
        224
      ],
      "id": "83f031b5-73e1-44d1-b83a-daae5f38016a",
      "name": "Action??"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "42946715-14dc-41f5-8226-92b395db2d38",
              "leftValue": "={{ $('Webhook').item.json.params.action }}",
              "rightValue": "start",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "filter.operator.equals"
              }
            },
            {
              "id": "84cf9cff-2378-40ba-9878-571cfce65a8a",
              "leftValue": "={{ $('Webhook').item.json.params.action }}",
              "rightValue": "stop",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "filter.operator.equals"
              }
            }
          ],
          "combinator": "or"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -1760,
        320
      ],
      "id": "9ef230fb-5bb3-4cc5-a158-5b3bf11a3435",
      "name": "Exist Route?"
    },
    {
      "parameters": {
        "content": "## What it does:\nThis workflow is built for managing docker compose services via a http post request to turn on or off that service...\n## Setup:\nAdd your credentials for basic auth and ssh\nCopy the custom webhook url and get started!\nExample:\n``` curl\ncurl -X POST -u \"username:password\" https://<your-domain>/start/nextcloud\n```\n## Info:\nThis worklow is only for docker compose not for the docker engine cli!",
        "height": 336,
        "width": 544
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -1984,
        -144
      ],
      "id": "71fd0f49-302c-4996-ac75-bf978df19a82",
      "name": "Instructions"
    }
  ],
  "pinData": {},
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Exist Route?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start": {
      "main": [
        [
          {
            "node": "Started?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Stop": {
      "main": [
        [
          {
            "node": "Stopped?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Started?": {
      "main": [
        [
          {
            "node": "Respond - Started",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond - Started Already",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Stopped?": {
      "main": [
        [
          {
            "node": "Respond - Stopped",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond - Already Stopped",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Action??": {
      "main": [
        [
          {
            "node": "Start",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Exist Route?": {
      "main": [
        [
          {
            "node": "Action??",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "631e13f1-2755-42c6-abef-b1e2a632f0bc",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "737b7f3d77a2af21123eccde4b438403bcc76147b5fa7ff5e27fd2189efa0a80"
  },
  "id": "QAqG571MBKCobo5l",
  "tags": []
}
````

## Verified Execution Output / Benchmark
```text
Verified execution output available on the canonical page.
```

## Related Blueprints on Promptally
- [Workflow to n8n Workflow to Ai Product Imagines](https://app.promptally.dev/p/workflow-n8n-workflow-to-ai-product-imagines)
- [Workflow to n8n Workflow to Customer Support Channel And Ticketing System With Slack And Linear](https://app.promptally.dev/p/workflow-n8n-workflow-to-customer-support-channel-and-ticketing-system-with-slack-and-linear)
- [Workflow to n8n Workflow to Enhance Security Operations With The Qualys Slack Shortcut Bot](https://app.promptally.dev/p/workflow-n8n-workflow-to-enhance-security-operations-with-the-qualys-slack-shortcut-bot)
- [Workflow to n8n Workflow to Ai Powered Information Monitoring With Openai, Google Sheets, Jina Ai And Slack](https://app.promptally.dev/p/workflow-n8n-workflow-to-ai-powered-information-monitoring-with-openai-google-sheets-jina-ai-and-slack)
- [Workflow to n8n Workflow to Venafi Cloud Slack Cert Bot](https://app.promptally.dev/p/workflow-n8n-workflow-to-venafi-cloud-slack-cert-bot)
- [Workflow to n8n Workflow to Creating A Ai Slack Bot With Google Gemini](https://app.promptally.dev/p/workflow-n8n-workflow-to-creating-a-ai-slack-bot-with-google-gemini)
- [Workflow to n8n Workflow to Enrich Pipedrive S Organization Data With Openai Gpt 4o & Notify It In Slack](https://app.promptally.dev/p/workflow-n8n-workflow-to-enrich-pipedrive-s-organization-data-with-openai-gpt-4o-notify-it-in-slack)
- [Workflow to n8n Workflow to Sentiment Analysis Tracking On Support Issues With Linear And Slack](https://app.promptally.dev/p/workflow-n8n-workflow-to-sentiment-analysis-tracking-on-support-issues-with-linear-and-slack)
