NginxProxyManager / nginx-proxy-manager

Docker container for managing Nginx proxy hosts with a simple, powerful interface
https://nginxproxymanager.com
MIT License
23.43k stars 2.72k forks source link

Dashboard page with all hosts #614

Open rt87 opened 4 years ago

rt87 commented 4 years ago

I would like to have a landing page with simple links to all proxy/redirect hosts (and such) that I have entered into my nging proxy manager. Clicking on a link should directly take me to the respective destination. The page should be auto generated, you can choose to use this page in the standard-pages section (i.e. instead of 404, congratulations, ...).

As a bonus: Each host can be configured to either appear on the standard landing page or not ("hidden" hosts).

RapidRabbit-11485 commented 4 years ago

Here is how I work this out for now:

version: "3"
services:
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager:2
    restart: always
    links: 
      - db
    ports:
      # Public HTTPS Port:
      - '443:443'
      # Admin Web Port:
      - ':81:81'
    volumes:
      - ./config.json:/app/config/production.json
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: jc21/mariadb-aria:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql
    command: --innodb-flush-method=fsync --innodb-use-native-aio=0

  nginx:
    image: nginx
    restart: always
    links: 
      - nginx-proxy-manager
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./data/www:/var/www/html
    depends_on:
      - nginx-proxy-manager

*The command for the mariadb instance is only required if running Docker for Windows, I do, that's why it is there.

my nginx.conf looks like:

events{}
http {
  include /etc/nginx/mime.types;
  server {
    listen 80 default_server;
    server_name _;  

    location / {
           root /var/www/html;  
           index index.html; 
     }

  }
}

This hosts a nginx instance for a static landing page, that can just be configured on the default host at http://nginx:80. Since the container is linked, it's never exposed to the host network. You can find a variety of HTML5 templates at https://html5up.net. You can then edit the html to serve whatever locations you want from nginx-proxy-manager.

However, I second this request, as all of this configuration would go away with a simple dropdown to configure a landing page, and checkboxes for which locations to expose. However I have some additional asks:

rt87 commented 3 years ago

Since this doesnt appear to be in huge demand, here is another alternative (for whom it may concern): you could simply use any other self hosted dashboard solution such as heimdall or organizr. Just run them as a Container, enter your Services, an then link your, e.g., heimdall dashboard Page as the npm landing Page. On the Downside, its another Service and you do have to enter All Services manually, but otherwise its fine.

github-actions[bot] commented 8 months ago

Issue is now considered stale. If you want to keep it open, please comment :+1: