What Is a Reverse Proxy?
A reverse proxy is a service that sits between users and your applications.
Instead of connecting directly to an application, users connect to the reverse proxy, which then forwards the request to the correct service.
For many homelab users, a reverse proxy becomes one of the most useful pieces of infrastructure once multiple applications are running.
The Problem Without a Reverse Proxy
When first starting with self-hosting, applications are often accessed directly using an IP address and port number.
Examples:
http://192.168.1.50:8096
http://192.168.1.50:8122
http://192.168.1.50:22300
http://192.168.1.50:3000
This works, but eventually creates problems:
- Port numbers become difficult to remember
- Every application requires a different URL
- HTTPS certificates become more complicated
- Exposing services to the internet becomes less manageable
- URLs do not look professional
How a Reverse Proxy Helps
A reverse proxy allows users to access services using domain names instead of IP addresses and ports.
For example:
https://jellyfin.example.com
https://vaultwarden.example.com
https://joplin.example.com
https://homeassistant.example.com
The reverse proxy receives the request and automatically sends it to the correct application behind the scenes.
Users never need to know the actual IP address or port number.
How It Works
A simplified example:
Internet User
│
▼
Reverse Proxy
│
┌────┼────┐
▼ ▼ ▼
Jellyfin
Vaultwarden
Joplin
The reverse proxy acts as a traffic manager.
Based on the requested hostname, it decides which application should receive the request.
Common Reverse Proxy Software
Popular reverse proxy options include:
- Caddy
- Nginx
- Nginx Proxy Manager
- Traefik
- HAProxy
All are capable solutions, but they have different strengths.
Why I Use Caddy
I use Caddy in my homelab because it is simple to configure and automatically manages HTTPS certificates.
A basic Caddy configuration can be as simple as:
vaultwarden.example.com {
reverse_proxy 192.168.1.50:8122
}
Caddy automatically:
- Obtains SSL certificates
- Renews certificates
- Serves HTTPS traffic
- Redirects HTTP to HTTPS
This removes a significant amount of manual configuration.
Reverse Proxies and HTTPS
One of the biggest advantages of a reverse proxy is HTTPS.
Without a reverse proxy, many services are accessed using unencrypted HTTP:
http://192.168.1.50:8122
With a reverse proxy:
https://vaultwarden.example.com
This provides:
- Encryption
- Improved security
- Browser trust
- Easier remote access
Reverse Proxies in a Homelab
A reverse proxy becomes increasingly valuable as the number of self-hosted services grows.
For example:
https://jellyfin.example.com
https://vaultwarden.example.com
https://joplin.example.com
https://homeassistant.example.com
https://immich.example.com
Rather than remembering multiple ports, everything becomes accessible through simple, predictable URLs.
My Current Approach
My current setup uses:
Cloudflare DNS
│
▼
Caddy Reverse Proxy
│
▼
Docker Applications
This provides:
- Friendly URLs
- Automatic HTTPS certificates
- Simple management
- Easy addition of new services
When I deploy a new application, I usually only need to:
- Create a DNS record
- Add a Caddy reverse proxy entry
- Restart or reload Caddy
The service is then immediately available using its own hostname.
Are Reverse Proxies Required?
No.
Many homelab users run applications entirely on their local network using IP addresses and ports.
However, once multiple services are deployed, a reverse proxy can significantly simplify access and management.
Conclusion
A reverse proxy is one of the most useful infrastructure components in a homelab.
It provides:
- Friendly domain names
- HTTPS support
- Centralized access management
- Easier internet exposure
- Cleaner URLs
For small homelabs, a reverse proxy may feel optional.
For larger self-hosted environments, it quickly becomes an essential part of the infrastructure.