Self-hosted Local Setup
This guide will teach you how to setup a self-hosted install of Deviceplane on your local network.
Two nodes on the same network are required to complete the quick start. Both nodes must be running Linux and have a recent version of Docker installed. Reference the standard quick start guide for information on how to install Docker.
The first node will run the Deviceplane backend. Only
x86 / amd64 is supported for this node. Docker for Mac can also be used as the backend node. You'll need to have the IP addess of this node handy for the remainder of this guide. We'll refer to this IP address as
The second node will run the Deviceplane agent and connect to the node running the Deviceplane backend.
The following steps will guide you through the setup process.
You can start Deviceplane on the backend node with the following command. View self-hosted overview for more information on the Deviceplane Docker image and what components are contained in it.
docker run -d --restart=unless-stopped -p 8080:8080 deviceplane/deviceplane
You'll be able to see the Deviceplane UI within a few minutes at
Follow along with the standard quick start guide to register and create a project. Note that you will not need to validate your email as you would with the managed version of Deviceplane.
Now that you have a user and project created in your setup you're ready to add a device. Go to the devices page, then click on "Add Device". The command that's generated needs to be modified slightly before it can be used. The command has multiple environment variables set such as
REGISTRATION_TOKEN. Another environment variable,
CONTROLLER, must be added to the command. The value of
CONTROLLER must be the IP address of your backend node with
/api appended (
For example, suppose the command was in the following format.
curl https://downloads.deviceplane.com/install.sh | VERSION=<version> PROJECT=<project> REGISTRATION_TOKEN=<registration_token> bash
The command should be modified to include
CONTROLLER=http://<backend_ip_address>:8080/api as in the following command.
curl https://downloads.deviceplane.com/install.sh | VERSION=<version> PROJECT=<project> REGISTRATION_TOKEN=<registration_token> CONTROLLER=http://<backend_ip_address>:8080/api bash
You should see a new device come online in the dashboard after running the command. From here you can follow along with the remainder of steps in the standard quick start to deploy your first application to your device.