hero

Nginx Proxy Manager

Expose your services easily and securely

Get Started →

Get Connected

Expose web services on your network · Free SSL with Let's Encrypt · Designed with security in mind · Perfect for home networks

Proxy Hosts

Expose your private network Web services and get connected anywhere.

Beautiful UI

Based on Tabler, the interface is a pleasure to use. Configuring a server has never been so fun.

Free SSL

Built in Let’s Encrypt support allows you to secure your Web services at no cost to you. The certificates even renew themselves!

Docker FTW

Built as a Docker Image, Nginx Proxy Manager only requires a database.

Multiple Users

Configure other users to either view or manage their own hosts. Full access permissions are available.

# Quick Setup

  1. Install Docker and Docker-Compose
  1. Create a config file for example
{
  "database": {
    "engine": "mysql",
    "host": "db",
    "name": "npm",
    "user": "npm",
    "password": "npm",
    "port": 3306
  }
}
  1. Create a docker-compose.yml file similar to this:
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./config.json:/app/config/production.json
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:10.4'
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql
  1. Bring up your stack
docker-compose up -d
  1. Log in to the Admin UI

When your docker container is running, connect to it on port 81 for the admin interface. Sometimes this can take a little bit because of the entropy of keys.

http://127.0.0.1:81

Default Admin User:

Email:    admin@example.com
Password: changeme

Immediately after logging in with this default user you will be asked to modify your details and change your password.