This page describes how to run Cuttlefish on an on-premise server. To run Cuttlefish on an on-premise server, you must use the Cuttlefish Docker image and the Cloud Orchestrator web service.
The Cuttlefish Docker image includes all the required dependencies for launching Cuttlefish in a container. This Docker image lets you set up the infrastructure for running Cuttlefish instances remotely on different host environments and lets you launch Cuttlefish independently from your host machine's setup, for example OS variant (Debian, Linux), OS version, architecture variant (x86_64, ARM64), and other installation dependencies.
The
Cloud Orchestrator
is a web service for hosting VMs or containers that you can run Cuttlefish on.
cvdr
is a client-side command line interface for interacting with the Cloud
Orchestrator.
Server requirements for running Cuttlefish instances
The server requirements (for example, CPU and memory requirements) for running Cuttlefish instances depends on the number of Cuttlefish instances running at the same time and the amount of resources each instance uses. For example, to run 40 Cuttlefish instances, which each use 4 CPU cores and 8 GB of RAM, the server requires at least 160 cores and 320 GB of RAM. If using graphical acceleration, GPUs are also required.
For reference, the Cuttlefish team uses an on-premise ARM server setup for running Cuttlefish hybrid devices. To run 40 CHD instances at the same time, the team uses 128 cores (we use ARM v8.2 but you can use the latest version) and 512 GB of RAM.
Set up an on-premise server for running Cuttlefish
To set up an on-premise server for running Cuttlefish, follow the instructions in Activate cloud orchestrator at on-premise server. These instructions describe how to run Cloud Orchestrator, which downloads and runs the Cuttlefish Docker image as a host.
Use
cvdr
to interact with Cloud orchestrator to create, delete, and list hosts and
Cuttlefish instances.
Download the Cuttlefish Docker image
To download the Cuttlefish Docker image, follow the instructions in android-cuttlefish/docker/README.md on GitHub.