Introduction
A Virtual Private Server (VPS) gives you full control over your hosting environment — custom software, root access, and dedicated resources. By connecting a VPS to an is-pro.dev subdomain, you get a branded URL for your server with Cloudflare DNS management and optional DDoS protection. This guide covers the complete workflow: provisioning a VPS, setting up Nginx as a reverse proxy, securing it with SSL via Certbot, configuring your subdomain, and automating deployments with Git hooks.
Prerequisites
- A VPS from any provider (DigitalOcean, Linode, Vultr, Hetzner, or AWS EC2) with Ubuntu 22.04 or 24.04
- SSH access to your VPS with a root or sudo-enabled user
- An is-pro.dev subdomain registered at dash.is-pro.dev
- Basic familiarity with Linux command line and SSH
Step 1: Initial Server Setup
SSH into your VPS: ssh root@your-server-ip.
First, update the package manager:
apt update && apt upgrade -y. Create a non-root
user with sudo privileges: adduser deploy and
usermod -aG sudo deploy. Set up SSH key
authentication by copying your public key to the new user's
~/.ssh/authorized_keys. Disable password
authentication in /etc/ssh/sshd_config by setting
PasswordAuthentication no, then restart SSH:
systemctl restart ssh. Configure a basic
firewall:
ufw allow OpenSSH && ufw allow 'Nginx Full' && ufw
enable. This ensures only SSH and web traffic can reach your
server. Install Nginx: apt install nginx -y.
Step 2: Configure Nginx as a Reverse Proxy
Create a new Nginx server block for your subdomain:
nano /etc/nginx/sites-available/yourname.is-pro.dev. Configure it as a reverse proxy to your application. For
example, if your app runs on port 3000:
server { listen 80; server_name yourname.is-pro.dev;
location / { proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host; proxy_set_header X-Real-IP
$remote_addr; proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for; proxy_set_header
X-Forwarded-Proto $scheme; } }. Enable the site:
ln -s /etc/nginx/sites-available/yourname.is-pro.dev
/etc/nginx/sites-enabled/. Test the configuration: nginx -t. If OK,
reload Nginx: systemctl reload nginx. Your
application should now be accessible over HTTP at your VPS's
IP address.
Step 3: Configure DNS in is-pro.dev Dashboard
In the is-pro.dev DNS dashboard, add an A record pointing your subdomain to your VPS's IPv4 address. Add an AAAA record if your VPS has an IPv6 address. Set TTL to 60 seconds for initial testing. Important: for a VPS, you can use either proxied (orange cloud) or DNS-only (gray cloud) mode. Proxied mode hides your VPS IP and provides DDoS protection, but if your application uses WebSockets or custom protocols, you may need DNS-only mode or configure Cloudflare to allow WebSocket traffic. For most web applications with Nginx behind Cloudflare, proxied mode works well and adds security benefits.
Step 4: Obtain SSL Certificate with Certbot
Install Certbot and the Nginx plugin:
apt install certbot python3-certbot-nginx -y. Set
proxy mode to DNS-only (temporarily) for certificate issuance:
run certbot --nginx -d yourname.is-pro.dev.
Certbot will automatically modify your Nginx configuration to
use HTTPS. Follow the prompts to set up auto-renewal. After
the certificate is issued, you can switch the DNS record back
to proxied (orange cloud) mode if desired. Certbot sets up a
systemd timer for automatic renewal — verify it with
systemctl status certbot.timer. If you keep the
record proxied through Cloudflare, you can use Cloudflare's
Origin CA certificate instead of Let's Encrypt for end-to-end
encryption.
Step 5: Set Up Automatic Deployments with Git Hooks
Create a bare Git repository on your VPS for your application:
mkdir -p ~/app.git && cd ~/app.git && git init --bare. Create a post-receive hook:
nano hooks/post-receive. Add the following
script:
#!/bin/bash; GIT_WORK_TREE=/var/www/yourname git checkout
-f; cd /var/www/yourname && npm install && pm2 restart
app. Make it executable:
chmod +x hooks/post-receive. On your local
machine, add the VPS as a remote:
git remote add deploy
ssh://deploy@your-server-ip/home/deploy/app.git. Deploy by running git push deploy main. The
Git hook checks out the latest code, installs dependencies,
and restarts your application. This gives you a CI/CD-like
workflow without external services.
Step 6: Monitor and Maintain
Set up monitoring for your VPS: install
netdata or htop for real-time
resource monitoring, configure log rotation for Nginx and
application logs, set up automated backups with
rsync or rclone to offsite storage,
and configure fail2ban to block brute-force SSH attempts. Keep
your server updated with automatic security updates:
apt install unattended-upgrades && dpkg-reconfigure -plow
unattended-upgrades. Set up uptime monitoring for your subdomain using the
is-pro.dev monitoring tools or external services like
UptimeRobot.
Best Practices
- Use SSH keys only (disable password authentication) for server access
- Run applications as a non-root user with limited permissions
- Keep Nginx, Node.js, and all application dependencies updated
- Use environment variables for sensitive configuration — never hardcode credentials
- Set up swap space (2GB minimum) for memory-intensive applications
Conclusion
A VPS paired with an is-pro.dev subdomain gives you full control over your hosting stack. Nginx handles reverse proxying and static file serving, SSL certificates from Certbot encrypt traffic, Git hooks automate deployments, and your branded subdomain provides a professional URL. This setup is ideal for applications that need more than static hosting can provide.
FAQ
How much does a VPS cost compared to shared hosting?
VPS plans start around $4-6/month from providers like DigitalOcean, Vultr, or Hetzner. Shared hosting is cheaper but offers less control and performance.
Should I use Cloudflare proxied mode or DNS-only for my VPS?
Use proxied mode for web applications (HTTP/HTTPS) to get DDoS protection and IP hiding. Use DNS-only for non-HTTP services like SSH, game servers, or custom protocol applications.
What if my VPS IP changes?
Update the A record in your is-pro.dev DNS dashboard with the new IP. With Cloudflare DNS, propagation is nearly instant. Consider using a dynamic DNS service if your VPS provider frequently changes your IP.
FAQ
Is Deployment setup free on is-pro.dev?
Yes, all subdomains on is-pro.dev include free DNS management and SSL certificates.
How long does DNS take to propagate?
Cloudflare typically propagates DNS changes within seconds to a few minutes globally.
Can I use this for commercial projects?
Yes, is-pro.dev subdomains can be used for personal and commercial projects within our fair use policy.