Benutzer-Werkzeuge

Webseiten-Werkzeuge


server:docker:andreas_homelab:nginx-proxy-manager

Nginx Proxy Manager

Was ist das

Nginx Proxy Manager ist ein Docker-basierter Reverse Proxy Manager, der eine einfache und benutzerfreundliche Weboberfläche bietet, um Nginx Proxy Hosts zu verwalten. Er ermöglicht die unkomplizierte Verwaltung von Proxy-Hosts, Weiterleitungen und SSL-Zertifikaten, inklusive automatischer Lets Encrypt-Zertifikatsverwaltung. Dies macht es besonders geeignet für den Einsatz in Heimnetzwerken und kleinen bis mittleren Umgebungen, um Webdienste sicher und einfach erreichbar zu machen.

Beispiel bei Andreas

docker-compose.yml
services:
  npm:
    image: docker.io/jc21/nginx-proxy-manager:2.13.5
    labels:
      - wud.tag.include=\d+\.\d+\.\d+$      # For What's Up Docker monitoring
    container_name: npm
    hostname: npm
    restart: unless-stopped
    healthcheck:
      test: 'curl -f http://localhost:81/api/schema || exit 1'
      interval: 60s
      timeout: 5s
      retries: 3
      start_period: 90s
    networks:
      - default                                # Use the main network
    volumes:
      - npm_data:/data                        # Named volume for persistence
      - npm_letsencrypt:/etc/letsencrypt      # SSL certificates storage
    environment:
      INITIAL_ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@example.com}
      INITIAL_ADMIN_PASSWORD: ${ADMIN_PASSWORD:-changeme}
      DISABLE_IPV6: ${NPM_DISABLE_IPV6:-true}  # Disable IPv6
      X_FRAME_OPTIONS: ${NPM_X_FRAME_OPTIONS:-sameorigin}  # Security headers
    ports:
      - "${NPM_HTTP_PORT:-80}:80"            # HTTP port
      - "${NPM_HTTPS_PORT:-443}:443"         # HTTPS port  
      - "${NPM_ADMIN_PORT:-81}:81"           # Admin interface port
 
volumes:
  npm_data:
  npm_letsencrypt:

Erklärungen

  • image: Verwendetes Docker Image und dessen Version.
  • labels: Metadaten/Labels zur Steuerung und Filterung, hier z.B. zum Einbinden in bestimmte Workflows oder Systeme.
  • restart: Container wird automatisch neu gestartet, falls er abstürzt oder der Host neu startet.
  • container_name: Vergebener Name für den Docker Container.
  • hostname: Hostname innerhalb des Containers.
  • ports: Portweiterleitungen vom Host zum Container.
    • `80:80` leitet HTTP Traffic weiter.
    • `443:443` leitet HTTPS Traffic weiter.
    • `81:81` ist das Verwaltungsinterface von Nginx Proxy Manager.
  • volumes: Persistente Speicherorte für Daten und Zertifikate.
    • `npm_data` speichert Konfigurationsdaten.
    • `letsencrypt` speichert Zertifikate für HTTPS.
server/docker/andreas_homelab/nginx-proxy-manager.txt · Zuletzt geändert: von neo