nginx proxy manager

How to Set Up Nginx Proxy Manager for Your Home Lab

If you’re running multiple self-hosted services on your home network, keeping track of ports and IP addresses gets messy fast. A proper Nginx Proxy Manager setup solves this by giving every service a clean domain name, automatic HTTPS, and a simple web dashboard to manage it all — no manual Nginx config files required.

What Is Nginx Proxy Manager?

Nginx Proxy Manager (NPM) is a Docker-based application that provides a friendly web interface on top of Nginx’s reverse proxy capabilities. Instead of manually editing server blocks and renewing SSL certificates by hand, NPM lets you add new proxy hosts, request free Let’s Encrypt certificates, and manage redirects entirely through a browser-based dashboard.

Why Homelab Users Love It

  • One domain per service – instead of remembering 192.168.1.50:8096 for Jellyfin, you can access it at jellyfin.yourdomain.com
  • Automatic HTTPS – built-in Let’s Encrypt integration means valid SSL certificates with just a few clicks
  • Centralized management – all your proxy hosts, redirects, and access lists live in one dashboard
  • Access control lists – restrict certain services to specific IP ranges or require basic authentication

Installing Nginx Proxy Manager with Docker Compose

Create a docker-compose.yml file with the following structure:

yaml

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Then start the container:

docker compose up -d

Accessing the Dashboard

Once running, open a browser and navigate to http://your-server-ip:81. The default login credentials are provided in NPM’s documentation and should be changed immediately after your first login for security.

Adding a Proxy Host

  1. Click Proxy Hosts → Add Proxy Host.
  2. Enter the domain name you want to use (e.g., jellyfin.yourdomain.com).
  3. Set the Scheme, Forward Hostname/IP, and Forward Port to match the internal service you’re proxying.
  4. Switch to the SSL tab, choose Request a new SSL Certificate, and enable Force SSL.
  5. Click Save — NPM handles the certificate request and Nginx configuration automatically.

DNS Requirements

For this to work with a real domain, you’ll need either a public domain pointed at your home IP (with port forwarding configured), or a local DNS setup like Pi-hole with custom DNS records if you only want access within your home network without exposing anything publicly.

Final Thoughts

A solid Nginx Proxy Manager setup turns a chaotic list of IP addresses and ports into a clean, professional-feeling homelab with proper domain names and valid HTTPS certificates. It’s one of the highest-impact tools you can add once you’re running more than two or three self-hosted services at home.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *