Setup a reverse proxy

Description

In this guide, you will learn how to install and configure Nginx Proxy Manager using Docker.

Nginx Proxy Manager provides a web-based interface for managing reverse proxies and SSL certificates. The installation uses a dedicated Docker network so that other applications can communicate with the reverse proxy.

You can create subdomains like „palworld.yourdomain.com“, which redirects directly to your Palworld server.

We are using the Linux operating system Ubuntu 24.04.

What you’ll learn
  • Configure the UFW for allowing NPM.
  • Create a dedicated Docker network for the reverse proxy.
  • Create the Nginx Proxy Manager application directory.
  • Create a Docker Compose configuration.
  • Persist Nginx Proxy Manager data and Let’s Encrypt certificates
Step by step guide
Bash
# Step 1: Configure the UFW
ufw allow 443 comment 'HTTPS'
ufw allow 81 comment 'NGINX-Admin-UI'
ufw reload

# Step 2: Create a docker network called "reverse-proxy-network" for all of your future applications
docker network create reverse-proxy-network

# Step 3: Create the folder for storing the applications config and data
mkdir /srv/apps/nginx-proxy-manager -p

# Step 4: Create the complete setup for the application
cd /srv/apps/nginx-proxy-manager

cat << 'EOF' > docker-compose.yml
networks:
  reverse-proxy-network:
    external: true # network already exists

services:
  app:
    image: 'jc21/nginx-proxy-manager:2.14.0'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    networks:
      - reverse-proxy-network
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
EOF

# Step 5: Start the application
cd /srv/apps/nginx-proxy-manager
docker compose up -d

# Step 6: Check if the application is running
docker ps
# And manually visiting "your.domain.com" / "your.domain.com:81" in your browser. 
Next steps