Ubuntu Server NginxProxyManager Docker installieren
September 3, 2021Der 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