30 lessons about 6 hoursStarts at: Beginner

VPS & Server Deployment

Thirty steps from creating a VPS to a production checklist: SSH keys, firewalls, Nginx, databases, HTTPS, backups, monitoring and rollbacks.

Start with lesson 1
Your progress on this device0/30 (0%)

Lessons in order

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 06Beginner 11 min

    Creating a Deploy User

    Set up a personal sudo account and a dedicated application account, and stop doing everything as root.

  7. 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.

  8. 08Beginner 11 min

    Server Updates

    Apply updates safely, automate security patches, and handle the reboots that kernel updates require.

  9. 09Beginner 11 min

    Firewall Setup

    Configure ufw and your provider security group so only the ports you need are reachable, safely.

  10. 10Beginner 11 min

    Installing Node.js

    Install a specific Node.js version properly, manage versions per project, and prepare for a production deployment.

  11. 11Beginner 11 min

    Installing Python

    Get the Python version your application needs without breaking the system Python, and set up a project environment properly.

  12. 12Intermediate 12 min

    Installing PHP

    Set up PHP-FPM behind Nginx, choose the right extensions, tune the process pool, and enable OPcache for production.

  13. 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.

  14. 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.

  15. 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.

  16. 16Intermediate 12 min

    Nginx as a Reverse Proxy

    Put your application behind Nginx: localhost binding, forwarded headers, timeouts, static files and health checks.

  17. 17Beginner 11 min

    Environment Variables and Secrets

    Get configuration and credentials to your application safely: env files, systemd, permissions and rotation.

  18. 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.

  19. 19Intermediate 15 min

    Deploying Python and FastAPI

    Run a Python web application in production: worker model, systemd service, migrations, static files and graceful restarts.

  20. 20Intermediate 14 min

    Deploying Laravel and PHP

    Deploy PHP properly: directory permissions, config and route caching, migrations, queue workers and the FPM reload.

  21. 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.

  22. 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.

  23. 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.

  24. 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.

  25. 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.

  26. 26Intermediate 13 min

    Database Backups

    Back up your database properly: consistent dumps, encryption, offsite storage, retention, and a restore you have actually tested.

  27. 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.

  28. 28Intermediate 14 min

    Server Hardening

    Consolidate the security work: SSH, firewall, updates, least privilege, fail2ban, file integrity and knowing what is exposed.

  29. 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.

  30. 30Intermediate 14 min

    Production Checklist

    The complete list to work through before real users arrive, covering security, reliability, deployment, monitoring and recovery.

Other tracks