🌐 Setting Up My Home Web Server

Walkthrough of my self-hosted portfolio website

🎯 Project Overview

This guide details the steps I took to set up my home web server infrastructure, including server installation, dynamic DNS setup, SSL certificate configuration, and more.

🏗️ Network Architecture

InternetRouterHome ServerMy Portfolio Website

📱 Phones • 💻 Laptops • 🖥️ Desktop PCs

Key Features

  • Secure SSL Certificates: Automated SSL certificate generation and renewal with Let's Encrypt.
  • Dynamic DNS: Keeps the website accessible even with changing IP addresses.
  • Backup & Monitoring: Automated backup system and server health monitoring.
  • Custom Domain: Set up routing for a custom domain for better accessibility.

🛠️ Hardware & Software Used

Hardware

  • Home Server
  • Raspberry Pi
  • 1TB SSD
  • Router with port forwarding capabilities

Software Used

  • Nginx (Reverse Proxy)
  • Let's Encrypt (for SSL Certificates)
  • Dynamic DNS Service (e.g., DuckDNS)
  • Bash Scripts for Automation

🚀 Setting Up the Home Server

1 Installed Pi-hole on Home Server

First, I installed the latest stable version of Pi-hole on the home server and performed an initial system update:

2 Installed Nginx

I installed **Nginx** to serve the website and act as a reverse proxy for the Java backend:

3 Set Up SSL with Let's Encrypt

Used **Certbot** to automatically generate and install SSL certificates for secure HTTPS connections:

Set up automatic certificate renewal to avoid manual intervention:

Lessons Learned

I learned how to...