Nginx Proxy Manager im LXC installieren
Moin!
Dieses Mal stelle ich euch ein absolut geniales Projekt vor. Es handelt sich um den Nginx Proxy Manager von jc21. Wie man dem Namen schon entnehmen kann, basiert das Projekt auf Nginx. Der Clou an dieser Software ist nicht nur die Leichtgewichtigkeit, sondern auch, dass alle relevanten Konfigurationen über ein Web UI erledigt werden können. Dazu gehört das Blocken von Exploits, SSL Zertifikate über Let’s Encrypt und zusätzliche Nginx Einstellungen über ein extra Fenster.
Bei der Installation werden wir eine MySQL Datenbank bzw. einen Container in Docker dafür anlegen. Solltet ihr bereits eine zentrale Datenbank haben, könnt ihr selbstverständlich auch diese nutzen. Welche Parameter ihr dabei ändern müsst, zeige ich euch ebenfalls.
Wir starten mit der Installation. Voraussetzung dafür ist:
Wir verbinden uns per SSH auf den Container, navigieren in das User Verzeichnis und erstellen einen Ordner für den Manager.
cd /home/username/
mkdir nginxproxymanager
cd nginxproxymanager
Nun legen wir eine Configdatei innerhalb des Verzeichnisses an. Wenn ihr einen bereits vorhanden MySQL Server verwenden wollt, passt einfach die Parameter an.
nano config.json
{
"database": {
"engine": "mysql",
"host": "db",
"name": "Datenbankname",
"user": "Datenbankuser",
"password": "Datenbankpasswort",
"port": 3306
}
}
Nun legen wir die Docker Compose Configdatei an. Solltet ihr das Setup mit eurem MySQL Server nutzen wollen, verwendet bitte die 2te Codebox.
version: "3"
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: always
ports:
- 80:80
- 81:81
- 443:443
volumes:
- ./config.json:/app/config/production.json
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
environment:
# if you want pretty colors in your docker logs:
- FORCE_COLOR=1
db:
image: mariadb:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: "npm"
MYSQL_DATABASE: "Datenbankname"
MYSQL_USER: "Datenbankuser"
MYSQL_PASSWORD: "Datenbankpasswort"
volumes:
- ./data/mysql:/var/lib/mysql
version: "3"
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: always
ports:
- 80:80
- 81:81
- 443:443
volumes:
- ./config.json:/app/config/production.json
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
environment:
# if you want pretty colors in your docker logs:
- FORCE_COLOR=1
Nun bauen wir unseren Container.
sudo docker-compose up -d
Jetzt können wir das Web UI ansteuern mit http://IPdesContainers:81. Dort angekommen loggen wir uns ein und können schon damit angefangen, diverse Proxy Hosts oder andere Konfigurationen vorzunehmen.
Login: admin@example.com
Passwort: changeme
Grüße gehen aus dem Archiv!