Post

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.

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

Desktop View

Proxy instellen

  1. Maak in Nginx Proxy Manager een nieuwe proxy-host aan.
  2. Stel de domeinnaam in zodat deze naar de gewenste container of server wijst.
  3. (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.
This post is licensed under CC BY 4.0 by the author.