[GH-ISSUE #614] Dashboard page with all hosts #518

Closed
opened 2026-02-26 06:33:13 +03:00 by kerem · 4 comments
Owner

Originally created by @rt87 on GitHub (Sep 24, 2020).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/614

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

Originally created by @rt87 on GitHub (Sep 24, 2020). Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/614 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).
kerem 2026-02-26 06:33:13 +03:00
Author
Owner

@rapidbnnuy commented on GitHub (Sep 26, 2020):

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:

  • Add this as an option in the dropdown on each configured host, not via the default page, so that 404s still can be configured.
  • Allow checkboxes on each location for whether it is exposed to the landing page
  • The landing page should still obey the access list configured on the host
  • The landing page should be HTML5 and mobile-responsive, so that mobile devices can access the locations as well
  • Allow the ability to upload images or icons for each location so that they display on the landing page
<!-- gh-comment-id:699438292 --> @rapidbnnuy commented on GitHub (Sep 26, 2020): 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: - Add this as an option in the dropdown on each configured host, not via the default page, so that 404s still can be configured. - Allow checkboxes on each location for whether it is exposed to the landing page - The landing page should still obey the access list configured on the host - The landing page should be HTML5 and mobile-responsive, so that mobile devices can access the locations as well - Allow the ability to upload images or icons for each location so that they display on the landing page
Author
Owner

@rt87 commented on GitHub (Mar 14, 2021):

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.

<!-- gh-comment-id:798880402 --> @rt87 commented on GitHub (Mar 14, 2021): 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.
Author
Owner

@github-actions[bot] commented on GitHub (Mar 25, 2024):

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

<!-- gh-comment-id:2017068734 --> @github-actions[bot] commented on GitHub (Mar 25, 2024): Issue is now considered stale. If you want to keep it open, please comment :+1:
Author
Owner

@github-actions[bot] commented on GitHub (May 5, 2025):

Issue was closed due to inactivity.

<!-- gh-comment-id:2849747607 --> @github-actions[bot] commented on GitHub (May 5, 2025): Issue was closed due to inactivity.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-proxy-manager-NginxProxyManager#518
No description provided.