Skip to content


This tutorial will guide you through the steps needed to install and run a self-hosted instance of ShellHub on your local machine or on IaaS providers like AWS, Azure, Google Cloud or Digital Ocean.

ShellHub Cloud

If you prefer to use the cloud hosted service of ShellHub instead of self-hosting your own instance, you can skip this step and go to next step for creating an account in ShellHub Cloud.

ShellHub is designed using the microservices design pattern, so that multiple small and isolated services collaborate to provide the server. In order to make it easier to test ShellHub and its features, we have created a Docker Compose environment that brings all of these components up and connects them together on a single machine.

System Requirements

Before continuing, make sure:

  • Docker Engine and Docker Compose are installed properly.
  • Following ports are open: TCP 80 and TCP 22.

Checkout the latest stable version

First checkout the latest stable version (v0.9.1) of ShellHub as follows:

git clone -b v0.9.1 shellhub

Now navigate to ShellHub working directory:

cd shellhub

Generate keys

It is required to generate a key pair (private and public) for your ShellHub server instance.

make keygen


make start

Be patient, it can take up to 10 minutes for the first time

When ShellHub server is up and running, you access the Web UI on http://localhost.

When running in production you should ensure that you enable SSL

This is commonly achieved by running Nginx with your certificates on your Docker host, service or load balancers in-front of the running container.

Next steps

  1. Creating account for creating the initial user
  2. Registering a device for registering your first device
  3. Connecting to a device for connecting to your device