Manual Deployment
Manual deployment of Rivet is meant for advanced use cases. For a simpler solution, try our Docker Compose.
Get started faster with a single container
If you're deploying Rivet on a single machine or just want to try it, Rivet
can be started with a single docker run
command. See Single Container
Deployments for more information.
Prerequisites
Architecture overview
Core cluster:
- Contains hardware running the Rivet server as well as databases.
Edge server:
- Contains hardware running the Rivet client.
Core Cluster Setup
- Clone repo
-
Setup prerequisites
This guide assumes you have the following already running in your core cluster:
- CockroachDB
- ClickHouse
- Redis
- S3 (any compatible provider)
- NATS
- Vector
-
Setup the Rivet server config with your existing components:
rivet.yaml -
Build and run the Rivet server docker container:
Command LineCommand Line
Once running, you can visit the dashboard at http://localhost:8080.
Edge Server Setup
- Clone repo
-
Setup Prerequisites
This guide assumes you already have FoundationDB running on the edge.
-
Setup the Rivet client config:
rivet.yamlCurrently, only the "isolate" flavor is supported for self hosting.
-
Build and run the Rivet client docker container:
Command LineCommand Line
Test deployment
To test creating an actor end-to-end, run:
You should see an actor in the actor list in the dashboard.
Core Cluster <-> Edge Server
Communication between the core and edge should be handled via secure mTLS encrypted tunnels. Some common solutions:
- Cloudflare Tunnels
- common VLAN
- Tailscale
- Wireguard
Rivet Guard
The Rivet Guard system is currently unavailable with a manual deployment. Coming soon!
Caveats
Manual deployment currently only supports host networking and host ports.
Read more about host networking and ports here.