As my self struggled to solve this, I shall help others.
Nginx Proxy Manager is a genius and powerful GUI to manage Nginx. It helps you create Proxy servers, redirects and certificates and control these options very smoothly.
I started with a plain install of Ubuntu Server 18.04 LTS and selected Docker under the install. The following code will help you get all the software up to speed and clean up afterwords.
sudo -s
apt update
apt upgrade
reboot
sudo -s
apt autoremove
Then it is time for NPM.
sudo -s
mkdir npm
cd npm
At this point I know you can to do clone/pull from Git, but I was eager to run this tool with the knowledge I had in the fastest possible way. With that, I used the example files and got going.
touch config.json
touch docker-compose.yml
Your npm-folder should look like this.
root@docker:~/npm# ls
config.json docker-compose.yml
Edit these settings to you liking (or don’t) and paste them in accordingly.
config.json
{
"database": {
"engine": "mysql",
"host": "db",
"name": "npm",
"user": "npm",
"password": "npm",
"port": 3306
}
}
docker-compose.yml
version: "3"
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: always
ports:
- 80:80
- 81:81
- 443:443
volumes:
- ./config.json:/app/config/production.json
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
environment:
# if you want pretty colors in your docker logs:
- FORCE_COLOR=1
db:
image: mariadb:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: "npm"
MYSQL_DATABASE: "npm"
MYSQL_USER: "npm"
MYSQL_PASSWORD: "npm"
volumes:
- ./data/mysql:/var/lib/mysql
While still in the directory run docker-compose to download and build the container.
docker-compose up -d
After a minute or two you should have a fully working manager for Nginx. Find your login at http://ip.or.name:81.
Default admin is
un: [email protected]
pw: changeme
Please go read more at the developers site – https://github.com/jc21/nginx-proxy-manager – all credit goes to him.
What are the pre-flight instructions for installing DB engine, creating DB, creating user?
Anything else?
I appreciate the details above but believe there are things missing as this didn’t work for me – the docker image starts and the default page is available on port 80 but port 81 (which I have open) shows nothing. I believe perhaps my DB isn’t good.
Hi, you are absolutely right. The developer have changed the repository used for the DB.
I have changed the files, so if you delete the container and start over it should work. Let me know.
BIG Thank You! This is really fun, even for newbie like me. I don’t even know how to install this (Docker and NPM), but your quite detailed tutorial helps alot!
Thank you for your kind reply. Glad this helps and is still current.
Do you know how-to setup this and a wordpress site? Point https to http??
Everytime, i have tried this the DB keeps exiting witth a standard exec error not sure how or can it be fixed.
Really sad looks like an awesome application.
Hi, thank you for your reply. I read over the code and it still looks up to day. Please have a look at the full description here: https://nginxproxymanager.com/setup/