Nginx proxy manager
Nginx Proxy Manager is a web-based graphical user interface (GUI) for managing Nginx, a popular open-source web server and reverse proxy server. It simplifies the process of configuring Nginx as a reverse proxy to route incoming web traffic to various backend services or websites. Nginx Proxy Manager is particularly useful for users who want to set up proxy servers, handle SSL/TLS certificates, and manage domain routing without needing to manually edit Nginx configuration files. It provides an intuitive interface to streamline these tasks and make web server management more accessible.
version: "3"
services:
app:
image: "jc21/nginx-proxy-manager:latest"
container_name: nginxpm_app
restart: unless-stopped
ports:
- "8080:80" # set your router to forward=> 80 -> 8080
- "[port]:81"
- "4443:443" # set your router to forward=> 443 -> 4443
environment:
PUID: 1000
PGID: 1000
TZ: "Europe/Zurich"
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "[user_name]"
DB_MYSQL_PASSWORD: "[db_password]"
DB_MYSQL_NAME: "[db_name]"
volumes:
- /home/[user]/docker/nginxpm/data:/data
- /home/[user]/docker/nginxpm/letsencrypt:/etc/letsencrypt
labels:
- com.centurylinklabs.watchtower.enable = "false" # if you want to disallow watchtower to upgrade this container
depends_on:
- db
db:
image: "ghcr.io/linuxserver/mariadb"
container_name: nginxpm_db
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: "Europe/Zurich"
MYSQL_ROOT_PASSWORD: "[db_root_password]"
MYSQL_DATABASE: "[db_name]"
MYSQL_USER: "[user_name]"
MYSQL_PASSWORD: "[db_password]"
volumes:
- /home/[user]/docker/nginxpm/mysql:/config
labels:
- com.centurylinklabs.watchtower.enable = "false" # if you want to disallow watchtower to upgrade this containerCopy
NOTE:
[user] Corresponds to the folder of you user in your system
[port] The desired port you'd like to map the host
[user_name] -> The desired username for the db
[db_password] -> Database password
[db_root_password] -> Password for the root user