//nbkelley /homelab

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/default

Ensure 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/html

SSL/TLS (Let’s Encrypt)#

To secure the site with Certbot:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx

Historical Notes#

This pattern was established in March 2025 as the baseline for new web services in the lab.

Proxmox ZFS Storage & Installation Patterns, Nginx vs Apache for Static Hosting

Sources#

  • ingested/chats/012-Setting Up Self-Hosted Website on Proxmox.md