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:
Requirements:
Good providers:
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.
From the 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
Sample output:
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 mydomain.com
. 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.
Find more info
npm install -g caprover
Run the following on your local machine:
caprover serversetup
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.