A) Domain Name
During installation, you'll be asked to point a wildcard DNS entry to your CapRover IP Address. If you need help with domain name, see Domain and DNS. This will cost you as low as $2 a year.
B) Server with a Public IP
Side note: You can install CapRover locally on your laptop on a private network which is behind NAT (your router). But if you want to enable HTTPS and/or access the apps from outside of your private network, it requires some special setup, like port forwarding.
In standard installation, CapRover has to be installed on a machine with a public IP address. If you need help with Public IP, see Server & Public IP address. This will cost you as low as $5 a month. If you use the DigitalOcean referral code, you'll get $10 credit - two months worth of free server: https://m.do.co/c/6410aa23d3f3
CPU Architecture: Although CapRover source code is compatible with any CPU architecture, the Docker build available on Docker Hub is built for x86 CPU. Therefore, If your CPU is ARM, you can download the source code and build it on your ARM architecture in order to run it.
Recommended Stack: CapRover is tested on Ubuntu 16.04 and Docker 17.06. If you're using CapRover on a different OS, you might want to look at Docker Docs.
Minimum RAM: Note that the build process sometimes consumes too much RAM, and 512MB RAM might not be enough (see this issue). Most providers offer a minimum of 1GB RAM on $5 instance including DigitalOcean, Vultr, Scaleway, Linode, SSD Nodes and etc.
C) Install Docker on Server (at least, version 17.06.x)
If you get your server from DigitalOcean, you can select a server with "pre-installed Docker". This will be the easiest option. Otherwise, you can install Docker CE by following this instruction
D) Disable Firewall
Some server providers have strict firewall settings. To disable firewall on Ubuntu:
ufw allow 80,443,3000,996,7946,4789,2377/tcp; ufw allow 7946,4789,2377/udp;
Step 1: CapRover Installation
Just run the following line, sit back and enjoy!
mkdir /captain && docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock caprover/caprover
You will see a bunch of outputs on your screen. Once the CapRover is initialized, you can visit
http://[IP_OF_YOUR_SERVER]:3000 in your browser and login to CapRover using the default password
captain42. You can change your password later. However, do not make any changes in the dashboard. We'll use the command line tool to setup the server.
Step 2: Connect Root Domain
Let's say you own
mydomain.com. You can set
*.something.mydomain.com as an
A-record in your DNS settings to point to the IP address of the server where you installed CapRover. Note that it can take several hours for this change to take into effect. It will show up like this in your DNS configs:
- TYPE: A record
- POINTS TO: (IP Address of your server)
- TTL: (doesn't really matter)
To confirm, go to https://mxtoolbox.com/DNSLookup.aspx and enter
randomthing123.something.mydomain.com and check if IP address resolves to the IP you set in your DNS. Note that
randomthing123 is needed because you set a wildcard entry in your DNS by setting
*.something as your host, not
Step 3: Install CapRover CLI
Assuming you have npm installed on your local machine (e.g., your laptop), simply run (add
sudo if needed):
npm install -g caprover
Follow the steps and login to your CapRover instance. When prompted to enter the root domain, enter
something.mydomain.com assuming that you set
*.something.mydomain.com to point to your IP address in step #2. Now you can access your CapRover from
Step 4: Deploy the Test App
Go to the CapRover in your browser, from the left menu select Apps and create a new app. Name it
my-first-app. Then, download any of the test apps here, unzip the content. and while inside the directory of the test app, run:
/home/Desktop/captain-examples/captain-node$ caprover deploy
Follow the instructions, enter
my-first-app when asked for app name. First time build takes about two minutes. After build is completed, visit
something.mydomain.com is your root domain.
CONGRATS! Your app is live!!
You can connect multiple custom domains (like
www.my-app.com) to a single app and enable HTTPS and do much more in the app's settings page.
Note that when you run
caprover deploy, the current git commit will be sent over to your server. IMPORTANT: uncommited files and files in
gitignore WILL NOT be sent to the server.
You can visit CapRover in the browser and set custom parameters for your app such as environment variables, and do much more! For more details regarding deployment, please see CLI docs. For details on
captain-definition file, see Captain Definition File.