CLOUD
Guides

VPS for Developers: Setting Up a Professional Development Environment

CLOUD|September 14, 2025|5 min read|593 views
VPS for Developers: Setting Up a Professional Development Environment

Git + Docker + CI/CD + staging environment. We explain how to turn a VPS into a productive development environment — step by step.

Why VPS and Not Shared Hosting or PaaS?

As a developer, you need an environment with full control: install any library, run any service, configure any setting. Shared hosting restricts you to cPanel and fixed configurations. PaaS platforms like Heroku or Railway abstract the details but at higher cost and lower flexibility. A VPS gives you a full Linux server with root access — you decide everything.

Setting Up Your Development Environment in 15 Minutes

Step 1: Choose the Right Plan

Project Type Recommended Plan Annual Price
Simple API / personal project Base (1 vCPU / 2GB) competitive pricing — pricing and plans
Full web application Growth (2 vCPU / 4GB) competitive pricing — pricing and plans
Multiple projects + Docker Business (4 vCPU / 8GB) competitive pricing — pricing and plans
AI / ML / big data Enterprise (8 vCPU / 16GB) competitive pricing — pricing and plans

At CLOUD, activation takes 60 seconds. Choose your OS (Ubuntu 22.04/24.04 most common) and get your IP + root password immediately.

Step 2: Basic Security

First 5 minutes after activation:

  1. Update the system — apt update && apt upgrade
  2. Create a regular user with sudo privileges
  3. Copy your SSH key to the new user
  4. Disable root SSH login and disable password authentication
  5. Enable UFW — allow only ports 22, 80, and 443

Step 3: Install Essential Tools

Tools every developer needs:

  • Git — code management
  • curl / wget — file downloads
  • htop — resource monitoring
  • tmux / screen — multiple SSH sessions
  • unzip / tar — archive extraction

Language-Specific Setup

Node.js

  • Install nvm (Node Version Manager) — allows running multiple Node versions
  • Install the current LTS version
  • Use PM2 to run applications in the background with automatic restart

Python

  • Do not use the system Python — install pyenv
  • Create a virtual environment (venv) for each project
  • Use gunicorn or uvicorn as the application server

PHP (Laravel)

  • Install PHP 8.3 with required extensions: mbstring, xml, curl, mysql, zip, bcmath
  • Install Composer
  • Use Nginx + PHP-FPM (faster than Apache + mod_php)

Go / Rust

  • Install from the official source (do not rely on repository packages — usually outdated)
  • Compile the application and run it as a systemd service

Docker: A Unified Environment for Everything

Docker solves the "works on my machine" problem permanently. On a KVM-based VPS (like CLOUD), Docker runs fully without restrictions.

Docker Essentials on VPS

  • Docker for running individual containers
  • Docker Compose for running multiple services together (app + database + Redis)
  • Nginx Proxy Manager or Traefik as reverse proxy for multiple applications on the same server

Example: Complete Application Stack

A typical web application needs:

Service Function Approximate RAM
Nginx Reverse proxy + SSL 50MB
Application (Node/PHP/Python) Business logic 200-500MB
PostgreSQL / MySQL Database 500MB-2GB
Redis Cache + sessions 100MB
Total ~1-3GB

This means the Growth plan (4GB) suffices for one complete application, and the Business plan (8GB) accommodates 2-3 applications.

CI/CD: Automated Deployment

Using GitHub Actions

  1. Connect your GitHub repository to the server via SSH key
  2. Create a workflow triggered on every push to the main branch
  3. Steps: pull new code, install dependencies, build application, restart service

Using a Simple Webhook

If you do not need full CI/CD:

  1. Create a simple endpoint on the server that receives webhooks from GitHub
  2. On notification: git pull, then rebuild and restart

Advanced Deployment Tools

Tool Best For
Deployer (PHP) Laravel projects — zero-downtime deployment
Capistrano Ruby/Rails projects
Kamal (Docker) Any Docker application
Coolify Open-source Heroku alternative (self-hosted on VPS)

Databases

Choosing the Right One

Database Best For
PostgreSQL Complex applications, geospatial data, JSON
MySQL/MariaDB Traditional web applications, your website
SQLite Small projects, lightweight APIs
MongoDB Unstructured data, rapid prototyping
Redis Caching, sessions, queues

Database Security Tips

  • Do not allow external connections — localhost only
  • Change the default port
  • Create a dedicated user for each application with limited privileges
  • Enable automatic backups

Free SSL/HTTPS

Let's Encrypt provides free SSL certificates. Use Certbot to obtain and automatically renew your certificate. Steps:

  1. Install Certbot
  2. Point your DNS to the server IP address
  3. Run Certbot with Nginx
  4. Automatic renewal every 90 days via cron job

Monitoring for Developers

Tool Free Function
Netdata Yes Comprehensive real-time monitoring dashboard
UptimeRobot Yes (50 sites) External monitoring + alerts
Sentry Yes (limited) Application error tracking
Grafana + Prometheus Yes Custom monitoring dashboards

Real-World Tips

  1. Always use Git — even if you are working solo. Track every change.
  2. Never edit code directly on the server — edit locally, push to Git, deploy.
  3. Enable backups from day one — disasters do not wait.
  4. Document every configuration — create a README or script that rebuilds the environment from scratch.
  5. Use .env for sensitive variables — never put passwords in code.

Start Now

Sign up at CLOUD (cloud.net.sa), choose the Base plan at competitive pricing — pricing and plans (under 10 SAR/day), and your server is ready in 60 seconds. Full KVM, root access, SSD storage, and very low latency from Riyadh. If you need help setting up your environment, the CLOUD team provides free developer guidance meetings.


Get Started

Ready to build your project? Configure your cloud server with the specs your app needs, or view plans and pricing.

Share