Prerequisites
- Ubuntu 20.04+
- Docker
- Docker Compose
Create a default folder for Docker-based Applications
We're doing this to put all self-hosted application data, including database files, into a single folder for easier migration or backup operations in the future.
mkdir docker
mkdir docker/nproxy
cd docker/nproxy
Create Docker Compose file
nano docker-compose.yml
Copy and paste to .yml file
version: '3'
services:
nginx-proxy:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./config.json:/app/config/production.json
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- certs:/etc/nginx/certs
- vhost:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
nginx-proxy-acme:
image: 'nginxproxy/acme-companion:latest'
volumes_from:
- nginx-proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- acme:/etc/acme.sh
environment:
DEFAULT_EMAIL: 'me@example.com'
db:
image: 'jc21/mariadb-aria:latest'
environment:
MYSQL_ROOT_PASSWORD: 'ChangeMe'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'ChangeMe'
volumes:
- ./data/mysql:/var/lib/mysql
volumes:
certs:
vhost:
html:
acme:
Start Nginx Proxy Manager
docker-compose up -d
Stop Nginx Proxy Manager
docker-compose down