VPS & Server Deployment
Thirty steps from creating a VPS to a production checklist: SSH keys, firewalls, Nginx, databases, HTTPS, backups, monitoring and rollbacks.
Lessons in order
- 01Beginner 11 min
What Is a VPS?
A rented slice of a real machine with full root access. What you get, what you are responsible for, and how to size one.
- 02Beginner 10 min
VPS vs Shared Hosting
What shared hosting gives you, where it stops being enough, and how to tell which side of the line your project is on.
- 03Intermediate 12 min
VPS vs Serverless
When paying per request beats paying per month, what cold starts and execution limits mean in practice, and how to choose.
- 04Beginner 11 min
Creating a VPS
The choices you make when creating a server and why they matter: region, size, operating system, SSH key and initial access.
- 05Beginner 11 min
Connecting Over SSH
Your first connection to a new server: verifying the host key, checking what is running, and the immediate next steps.
- 06Beginner 11 min
Creating a Deploy User
Set up a personal sudo account and a dedicated application account, and stop doing everything as root.
- 07Beginner 12 min
SSH Keys on the Server
Install your key, disable password authentication, and add a separate deployment key that can be revoked independently.
- 08Beginner 11 min
Server Updates
Apply updates safely, automate security patches, and handle the reboots that kernel updates require.
- 09Beginner 11 min
Firewall Setup
Configure ufw and your provider security group so only the ports you need are reachable, safely.
- 10Beginner 11 min
Installing Node.js
Install a specific Node.js version properly, manage versions per project, and prepare for a production deployment.
- 11Beginner 11 min
Installing Python
Get the Python version your application needs without breaking the system Python, and set up a project environment properly.
- 12Intermediate 12 min
Installing PHP
Set up PHP-FPM behind Nginx, choose the right extensions, tune the process pool, and enable OPcache for production.
- 13Intermediate 13 min
Installing MySQL or PostgreSQL
Install a database, create an application user with limited rights, bind it safely, and apply the settings that matter on a small server.
- 14Beginner 12 min
Installing and Configuring Nginx
Install Nginx, set up a site, serve static files and get the default configuration into a sensible production state.
- 15Beginner 11 min
Pointing a Domain at Your Server
Create the records that connect your domain to your server, verify them, and plan the TTL so changes take effect quickly.
- 16Intermediate 12 min
Nginx as a Reverse Proxy
Put your application behind Nginx: localhost binding, forwarded headers, timeouts, static files and health checks.
- 17Beginner 11 min
Environment Variables and Secrets
Get configuration and credentials to your application safely: env files, systemd, permissions and rotation.
- 18Intermediate 15 min
Deploying Node.js and Next.js
A complete deployment: release directories, building, a systemd service, Nginx in front, and switching versions atomically.
- 19Intermediate 15 min
Deploying Python and FastAPI
Run a Python web application in production: worker model, systemd service, migrations, static files and graceful restarts.
- 20Intermediate 14 min
Deploying Laravel and PHP
Deploy PHP properly: directory permissions, config and route caching, migrations, queue workers and the FPM reload.
- 21Intermediate 12 min
PM2 for Node Applications
Keep Node applications running with PM2: cluster mode, zero-downtime reloads, log management, and when systemd is the better choice.
- 22Intermediate 13 min
Running Your App as a systemd Service
A production-ready unit file: restart policy, graceful shutdown, resource limits, security hardening and log access.
- 23Beginner 12 min
HTTPS with Let's Encrypt
Get a free certificate, configure Nginx correctly, automate renewal, and verify that it will not expire silently.
- 24Beginner 11 min
Logs on a Production Server
Find the right log quickly during an incident, keep logs from filling the disk, and decide what to retain.
- 25Beginner 11 min
Scheduled Jobs on a VPS
Schedule backups, cleanups and reports so they actually run, do not overlap, and tell you when they fail.
- 26Intermediate 13 min
Database Backups
Back up your database properly: consistent dumps, encryption, offsite storage, retention, and a restore you have actually tested.
- 27Intermediate 13 min
Monitoring Your Server
Know before your users do: uptime checks, resource monitoring, application metrics and alerts that are worth waking up for.
- 28Intermediate 14 min
Server Hardening
Consolidate the security work: SSH, firewall, updates, least privilege, fail2ban, file integrity and knowing what is exposed.
- 29Intermediate 13 min
Deployment Rollback
Make rollback a routine, fast operation: release symlinks, backwards-compatible migrations, and knowing when to roll back rather than fix forward.
- 30Intermediate 14 min
Production Checklist
The complete list to work through before real users arrive, covering security, reliability, deployment, monitoring and recovery.