External Workflow Server
Note: This capability is under active development and considered to be in Beta. If you’re interested in deploying your organization’s Workflow, please reach out to Support.
In this tutorial, we show you how to deploy your Workflow to your own infrastructure. For the purposes of this tutorial, we will use AWS as the example cloud provider, but these steps should apply to any cloud provider that supports VM instances that can run Docker Images.
1. Stand up the VM Instance
First, create an EC2 Instance in your AWS account. Be sure to:
- create a Key Pair so that you could SSH in, or have some way to run setup commands inside of the instance
- ensure the instance belongs to a security group with sufficient inbound rules to allow HTTP requests on port 8000.

2. Setup Docker
Install Docker on the instance. Run the following commands to do so for an Amazon Linux Image:
After performing the last command, you will need to leave and return to the instance for the credentials to refresh.
3. Define your Workflow Server Image
Next, you’ll want to define a Docker Image locally that extends Vellum’s default image:
4. Build the image
Run the command below locally to build a Docker image from the Dockerfile
5. Push Workflow Server Image to ECR
Next, you’ll want to push the Docker Image to a container repository. For the purposes of this tutorial, we will use AWS Elastic Container Registry.
Ensure you are locally authenticated with AWS:
Start by authenticating Docker:
Create the ECR Eepository if it doesn’t exist:
Then push it to the Repository:
6. Pull Workflow Server Image from docker
Now we will pull the Docker Image you previously pushed into the standalone image. You will want to make sure that your EC2 has an IAM policy allowing it to pull from AWS ECR.
First login to docker:
Then pull the image:
7. Run the server!
Now that the image is in the EC2 instance, you can run the server with:
Two logs that you’ll want to see are one specifying Running with SDK version: 1.10.2 and one alerting that the server is Listening at: http://0.0.0.0:8000 to confirm
that the server is running properly
8. Execute the workflow!
There are some notable differences when invoking Workflows against the Vellum Workflow Server vs the traditional Vellum API. While we work to consolidate the two, you can use the following script to invoke it: