Ubuntu Server NginxProxyManager Docker installieren

Ubuntu Server NginxProxyManager Docker installieren

September 3, 2021 0 Von Tobias

Der NginxProxyManager ermöglicht es verschiedenen Dienste unter dem gleichen Port erreichbar zu machen. (z.B. Verschiedene Webserver). Zusätzlich kann man ganz einfach Letsencrypt Zertifikate erstellen.

Was wird benötigt?

Benötigt wird Ubuntu Server und die Docker-Engine und Docker Compose. Wie man diese installiert erfährst du hier:

Jetzt erstellen wir das Verzeichnis für den NginxProxyManager Docker.

mkdir npm
cd npm

Es gibt zwei Varianten wie man den NginxProxyManager installieren kann. Einmal mit einem extra Maria DB Docker als Datenbank Server, oder mit sqlLite. Ich würde generell die sqlLite Installation empfehlen. Für den NginxProxyServer wird so gut wie keine Datenbank Leistung benötigt.

NginxProxyManager mit sqlLite als Docker Compose installieren

Im oben erstellen Verzeichnis, müssen wir nun die Docker-Compose Datei erstellen:

nano docker-compose.yaml

Und dann das folgende einfügen:

version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # Public HTTP Port:
      - '80:80'
      # Public HTTPS Port:
      - '443:443'
      # Admin Web Port:
      - '81:81'
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      # These are the settings to access your db
      # If you would rather use Sqlite uncomment this
      # and remove all DB_MYSQL_* lines above
      DB_SQLITE_FILE: "/data/database.sqlite"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db
  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

Mit STRG + X Speichern wir die Datei ab. Um die Container zu Starten führen wir diesen Befehl aus:

docker-compose up -d

NginxProxyManager mit MariaDB als Docker Compose installieren

Im oben erstellen Verzeichnis, müssen wir nun die Docker-Compose Datei erstellen:

nano docker-compose.yaml
version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # Public HTTP Port:
      - '80:80'
      # Public HTTPS Port:
      - '443:443'
      # Admin Web Port:
      - '81:81'
    environment:
      # These are the settings to access your db
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "changeuser"
      DB_MYSQL_PASSWORD: "changepass"
      DB_MYSQL_NAME: "npm"
      # If you would rather use Sqlite uncomment this
      # and remove all DB_MYSQL_* lines above
      # DB_SQLITE_FILE: "/data/database.sqlite"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data/nginx-proxy-manager:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db
  db:
    image: yobasystems/alpine-mariadb:latest
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "changeme"
      MYSQL_DATABASE: "npm"
      MYSQL_USER: "changeuser"
      MYSQL_PASSWORD: "changepass"
    volumes:
      - ./data/mariadb:/var/lib/mysql

Hier müssen natürlich die Passwörter geändert werden. Dafür kannst du den Passwort Generator nutzten. Mit STRG + X Speichern wir die Datei ab. Um die Container zu Starten führen wir diesen Befehl aus:

docker-compose up -d

Ist der Docker / die Docker fertig installiert und gestartet. Das Webinterface ist unter: IP:81 erreichbar. Standard Anmelde Daten:

Email:    [email protected]
Password: changeme