Install CapRover on Debian 11

This tutorial will teach you how to install CapRover on Debian 11 and configure your own Platform as a service(PaaS). CapRover is a platform that enables you to deploy apps, databases and web servers. Some of the applications supported are MongoDB, Postgres, Node.js, PHP, and Ruby.

CapRover is just like Heroku, AWS Elastic Beanstalk and Google App engine. With it it, you can to develop and run applications on the cloud. The services such are Heroku are expensive with application scalability. That is why CapRover is the best alternative.

CapRover is free and even has pre-built application repository allowing you to can install these applications through one click. It should be noted that CapRover runs Nginx, LetsEncrypt, Docker and NetData.

Most tutorials will show you how to install CapRover on the cloud which is simple but not on a local machine. This tutorial is specifically meant to show how to install CapRover on Debian 11 locally.


Ensure you have Docker installed before you install CapRover on Debian 11. Root privileges and stable internet are needed too.

In case you already have docker installed, proceed to step 2. You need Docker version 17.06.x and above installed.

Step 1: Install Docker

  • Update the system:
sudo apt update
  • Install curl if not installed:
sudo apt install curl
  • Install packages to allow apt to use a repository over HTTPS:
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
  • Add Docker’s official GPG key:
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • Setup a stable repository:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • Update the system packages once more.
sudo apt update
  • Install the latest Docker.
sudo apt-get install docker-ce docker-ce-cli docker-compose-plugin
  • Check the version.
docker version
Client: Docker Engine - Community
 Version:           20.10.16
 API version:       1.41
 Go version:        go1.17.10

Step 2: Verify Root domain

CapRover user http://captain.captain.localhost as the root domain. So ensure CapRover resolvers captain.captain.localhost to your local machines IP address.

Execute the command below. You should see answer section showing your local system’s IP address, in my case, my system does not resolve the domain to my IP address

dig @ randomstring123.captain.localhost

; <> DiG 9.16.27-Debian <> @ randomstring123.captain.localhost
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 22064
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

; EDNS: version: 0, flags:; udp: 512
;randomstring123.captain.localhost. IN	A

.			84746	IN	SOA 2022051900 1800 900 604800 86400

;; Query time: 224 msec
;; WHEN: Thu May 19 13:07:22 EDT 2022
;; MSG SIZE  rcvd: 137

To fix this, add DNS wildcard record using dnsmasq.

  • Check if dnsmasq by typing the command
which dnsmasq
  • If a path is printed, it is installed. Otherwise, it is not. So install it.
sudo apt -y install dnsmasq
  • Start and enable dnsmasq
sudo systemctl enable --now dnsmasq 
  • Edit /etc/dnsmasq.conf add the configuration below. Replace with your IP address.
#add the line
  • Reload dnsmasq
sudo systemctl restart dnsmasq
  • Check if the configuration works using dig utility:
dig @ randomstring123.captain.localhost

; <> DiG 9.16.27-Debian <> @ randomstring123.captain.localhost
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6285
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

; EDNS: version: 0, flags:; udp: 4096
;randomstring123.captain.localhost. IN	A

randomstring123.captain.localhost. 0 IN	A

;; Query time: 4 msec
;; WHEN: Fri May 20 03:47:47 EDT 2022
;; MSG SIZE  rcvd: 78

You will see the answer section resolves the domain to That means you everything is set to install CapRover on Debian 11.

Step 3: Install CapRover on Debian 11

  • Create a new directory data to store the configurations:
sudo mkdir -p /captain/data/
  • Create configurations in the above folder to enable installation of CapRover locally. Just be sure to execute the commands below as a root user.
echo  "{\"skipVerifyingDomains\":\"true\"}" > /captain/data/config-override.json 
  • Install CapRover on Debian 11. Replace MAIN_NODE_IP_ADDRESS with your IP address
docker run -e MAIN_NODE_IP_ADDRESS= -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover
  • Note that for local connection, CapRover needs port 80 is for HTTP connections, 443 for secure HTTPS connections and 3000 for initial Captain installation.

Step 4: Accessing CapRover web interface

Open your browser and type your URL: http://local.machine.IP.address:3000 in my case, Don’t use https locally because it won’t work.

The login screen loads as below. Enter the default password, captain42 and click login.

CapRover dashboard launches:

Change the default password. Click on Settings and scroll to the end, enter new password and click on change password

Step 5: Deploying applications/Databases

Install a new app or existing apps/database via one click, i.e. phpMyAdmin

Click on the Apps tab. Choose one-click Apps/Databases. Let the wizard to finish loading.

Search for phpMyAdmin and click on the option with phpMyAdmin icon.

Input app name for example, my-app

Click on Finish to complete the installation:

phpMyAdmin app is now available in your apps. Click on the link shown below to open your phpMyAdmin in a new tab.

PhpMyAdmin loads:


That is the end this tutorial. I’m sure you have found out to Install CapRover on Debian 11 being simple and straightforward. Now that you have CapRover installed, find more on CapRover Documentation

More interesting tutorials

Install vnStat network traffic monitor on Debian 11

Install WPS Office on Debian 11/Debian 10

Install and Configure VNC server on Debian 11

Android Developer | Linux | Technical Writer | Backend Developer

Leave a Comment