Install Nginx Proxy Manager on Synology NAS
Learn how to install Nginx Proxy Manager on your Synology NAS and assign it a dedicated IP address to avoid port conflicts.

Table of Contents
- What You Need (Prerequisites)
- Step 1: Gather Network Info & Prepare SSH
- Step 2: Connect via SSH & Get Root Access
- Step 3: Find the Correct Network Interface
- Step 4: Choose a Free IP Address for NPM
- Step 5: Docker Check & Network Cleanup (Optional)
- Step 6: Create the Macvlan Network
- Step 7: Start Nginx Proxy Manager in Container Manager
- Step 8: Access Nginx Proxy Manager (Almost Done!)
- Step 9: First Login
If you own a Synology NAS and want to manage your web services using domains and SSL certificates, Nginx Proxy Manager (NPM) is a great tool for the job. But what if the standard web ports 80 and 443 on your NAS are already occupied, for example, by the DSM interface or Web Station? No problem!
In this guide, I will show you how to install Nginx Proxy Manager using Docker and assign it its own dedicated IP address on your network. Just follow the steps, and soon your NPM will be running cleanly without port conflicts.
What You Need (Prerequisites)
- A Synology NAS with DSM (DiskStation Manager).
- The Container Manager (formerly Docker package) must be installed from the Package Center.
- Basic understanding of your home network.
- SSH access to your NAS.
- A free IP address on your network that you can use for NPM.
Step 1: Gather Network Info & Prepare SSH
We need some information from your NAS.
- Connect to your Synology NAS via the web interface (DSM).
- Open the Control Panel.
- Go to Network > Network Interface.
- Find your active network connection (often “LAN 1” or “LAN 2”). Note down the IP address of your NAS (e.g.,
192.168.178.6
) and the Subnet mask (often255.255.255.0
). This subnet mask corresponds to the CIDR notation/24
. Remember both well! - In the Control Panel, switch to Terminal & SNMP.
- Check the box for Enable SSH service. The default port 22 is usually fine.
- Click Apply.
Now your NAS is ready for SSH access.
Step 2: Connect via SSH & Get Root Access
Open a terminal application on your computer (Terminal on macOS/Linux, PowerShell or PuTTY on Windows).
- Enter the following command, replacing
YOUR_USERNAME
with your Synology username andYOUR_NAS_IP
with the IP address of your NAS:ssh YOUR_USERNAME@YOUR_NAS_IP
- If connecting for the first time, you’ll be asked if you trust the host’s fingerprint. Type
yes
and press Enter. - Enter your Synology password (you won’t see characters while typing) and press Enter.
- You should now be logged into your NAS terminal. To execute commands with full privileges, become the root user:
sudo -i
- Enter your password again and press Enter. Your prompt should change (often ending with
#
), indicating you are root. Caution: As root, you have full control – be careful!
Step 3: Find the Correct Network Interface
Docker Macvlan needs to know which physical network interface on your NAS it should communicate through.
- In the SSH terminal, enter the following command:
ip addr
- You will see a list of network interfaces. Look for the one that has your NAS’s IP address (the one you noted in Step 1). The interface name is at the beginning of the line (e.g.,
eth0
,eth1
,ovs_eth0
). In my case, it waseth1
. Note down this name!
Step 4: Choose a Free IP Address for NPM
NPM needs its own IP. Choose an address that:
- Is in the same subnet as your NAS (i.e., the first three blocks of numbers are the same, e.g.,
192.168.178.XXX
). - Is not already used by another device.
- Is ideally outside your router’s DHCP range. If your router assigns IPs from
.50
to.150
, choose an IP like.180
or.210
. Check your router’s settings if unsure!
For this tutorial, I will choose the IP 192.168.178.180
.
Step 5: Docker Check & Network Cleanup (Optional)
Let’s ensure Docker (Container Manager) is running.
- Enter
docker -v
. If a version is displayed (e.g.,Docker version 24.0.2
), everything is fine. If not, install the “Container Manager” from the Synology Package Center. - (Optional) To remove old, unused Docker networks, you can enter:
Confirm withdocker network prune
y
. This helps keep things tidy.
Step 6: Create the Macvlan Network
We create the special Docker network. Enter the following command and adjust the values to match your network:
docker network create \
--driver macvlan \
--subnet=192.168.178.0/24 \
--gateway=192.168.178.1 \
--ip-range=192.168.178.180/32 \
-o parent=eth1 \
proxy_macvlan
Important Explanations & Adjustments:
--driver macvlan
: Tells Docker which network type we want.--subnet=192.168.178.0/24
: Adjust this to your subnet! If your IPs are192.168.1.X
, it would be192.168.1.0/24
. The/24
corresponds to the subnet mask255.255.255.0
.--gateway=192.168.178.1
: Adjust this to your router’s IP (gateway)! It’s often.1
, but not always.--ip-range=192.168.178.180/32
: Enter the free IP you chose in Step 4 here! The/32
means only this specific IP is in this range.-o parent=eth1
: Enter the name of your network interface from Step 3 here! (e.g.,eth0
).proxy_macvlan
: This is the name we give our new network.
Press Enter. If no error message appears, the network was created. You can verify it with:
docker network inspect proxy_macvlan
Step 7: Start Nginx Proxy Manager in Container Manager
Now we leave SSH and go back to the Synology web interface.
- Open the Container Manager.
- Go to the Project menu.
- Click Create.
- Project name: Enter
npm
. - Path: Select a folder on your NAS where NPM’s configuration data will be stored. Click “Create Folder”, navigate to the
docker
share (or wherever you store your Docker data), and create a new subfolder namednpm
. Select this folder. - Source: Select “Create Docker Compose”.
- A text editor will appear. Paste the following YAML code into it:
services:
app:
image: jc21/nginx-proxy-manager:latest # using a specific tag is recommended for stability
container_name: nginx-proxy-manager
restart: unless-stopped
networks:
proxy_macvlan_net: # Internal name for the service block
ipv4_address: 192.168.178.180 # <-- ENTER YOUR CHOSEN IP HERE!
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
ports:
- "81:81" # Maps host port 81 to container port 81 for the admin UI
networks:
proxy_macvlan_net: # Internal name (must match the service above)
external: true
name: proxy_macvlan # <-- Name of the Docker network created in Step 6
IMPORTANT:
- Replace
192.168.178.180
underipv4_address
with the IP you chose for NPM! - The
image
name isjc21/nginx-proxy-manager
. Using:latest
always gets the newest version (but can sometimes cause issues; a specific tag like:2.10.4
is more stable). - The
name:
undernetworks:
at the end must be exactlyproxy_macvlan
(or whatever you named your network in Step 6).
- Click Next.
- Click Next again (we don’t need Web Portal settings here).
- Check “Start project once it is created” and click Done.
The project will now be created, and the container will attempt to start.
Step 8: Access Nginx Proxy Manager (Almost Done!)
If the container in Container Manager is now green and shows “Running”, you’re almost there! Nginx Proxy Manager has its own web interface for administration.
-
Open your web browser and enter the IP address of your NPM container followed by
:81
:http://192.168.178.180:81
(Replace the IP with yours!) -
You should see the Nginx Proxy Manager login page.
Step 9: First Login
The default login credentials for the first login are:
- Email:
admin@example.com
- Password:
changeme
Change your user details and password after the first login.
You have successfully installed Nginx Proxy Manager on your Synology NAS and given it its own IP address thanks to Macvlan. Nothing stands in the way of easily managing your web services with SSL!