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:

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:

  1. Update the package index:
sudo apt update
  1. Install the dependencies:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
  1. Add the Docker GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. Add the Docker repository:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  1. Update the package index, again:
sudo apt update
  1. 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:

  1. Create a new directory for Nginx Proxy Manager:
mkdir nginx-proxy-manager
  1. Change the working directory to the newly created directory:
cd nginx-proxy-manager
  1. Create a new file named docker-compose.yml:
nano docker-compose.yml
  1. Paste the following code in the docker-compose.yml file:
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:
  1. Save and close the docker-compose.yml file.

  2. 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.

  1. 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.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!

Alternatively, for the best virtual desktop, try Shells!