# Nginx Proxy Manager

## About

I use Nginx Proxy Manager as my primary reverse proxy. It helps me hide all my services behind one single port. I haven't had any issues with it over the 1.5 years that I've been using it. 10/10 Recommend!

![](https://4023630493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsVNw0ukkXTvV2pJfDvjn%2Fuploads%2FA0WMsLlVA6S5VxCqcY3W%2Fimage.png?alt=media\&token=b3246ab3-4dd0-4278-885b-7a95f1ee99a9)

![](https://4023630493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsVNw0ukkXTvV2pJfDvjn%2Fuploads%2FwIpvLLFaCmhwFRhrfldk%2Fimage.png?alt=media\&token=239d6163-913a-40f9-9fd0-86dac5b8c1bc)

## Docker-Compose

My personal Docker-Compose that I use on my production.

```
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "******"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    environment:
      MYSQL_ROOT_PASSWORD: '******'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: '******'
    restart: unless-stopped
    volumes:
      - ./data/mysql:/var/lib/mysql
```
