Skip to content

๐Ÿงญ 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. ๐Ÿง™โ€โ™‚๏ธโœจ


  1. Create Docker Network

    Terminal window
    docker network create nginx

    Because your containers deserve their own exclusive VIP lounge. ๐Ÿ’ƒ

  2. Docker Compose File

    Use a Docker Compose file for easier management. Check out ๐Ÿ‘‰ nginx.yml.

  3. Start the Container

    Terminal window
    docker compose -f nginx-proxy-manager-compose.yml up -d

    Give it a moment to spin up. Grab some coffee, or stare blankly at your terminal wondering if you did something wrong.

  4. 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!


You want http://192.168.1.100/ to show your Homarr dashboard (running on port 7575).

  1. Go to Proxy Hosts > Add Proxy Host.
  2. Domain Names: Leave empty (or your IP if needed).
  3. Forward Hostname/IP: localhost.
  4. Forward Port: 7575.
  5. Block Common Exploits: โœ….
  6. Websockets Support: โœ….
  7. Save it. Boom.

Now, visiting your server IP takes you straight to Homarr, no more :7575 tag of shame.


Want http://dashboard.server.com to show Dashy (port 8080)?

  1. Go to Proxy Hosts > Add Proxy Host.
  2. Domain Names: dashboard.yourdomain.com.
  3. Forward Hostname/IP: localhost.
  4. Forward Port: 8080.
  5. Enable SSL:
    • Go to the SSL tab.
    • Check Force SSL.
    • Request Letโ€™s Encrypt certificate.
  6. Save and flex.

I use NPM to forward different requests to different internal services like a strict but fair bouncer at a nightclub. ๐Ÿธ๐Ÿšช

  • When I open http://localhost, it forwards me to my Homarr dashboard running on port 7575. This is like my home control center โ€” everything at my fingertips!

  • When I access http://server.duckdns.org, it forwards to port 5678, which is where my n8n instance lives.


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.


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.

  • 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).

  • 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.


AddressTarget ServiceExample Port
http://<server-ip>/Homarr Dashboard7575
http://dashboard.server.comDashy Dashboard8080
http://media.server.comJellyfin8096
http://files.server.comFilebrowser8081

โ€œ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! ๐Ÿ›ฐ๏ธ