2 min read
Nginx Proxy Manager

For a while I thought that Nginx Proxy Manager is a paid software, so I kept using k3s. Until I installed jellyfin, homepage and other stuff. I acknowledged that 8GB of RAM is insufficient for server with kubernetes and other fun stuff. So, I decided to reduce load on the server - remove kubernetes.

Nginx Proxy Manager

I know how to configure and use nginx, but I hate doing it for every subdomain domain I have. Also, I wanted to have nice WebUI where I can check proxy rules, redirects, error pages and so on. So, I finally read Nginx Proxy Manager docs. Apparently, it is open source and free for non-commercial usage. Sweet!

I quickly installed it with Docker Compose like this:

networks:
  nginx:
    external: true

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

What is left is to just add docker containers to this network. For example, this is how I added homepage:

networks:
  nginx:
    external: true

services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    volumes:
      - /var/homepage/config:/app/config
      - /var/homepage/images:/app/public/customImages
      - /var/run/docker.sock:/var/run/docker.sock # for docker integrations
    restart: unless-stopped
    networks:
      - nginx

I also added SSL certificate for both apex domain and subdomains. Used it for all rules.

Access List is also nice features. I have configured it so that only my virtual network can access some services(Jellyfin, Homepage …)

I must say that I am very impressed my Nginx Proxy Manager and certainly recommend it to anyone.