How to Install Nginx Proxy Manager on POP! OS
Nginx Proxy Manager is a powerful tool that helps in managing Nginx reverse proxy, load balancer, and SSL/TLS encryption for your web applications. In this tutorial, we are going to install Nginx Proxy Manager on POP! OS, which is one of the popular Linux distributions that is based on Ubuntu.
Prerequisites
Before we start the installation process, you need to make sure that you have the following requirements:
- A non-root user with sudo privileges.
- A running instance of POP! OS.
Step 1: Install Docker
Nginx Proxy Manager is a Docker-based application. Therefore, to install it, you need to install Docker on your POP! OS system. To do that, follow these steps:
- Update the package index:
sudo apt update
- Install the dependencies:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- Add the Docker GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- Add the Docker repository:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Update the package index, again:
sudo apt update
- Finally, install Docker:
sudo apt install docker-ce
Once the installation is complete, you can check the Docker version with the command:
docker version
Step 2: Install Nginx Proxy Manager
To install Nginx Proxy Manager on POP! OS, follow these steps:
- Create a new directory for Nginx Proxy Manager:
mkdir nginx-proxy-manager
- Change the working directory to the newly created directory:
cd nginx-proxy-manager
- Create a new file named
docker-compose.yml:
nano docker-compose.yml
- Paste the following code in the
docker-compose.ymlfile:
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
- '80:80'
- '81:81'
- '443:443'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt:rw
depends_on:
- db
networks:
- app-network
db:
image: 'jc21/mariadb-aria:latest'
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
networks:
- app-network
networks:
app-network:
Save and close the
docker-compose.ymlfile.Start Nginx Proxy Manager using the following command:
sudo docker-compose up -d
This command will download and start the Nginx Proxy Manager container. It may take a few minutes to complete.
- Verify that Nginx Proxy Manager is running:
sudo docker ps
You should see something like this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54ab7b59dbdc jc21/nginx-proxy-manager "/init" 16 seconds ago Up 15 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:81->81/tcp, nginx-proxy-manager_app_1
0.0.0.0:443->443/tcp
a6d93312b9bf jc21/mariadb-aria "/scripts/init.sh" 17 seconds ago Up 16 seconds 3306/tcp nginx-proxy-manager_db_1
Step 3: Access Nginx Proxy Manager
Now that Nginx Proxy Manager is up and running, you can access it by visiting http://<YourServerIP>:81 or https://<YourServerIP> in your web browser.
Conclusion
That's it! You have successfully installed Nginx Proxy Manager on POP! OS. Now, you can start using it to manage your Nginx reverse proxy, load balancer, and SSL/TLS encryption for your web applications.