When building projects one of the annoying parts is setting up stuff like web servers, relational databases, caching, etc. It’s often expensive (Heroku charges $25/month for their 1GB instance, the same server is 5/month on DigitalOcean) or tedious to set up and manage. I no longer enjoy spending hours and days setting up a server, building tools, sending code to the server, building it, getting an SSL certificate, installing it, update nginx over and over again whenever I have a new project.
That’s where open-source PAASs came in. They often have an extremely easy-to-use app/database deployment & web server manager. Examples:
For example, with CapRover, you can host the below with one click:
I’ll be using the free virtual machine (
Create an Ubuntu instance from the
Add firewall rules to allow network traffic from the following:
In case of an ubuntu server, run
ufw allow 80,443,3000,996,7946,4789,2377/tcp; ufw allow 7946,4789,2377/udp;
Your VPS provider may have a different way to configure the firewall.
In the case of GCP, we can create firewall rules from the
Note that I’ve created a network tag
caprover that we’ll use next.
caprover network tag.
SSH into the VM and install Docker.
This can be done using the get
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Run the following to install CapRover:
sudo docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover
NOTE: do not change the port mappings. CapRover only works on the specified ports.
You will see a bunch of outputs on your screen. Once the CapRover is initialised, you can visit
http://[IP_OF_YOUR_SERVER]:3000 in your browser and log in 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 set up the server.
Let's say you own
*.something.mydomain.com as an
A-record in your DNS settings to point to the IP address of the server where you installed CapRover.
Find more info
npm install -g caprover
Run the following on your local machine:
Follow the steps and log in 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 #Set up DNS. Now you can access your CapRover from
captain.something.mydomain.com and log in.
Visit the CapRover dashboard at
http://captain.something.mydomain.com and log in using the password you set up in the above step.