Overview
One of the biggest goals of my homelab was being able to access my services from anywhere while keeping everything secure.
Instead of accessing services by IP address and port numbers, I wanted clean URLs with HTTPS.
For example:
- photos.afcomp.com
- afcomp.com
The Problem
When hosting services at home, there are several challenges:
- Changing public IP addresses
- Secure remote access
- SSL certificates
- Managing multiple services
A reverse proxy solves many of these problems.
My Solution
I used:
- Cloudflare for DNS management
- Nginx Proxy Manager for reverse proxying
- Let's Encrypt certificates for HTTPS
The traffic flow looks like this:
Internet
|
Cloudflare DNS
|
Home Router
|
Nginx Proxy Manager
|
Docker Services
Instead of exposing every application directly, Nginx Proxy Manager receives incoming traffic and routes it to the correct service.
Port Forwarding
I configured my router to forward:
- HTTP traffic
- HTTPS traffic
to my Nginx Proxy Manager instance.
The proxy then handles the routing internally.
Security Considerations
When making services available publicly, security is important.
Some things I focus on:
- HTTPS everywhere
- Strong passwords
- Keeping containers updated
- Avoiding unnecessary exposed ports
- Using VPN access when possible
Lessons Learned
This project helped me understand how websites and applications are actually delivered.
It taught me about:
- DNS
- IP addresses
- Reverse proxies
- SSL certificates
- Internet routing
These are concepts that are used everywhere in professional IT environments.