๐งญ Nginx Proxy Manager (NPM)
Nginx Proxy Manager (NPM) is that friend who handles all your awkward โWho do I talk to?โ situations โ but for your servers.
It gives you a beautiful UI, free SSL via Letโs Encrypt, and makes you feel like an absolute wizard, even if youโre just clicking around and hoping it works. ๐งโโ๏ธโจ
๐ Setup Instructions
Section titled โ๐ Setup Instructionsโ-
Create Docker Network
Terminal window docker network create nginxBecause your containers deserve their own exclusive VIP lounge. ๐
-
Docker Compose File
Use a Docker Compose file for easier management. Check out ๐
nginx.yml
. -
Start the Container
Terminal window docker compose -f nginx-proxy-manager-compose.yml up -dGive it a moment to spin up. Grab some coffee, or stare blankly at your terminal wondering if you did something wrong.
-
Access the Dashboard
Fire up your browser and visit:
Terminal window http://<server-ip>:81๐ Default Credentials: Email:
admin@example.com
Password:changeme
Like that one friend who never changes their Netflix password. Change it immediately!
๐ Use Case 1: Point Root IP to Homarr
Section titled โ๐ Use Case 1: Point Root IP to HomarrโYou want http://192.168.1.100/
to show your Homarr dashboard (running on port 7575).
- Go to Proxy Hosts > Add Proxy Host.
- Domain Names: Leave empty (or your IP if needed).
- Forward Hostname/IP:
localhost
. - Forward Port:
7575
. - Block Common Exploits: โ .
- Websockets Support: โ .
- Save it. Boom.
Now, visiting your server IP takes you straight to Homarr, no more :7575
tag of shame.
๐ Use Case 2: Subdomain for Dashy
Section titled โ๐ Use Case 2: Subdomain for DashyโWant http://dashboard.server.com
to show Dashy (port 8080)?
- Go to Proxy Hosts > Add Proxy Host.
- Domain Names:
dashboard.yourdomain.com
. - Forward Hostname/IP:
localhost
. - Forward Port:
8080
. - Enable SSL:
- Go to the SSL tab.
- Check Force SSL.
- Request Letโs Encrypt certificate.
- Save and flex.
๐งโ๐ป Use Case 3: My personal setup
Section titled โ๐งโ๐ป Use Case 3: My personal setupโI use NPM to forward different requests to different internal services like a strict but fair bouncer at a nightclub. ๐ธ๐ช
โ How mine is set up
Section titled โโ How mine is set upโ-
When I open
http://localhost
, it forwards me to my Homarr dashboard running on port7575
. This is like my home control center โ everything at my fingertips! -
When I access
http://server.duckdns.org
, it forwards to port5678
, which is where my n8n instance lives.
๐ Waitโฆ Whatโs n8n?
Section titled โ๐ Waitโฆ Whatโs n8n?โn8n (pronounced โn-eight-nโ) is an automation tool, kind of like a self-hosted Zapier. It lets you build workflows to connect different services, automate boring tasks, and play God with your data.
๐ Whatโs that OAuth consent screen about?
Section titled โ๐ Whatโs that OAuth consent screen about?โWhen you want to connect your home server to Google APIs (for example, to automate Google Sheets, Gmail, or Calendar), Google needs to verify that you areโฆ wellโฆ you (and not a robot bent on world domination ๐ค).
- The OAuth consent screen is a web page where you log in to your Google account and authorize your server (n8n) to access certain data or perform actions on your behalf.
- Without this screen, your server canโt securely interact with Google services.
๐ Why do I need server.duckdns.org
?
Section titled โ๐ Why do I need server.duckdns.org?โ- Your home IP address might change (thanks, ISP ๐).
- DuckDNS gives you a free dynamic DNS (DDNS) domain that always points to your current home IP, even if it changes.
- This makes it possible to access your server remotely (or show Google a stable domain for the OAuth flow).
๐ฌ TL;DR
Section titled โ๐ฌ TL;DRโ- Homarr: Cool dashboard at
http://localhost
. - n8n: Automation wizard at
http://server.duckdns.org
, with OAuth wizardry for Google. - DuckDNS: Keeps your server address stable so you donโt lose your sanity.
โ Summary Table
Section titled โโ Summary TableโAddress | Target Service | Example Port |
---|---|---|
http://<server-ip>/ | Homarr Dashboard | 7575 |
http://dashboard.server.com | Dashy Dashboard | 8080 |
http://media.server.com | Jellyfin | 8096 |
http://files.server.com | Filebrowser | 8081 |
๐ฌ Final Thoughts
Section titled โ๐ฌ Final ThoughtsโโExpose yourself safely.โ โ Nginx Proxy Manager, probably.
With NPM, no more typing ports like :3000
, no more internal fights with your firewall, and no more โWait, which service was on 8081 again?โ
๐ Happy proxying! ๐ฐ๏ธ