Table of Contents


CapRover is an extremely easy to use app/database deployment & web server manager for your NodeJS, Python, PHP, ASP.NET, Ruby, MySQL, MongoDB, Postgres, WordPress (and etc...) applications!

It's blazingly fast and very robust as it uses Docker, nginx, LetsEncrypt and NetData under the hood behind its simple-to-use interface.

  • CLI for automation and scripting
  • Web GUI for ease of access and convenience
  • No lock-in! Remove CapRover and your apps keep working!
  • Docker Swarm under the hood for containerization and clustering
  • Nginx (fully customizable template) under the hood for load-balancing
  • Let's Encrypt under the hood for free SSL (HTTPS)

Caprover is a very cool management app for containers based on Docker Swarm.

It has following benefits :

  • easy to deploy apps (in seconds)
  • easy to create new apps
  • super good monitoring
  • can be extended over the TFGrid


  • You need an account on TF-Chain, and there needs to be TFT on the account (see getting started)
  • Make sure you have a wallet
  • Unlock your profile on profile manager, if already filled in before

Configs Tab

  • Enter domain for you Caprover instance, Be very careful about the domain name: it needs to be a wildcard domain name you can configure in your chosen domain name system.
  • Enter password for you Caprover instance.

Admin and Workers Tabs

 Note: Worker nodes only accept SSH keys of RSA format.

Deployment will take couple of minutes.

The Domain Name

  • e.g. I picked which is a domain name that will point to the ip address of the CapRover instance (which we only know after deployment).

Note how the * points to the public IPv4 address that has been returned from the deployment.

How to Know the IP Address

Go back to your CapRover weblet and go to the deployment list. Click on Show Details.

  • The public IPv4 address is visible in here
  • Now you can configure the domain name (see above, don't forget to point the wildcard domain to the public IP address)

Click on details if you want to see more details

    "version": 0,
    "name": "caprover_leader_cr_156e44f0",
    "created": 1637843368,
    "status": "ok",
    "message": "",
    "flist": "",
    "publicIP": {
        "ip": "",
        "gateway": ""
    "planetary": false,
    "yggIP": "",
    "interfaces": [
            "network": "caprover_network_cr_156e44f0",
            "ip": ""
    "capacity": {
        "cpu": 4,
        "memory": 8192
    "mounts": [
            "name": "data0",
            "mountPoint": "/var/lib/docker",
            "size": 107374182400,
            "state": "ok",
            "message": ""
    "env": {
        "SWM_NODE_MODE": "leader",
        "PUBLIC_KEY": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/9RNGKRjHvViunSOXhBF7EumrWvmqAAVJSrfGdLaVasgaYK6tkTRDzpZNplh3Tk1aowneXnZffygzIIZ82FWQYBo04IBWwFDOsCawjVbuAfcd9ZslYEYB3QnxV6ogQ4rvXnJ7IHgm3E3SZvt2l45WIyFn6ZKuFifK1aXhZkxHIPf31q68R2idJ764EsfqXfaf3q8H3u4G0NjfWmdPm9nwf/RJDZO+KYFLQ9wXeqRn6u/mRx+u7UD+Uo0xgjRQk1m8V+KuLAmqAosFdlAq0pBO8lEBpSebYdvRWxpM0QSdNrYQcMLVRX7IehizyTt+5sYYbp6f11WWcxLx0QDsUZ/J"
    "entrypoint": "/sbin/zinit init",
    "metadata": "",
    "description": "caprover leader machine/node"

How to Access the Admin Interface

  • make sure your public IP address (in my case is filled in in the domain name record.

admin url: (note prefix captain, and the usage of our wildcard domain).
The password is generated and visible behind the Show Details button of your CapRover deployment.

You should now see

How to Work with CapRover