Nginx Proxy Manager (NPM) is a free, open-source reverse proxy tool with a powerful web interface. It lets you expose your self-hosted services to the internet with free automatic SSL certificates โ without needing to know Nginx configuration syntax.
In this guide, I’ll walk you through installing Nginx Proxy Manager on your Synology NAS using Docker.
๐งฐ What You’ll Need
- A Synology NAS running DSM 7.2+ (or Docker for older DSM versions)
- Container Manager installed (from Package Center)
- SSH access to your NAS
- A domain pointed to your home IP (via Cloudflare or similar)
โ ๏ธ Important: Nginx Proxy Manager needs to receive HTTP and HTTPS traffic for the hostnames it manages. Check which service owns ports 80 and 443 before changing anything; uninstalling Web Station or DSM services is not automatically necessary.
โ๏ธ Step 1: Install Container Manager
- Open Package Center on your Synology NAS
- Search for Container Manager (or Docker for DSM versions below 7.2)
- Install the package and wait for it to complete
โ๏ธ Step 2: Create Folder Structure
- Open File Station
- Navigate to
/volume1/docker/ - Create a new folder named
npm(lowercase) - Inside the
npmfolder, create two subfolders:dataletsencrypt
Your structure should look like:
/volume1/docker/npm/
โโโ data/
โโโ letsencrypt/
โ๏ธ Step 3: Create the Docker Container
We’ll use Synology’s Task Scheduler to run the Docker container.
- Go to Control Panel โ Task Scheduler
- Click Create โ Scheduled Task โ User-defined script
- Configure the task:
General Settings
| Setting | Value |
|---|---|
| Task Name | Install NPM |
| Enabled | Unchecked |
| User | root |
Schedule
| Setting | Value |
|---|---|
| Run on the following date | Do not repeat |
Task Settings
In the Run command area, paste this Docker command:
docker run -d \
--name=nginx_proxy_manager \
-p 8341:80 \
-p 81:81 \
-p 8766:443 \
-e TZ=Asia/Singapore \
-v /volume1/docker/npm/data:/data \
-v /volume1/docker/npm/letsencrypt:/etc/letsencrypt \
--restart always \
jc21/nginx-proxy-manager
๐ก Replace
Asia/Singaporewith your actual timezone. Find your timezone here. Note: The container automatically creates the SQLite database in/dataโ no config.json needed.
- Click OK
- Enter your DSM password when prompted
- Select the task and click Run
โ๏ธ Step 4: Access Nginx Proxy Manager
- Open your browser
- Navigate to:
http://YOUR_NAS_IP:81 - Log in with the default credentials:
| Setting | Value |
|---|---|
| admin@example.com | |
| Password | changeme |
โ๏ธ Step 5: Change Default Credentials
Upon first login, you’ll be prompted to:
- Update your full name, nickname, and email
- Change your password from
changemeto something secure
โ๏ธ Step 6: Configure Port Forwarding
To access your proxied services from the internet, forward these ports in your router:
| Port | Service |
|---|---|
| 80 | HTTP |
| 443 | HTTPS |
| 8341 | HTTP Alternate |
| 8766 | HTTPS Alternate |
โ ๏ธ Do not forward port 81 from your router. Keep the NPM admin interface on your LAN or reach it through a VPN such as Tailscale.
If you use the container ports above, map external port 80 to NAS port 8341 and external port 443 to NAS port 8766. Visitors should still use normal URLsโhttps://yourdomain.com, not an alternate port.
๐ How to Create a Proxy Host
Now that NPM is running, here’s how to expose a service:
- In NPM admin panel, go to Hosts โ Proxy Hosts
- Click Add Proxy Host
- Fill in the details:
| Field | Value |
|---|---|
| Domain Names | yourdomain.com |
| Scheme | http |
| Forward Hostname / IP | container_ip |
| Forward Port | container_port |
| Cache Assets | Optional |
| Block Common Exploits | Recommended |
- Enable SSL tab:
- Request a new SSL certificate
- Force SSL
- HTTP/2 Support
โ Wrap Up
Nginx Proxy Manager is now running on your Synology NAS. You can now:
- Expose multiple services through a single domain
- Get free automatic SSL certificates via Let’s Encrypt
- Password-protect your services
- Block common exploits
For more advanced configurations, check the official Nginx Proxy Manager documentation.
If this guide helped you set up NPM, consider buying me a coffee:
๐ https://ko-fi.com/alwynsoh
Every tip helps me keep testing, writing, and sharing guides like this. Appreciate the support!