Nginx Proxy Manager
Expose your services easily and securely https://nginxproxymanager.com/
Gotta be honest, writing Nginx code was always a headache, but once I found this I never want to go back. This makes routing SSL certificates, and websockets a breeze.
App Network Routing
flowchart TB
%% Hardware
%% rpi("Raspberry Pi ๐")
%% ice("Micro services Server")
%% mint("Media Server ๐ป")
router("Router โ")
internet("ISP ๐")
%% Apps
pihole("Pi-Hole ๐ณ")
vpn("PiVPN ๐")
ha("Home Assistant ๐ค")
nginx("Nginx Proxy Manager")
nextcloud("NextCloud โ")
vaultwarden("Vaultwarden ๐ก")
wordp("Wordpress ๐ธ")
plex("Plex.tv ๐บ")
jelly("Jellyfin ๐")
subgraph Router
router
end
subgraph "Raspberry Pi 4 ๐"
pihole <-.-> router
vpn -.-> pihole
ha -.-> vpn
end
subgraph Intel NUC
nginx -.-> pihole
nextcloud -.-> nginx
vaultwarden -.-> nginx
wordp -.-> nginx
end
subgraph Ryzen 9
plex -.-> nginx
jelly -.-> nginx
end
router <-- fiber 400mbps --> internetconnections
- Pi-hole for local DNS. Make pretty URLs for local or public services
installation
compose.ymlvia Docker
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- ./css:/app/frontend/css # if you want to tweak the css for dark mode B-)
Default Admin User:
Email: admin@example.com
Password: changeme
Publicly Facing Apps
Pretty URLs for Local Apps
- Pi-hole DNS setup
- Nginx to link Port number
Leveraging Docker's Internal DNS routing
for example vaultwarden I do not specify a port number. instead I use the container_name: vaultwarden as a DNS entry I can use in Nginx Proxy Manager
Dark Mode
There isn't an official dark mode, but with a bit of file digging, you too can override the main.css
- Spin up the container first and let the app pull down.
- check the
compose.ymlto map theapp/frontend/css/main.cssto a persistent volume
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- ./css/main.css:/app/frontend/css/main.css ## <----- here
- spin up the container again and go to edit that newย
./css/main.cssย file
CSS
add this to the bottom of main.css
body, .modal-content{
background-color: #635366;
color: white;
}
.modal-content{
box-shadow: black 2px 2px 8px;
}
.custom-switch-description{
color: #c3c3c3;
}
#header{
background-color: #323232;
}
.navbar-light .navbar-brand{
color: white;
}
#menu{
background-color: #000;
}
.text-default {
color: white !important;
}
.tag{
background-color: #545454;
color: white;
}
.card{
background-color: #29292a;
box-shadow: black 2px 2px 8px;
}
.table thead {
border-bottom: solid black 3px;
}
.table th, .text-wrap table th, .table td, .text-wrap table td{
border-top: 1px solid #000000;
border-top-width: 1px;
border-top-style: solid;
border-top-color: rgb(0, 0, 0);
}
Redirect
Useful for redirecting a DOMAIN.com -> www.DOMAIN.com (tutorial)
Nginx Proxy Manager Redirect to Nested Page