Skip to main content
This guide walks you through building Caravanserai, starting all components, and deploying an nginx project from scratch.
1

Build the binaries

Clone the repository and run make build from the project root. This compiles all three binaries into the bin/ directory.
2

Start PostgreSQL

cara-server requires a PostgreSQL database. Start a local instance with Docker:
3

Start cara-server

Pass the PostgreSQL connection string via DATABASE_URL and start the control-plane server. It listens on 0.0.0.0:8080 by default.
4

Start cara-agent

On the same machine (or a different one), start the agent. Provide the server address with SERVER_URL and give the node a name with NODE_NAME.
The agent self-registers with cara-server and immediately begins polling for projects to reconcile.
5

Apply the nginx project manifest

Use caractrl apply to submit the example nginx project. Caravanserai schedules it onto the available node and the agent starts the container.
The manifest at examples/nginx-project.yaml looks like this:
nginx-project.yaml
6

Verify the project is running

List all projects to confirm nginx-demo reached the Running phase:
Expected output:
7

Inspect and clean up

Explore the cluster state and tear down the project when you are done.
The examples/ directory contains additional sample manifests, including a multi-service WordPress + MySQL project with volumes. Use them to explore more of what Caravanserai supports.