Skip to content


The bash and docker providers allow workflows to host applications.

To do that, you have to pass the number of ports (that you want to expose) to the ports property.

Here's a workflow that launches a FastAPI application.

  - name: hello-fastapi
    provider: bash
    ports: 1
      - pip install fastapi uvicorn
      - uvicorn hello_fastapi:app --port $PORT_0 --host
   from fastapi import FastAPI

   app = FastAPI()

   async def root():
       return {"message": "Hello World"}


The actual port numbers will be passes to the workflow via environment variables PORT_0, PORT_1, etc.

Don't forget to use as the hostname.