Self-Hosted

Shiper Self-Hosted Instances

A Shiper self-hosted instance feels like a combination of a GitHub self-hosted runner and a Cloudflare tunnel, providing a seamless and secure way to deploy applications directly to your server. With Shiper Self Hosted Instances, you can deploy an application to your server and expose it to the internet without needing to open any firewall ports.

How it works

Shiper Self Hosted Instances work by running a small agent on your server that connects it to Shiper. After an image of your application was build in the cloud it will be deployed to your server as a docker container. Then you can add domains and configure your app as usual.

Setup

Before you begin with this guide make sure you have Docker installed on the server you want to connect to shiper. Minimal required Docker version is 25.0.

Install Docker for Ubuntu, by following the official Docker documentation (opens in a new tab).

First of all, you need to create a new self-hosted instance in the Shiper dashboard (opens in a new tab). After that, you will be provided with a command that you need to run on your server. This command will install the Shiper agent on your server and connect it to your Shiper account.

The command will look something like this:

# Replace YOUR_KEY with the key provided in the Shiper dashboard when creating a new self-hosted instance
docker run -d -e API_KEY=YOUR_KEY --restart always -v /var/run/docker.sock:/var/run/docker.sock shiperapp/connecter:latest

After running the command, your server will be connected to Shiper and it should now show up as Connected in the dashboard.

Connected Self Hosted Instance

You have now successfully connected your server to Shiper and you can start deploying applications to it.

Deploying an application to your instance

When creating a new project you can now enable Use Self-Hosted Instance under Advanced Settings and select the instance you want to deploy to.

Removing a self-hosted instance

To remove a self-hosted instance first delete the instance from your account in the Shiper dashboard (opens in a new tab). This will not remove the agent from your server, you will have to manually remove the agent from your server.