Skip to content

Nginx Proxy Manager

A domain and certificate for KumoYami from the Nginx Proxy Manager interface.

Nginx Proxy Manager (NPM) manages domains and Let's Encrypt certificates from a web interface. It's a common sight on NAS boxes and home servers that already run several containers.

How NPM reaches KumoYami

NPM runs in its own container, so to it 127.0.0.1 means itself, not the server. There are two ways to connect them:

Join KumoYami to NPM's Docker network. Find its name with docker network ls (if NPM was installed with Compose in a folder called npm, it's usually npm_default) and create a docker-compose.override.yml next to KumoYami's docker-compose.yml:

docker-compose.override.yml
services:
  web:
    networks:
      - default
      - npm

networks:
  npm:
    external: true
    name: npm_default

Apply the change with docker compose up -d. In NPM, the target is the service name, web, on internal port 3000.

If you used the installer

The installer replaces docker-compose.yml when you run it again (keeping a .bak-DATE copy), but it leaves alone any docker-compose.override.yml it didn't create. That's why network changes are best kept in the override. If you gave the installer a domain, remove its Caddy first with --no-caddy: NPM needs ports 80 and 443.

Create the proxy

In NPM, Hosts → Proxy Hosts → Add Proxy Host:

  • Details: in Domain Names, your domain (nube.example.com). Scheme http; Forward Hostname / IP and Forward Port as per the option above (web and 3000, or the machine's IP and 4890). Turn on Block Common Exploits.
  • SSL: Request a new SSL Certificate, and turn on Force SSL and HTTP/2 Support.

Save and open https://nube.example.com/admin.

Large files and WebDAV

NPM runs Nginx under the hood. If large uploads or the WebDAV network drive fail with a 413 error, add this in the proxy host's Advanced tab:

client_max_body_size 0;
proxy_request_buffering off;