Nginx Proxy Manager via docker (Synology NAS)
Deze handleiding beschrijft hoe je Nginx Proxy Manager configureert via een Docker Compose-stack op een Synology NAS. Met NPM beheer je eenvoudig reverse proxies en andere netwerkconfiguraties voor je applicaties.
Deze handleiding beschrijft hoe je Nginx Proxy Manager configureert via een Docker Compose-stack op een Synology NAS. Met NPM beheer je eenvoudig reverse proxies en andere netwerkconfiguraties voor je applicaties. De configuratie maakt gebruik van twee LAN-poorten op de NAS:
- LAN 1 (192.168.10.10): Het primaire IP-adres voor SSH-toegang en algemene netwerkdiensten.
- LAN 2 (192.168.10.11): Wordt gebruikt voor de interne communicatie tussen containers.
De Nginx Proxy Manager container maakt deel uit van een macvlan-netwerk en krijgt zo een eigen IP-adres (bijvoorbeeld 192.168.10.2). Via dit adres kun je de NPM-webinterface bereiken (bijvoorbeeld via http://192.168.10.2:81).
Let op: Om Docker op de Synology NAS te gebruiken, dien je rootrechten te hebben. Dit bereik je door na het inloggen via SSH het commando sudo -i uit te voeren.
Benodigdheden
- Een Synology NAS met twee LAN-poorten
- Docker geïnstalleerd op de NAS
- Toegang tot de NAS via SSH
- Basiskennis van Docker, Docker Compose en Linux-commando’s
Verbinden met de Server via SSH
Open een terminal en verbind met je server via SSH:
1
ssh gebruikersnaam@ipsynology
Vervang gebruikersnaam door je eigen NAS-gebruikersnaam en ipsynology door het IP-adres van je NAS. Zodra je verbonden bent, verkrijg je rootrechten door het volgende commando uit te voeren:
1
sudo -i
Na het invoeren van het wachtwoordt krijg je de benodigde rechten om Docker en Docker Compose te beheren.
Mappenstructuur opzetten
Maak een directory voor Jekyll en de sites:
1
2
3
4
mkdir -p /volume1/docker/mariadb
mkdir -p /volume1/docker/nginx-proxy-manager
mkdir -p /volume1/docker/nginx-proxy-manager/data
mkdir -p /volume1/docker/nginx-proxy-manager/letsencrypt
Maak vervolgens het configuratiebestand voor Nginx Proxy Manager aan:
1
nano /volume1/docker/nginx-proxy-manager/config.json
Plak de volgende inhoud in het bestand. Hierin stel je de databaseverbinding in via LAN 2 (192.168.10.11):
1
2
3
4
5
6
7
8
9
10
{
"database": {
"engine": "mysql",
"host": "192.168.10.11",
"name": "npmdb",
"user": "npm",
"password": "npm",
"port": 3306
}
}
Druk op CTRL+X, vervolgens Y en Enter om het bestand op te slaan.
Docker Compose-bestand aanmaken
Navigeer naar de map waarin je de Docker Compose-stack wilt opslaan. Maak bijvoorbeeld een aparte map voor de website:
1
2
mkdir -p /volume1/docker/nginx-proxy-manager
cd /volume1/docker/nginx-proxy-manager
Maak een bestand genaamd docker-compose.yml aan:
1
nano docker-compose.yml
Plak de volgende configuratie in het bestand:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
version: "3.8"
services:
mariadb:
image: mariadb:latest
container_name: mariadb
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: npmdb
MYSQL_USER: npm
MYSQL_PASSWORD: npm
volumes:
- /volume1/docker/mariadb:/var/lib/mysql
ports:
- "3306:3306"
restart: on-failure:5
networks:
- npm_network
nginx-proxy-manager:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
networks:
- npm_network
- macvlan_net
volumes:
- /volume1/docker/nginx-proxy-manager/config.json:/app/config/production.json
- /volume1/docker/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
- /volume1/docker/nginx-proxy-manager/data/:/data
ports:
- "80:80" # HTTP
- "443:443" # HTTPS
- "81:81" # Web interface
restart: on-failure:5
networks:
npm_network:
driver: bridge
macvlan_net:
driver: macvlan
driver_opts:
parent: ovs_eth0 # Kies juiste interface
ipam:
config:
- subnet: 192.168.10.0/24
gateway: 192.168.10.1
ip_range: 192.168.10.2/24
Druk op CTRL+X, vervolgens Y en Enter om het bestand op te slaan.
Start de Docker Compose Stack
Start de Docker Compose-stack met het volgende commando:
1
docker compose up -d
Controleer of de containers correct draaien:
1
docker ps
Inloggen op Nginx Proxy Manager
Open een webbrowser en bezoek http://192.168.10.2:81.
Log in met de standaardgegevens:
- E-mail: admin@example.com
- Wachtwoord: changeme
Wijzig het wachtwoord na de eerste login.
Proxy instellen
- Maak in Nginx Proxy Manager een nieuwe proxy-host aan.
- Stel de domeinnaam in zodat deze naar de gewenste container of server wijst.
- (Optioneel) Activeer SSL via Let’s Encrypt voor een beveiligde verbinding. Zorg er hierbij voor dat poort 80 wordt doorgestuurd naar NPM op 192.168.10.2.