Web Server Deployment Pattern (Beginner)#
What Was Established#
For a beginner-friendly, lightweight, and scalable homelab setup, a stack consisting of Ubuntu Server LTS and Nginx is the recommended standard. This provides a balance of ease of use, extensive documentation, and low resource overhead.
Key Decisions#
- Operating System: Ubuntu Server LTS (chosen for stability, community support, and ease of management).
- Web Server: Nginx (chosen over Apache for being lightweight, faster for static content, and better suited for future use as a reverse proxy).
- Resource Allocation (Small Site): 1-2 CPU cores, 1-2 GB RAM, 10-2/GB Disk.
Current Configuration#
Nginx Site Configuration#
Default root directory: /var/www/html
To update the site configuration:
sudo nano /etc/nginx/sites-available/defaultEnsure the root directive is set:
root /var/www/html;Permissions#
After uploading files via scp or rsync, ensure the web user owns the files:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/htmlSSL/TLS (Let’s Encrypt)#
To secure the site with Certbot:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginxHistorical Notes#
This pattern was established in March 2025 as the baseline for new web services in the lab.
Related Pages#
Proxmox ZFS Storage & Installation Patterns, Nginx vs Apache for Static Hosting
Sources#
ingested/chats/012-Setting Up Self-Hosted Website on Proxmox.md