[1 HOUR WORKSHOP] Webserver Set-Up Progression (From Localhost to GCP With Caddy Webserver + Docker)

Опубликовано: 24 Февраль 2026
на канале: DevOps Directive
4,123
115

This workshop covers a learning progression from the simplest possible website running locally on your computer all the way to a production-grade web server running on Google Cloud Platform.

The focus is on how the website is being served (rather than the website itself).

Join the Community:
💬 Discord:   / discord  
💻 GitHub: https://github.com/sidpalas/devops-di...
🐥 Twitter:   / sidpalas  
👨‍💼 LinkedIn:   / sid-palas  
🌐 Website: https://devopsdirective.com

---

Timestamps:
1:30 - Workshop start
2:06 - Load file in Chrome
3:23 - Run Python development web server (locally)
4:47 - Access site via internal IP address via another device on the same network
6:44 - Install Caddy (locally)
7:03 - Run Caddy webserver (locally)
8:23 - Configure Caddy using Caddyfile
12:05 - Set up GCP Compute Engine Virtual Machine with Debian Linux
13:23 - Connect to VM via SSH
14:31 - Install Caddy (on VM)
16:04 - Run Caddy webserver (on VM)
17:11 - Configure firewall rule for port 80
18:46 - Explaining why we want to use a container
22:00 - Install Docker (locally)
23:18 - Run Python Docker image
24:23 - Docker exec into the container
26:00 - Run Python development web server (locally, inside container)
27:00 - Set up port forwarding to Python container
28:26 - Run Python development web server [Take 2] (locally, inside container)
29:27 - Find Caddy container image on DockerHub
30:35 - Run Caddy webserver (locally, inside container)
33:00 - Define Dockerfile
34:39 - Build custom Caddy container image
35:34 - Run custom Caddy webserver (locally, inside container)
36:05 - Modify and rebuild custom Caddy container
37:27 - Configure Docker to mount host filesystem
39:58 - Run Caddy web server with bind mounts (locally, inside container)
42:25 - Set up GCP Compute Engine Virtual Machine with Container Optimized OS
45:36 - Copy files to VM using gcloud scp
47:54 - Run Caddy web server with bind mounts (on VM, inside container)
50:22 - Configure domain DNS settings
52:22 - Configure Caddyfile for HTTPS
54:29 - Run Caddy web server with HTTPS (on VM, inside container)
55:36 - Accept Let's Encrypt terms of service
56:37 - Use environment variable to avoid TOS dialog
57:23 - Explaining why we also need to add a bind mount to save HTTPS certificate outside the container
58:28 - Showing https://github.com/sidpalas/hugo-gcp-...

---

Technologies used:
Python
Caddy (https://caddyserver.com/)
Docker (https://www.docker.com/)
Google Cloud Platform (Compute Engine)

---
Join the Community:
💬 Discord:   / discord  
💻 GitHub: https://github.com/sidpalas/devops-di...
🐥 Twitter:   / sidpalas  
👨‍💼 LinkedIn:   / sid-palas  
🌐 Website: https://devopsdirective.com