# Plugins

Von der Community gibt es einige Plugins, die zusätzliche Funktionen zu Traefik hinzufügen. Ein paar interessante und hilfreiche Plugins werden hier vorgestellt, wie z. B. das Plugin GeoBlock von Pascal Minder.

# Plugin installieren

Die Installation eines Plugins ist wie folgt.

Für eine einfache Suche nach Plugins kann die offizielle Seite von Traefik genutzt werden, diese kann im Dashboard aufgerufen werden. Hierzu oben im Menüband auf *Plugins* klicken.

[![image.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/4ADimage.png)](https://jaeckel.one/uploads/images/gallery/2024-03/4ADimage.png)

Nun öffnet sich der Plugin Dialog in einem neuen Tab. Hier kann nun nach dem gewünschten Plugin gesucht werden.

[![image.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/Y3Timage.png)](https://jaeckel.one/uploads/images/gallery/2024-03/Y3Timage.png)

Wenn ein Plugin gefunden wurde, dieses einfach anklicken, um die Dokumentation des Plugins zu öffnen. In der Dokumentation wird auch eine *Install Plugin* Schaltfläche angezeigt, die eine kurze Installationsanweisung anzeigt.

[![image.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/307image.png)](https://jaeckel.one/uploads/images/gallery/2024-03/307image.png)

Die angezeigten Schritte werden durchgeführt bzw. nur einige davon, wenn mehrere Installations und Konfigurationsmöglichkeiten angezeigt werden.

<p class="callout info">Einige Beispiele, wie Plugins installiert und konfiguriert werden, finden sich auf den anderen Seiten in diesem Kapitel</p>

[![image.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/Rrbimage.png)](https://jaeckel.one/uploads/images/gallery/2024-03/Rrbimage.png)

# GeoBlock von Pascal Minder

Ein super nützliches Plugin für alle, die häufig von Leuten aus anderen Ländern (z. B. Russland) belästigt werden, aber von dort keine Zugriffe erwarten: [GeoBlock von Pascal Minder](https://jaeckel.one/attachments/53)

Nehmen wir die Compose Konfiguration von der Seite [Installation](https://jaeckel.one/attachments/51) und den Testdienst von der Seite [Dienst konfigurieren](https://jaeckel.one/attachments/52).

Die beiden Konfigurationen werden testweise zu einer Konfigurationsdatei zusammengeführt und dann um die Einstellungen für das Plugin erweitert. Somit sieht die neue Konfigurationsdatei nun wie folgt aus.

```yaml
services:
  traefik:
    image: "traefik"
    container_name: "traefik"
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
# Plguin GeoBlock von Pascal Minder hinzufügen
      - --experimental.plugins.geoblock.modulename=github.com/PascalMinder/geoblock
      - --experimental.plugins.geoblock.version=v0.2.7
    labels:
#      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.allowLocalRequests=true
#      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.allowUnknownCountries=false
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.api=https://get.geojs.io/v1/ip/country/{ip}
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.cacheSize=15
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.blackListMode=true
# Anfragen von russichen und chinesischen IPs blockieren
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.countries=RU,CN
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.forceMonthlyUpdate=true
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.logAllowedRequests=false
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.logApiRequests=false
      - traefik.http.middlewares.traefikgeoblock.plugin.geoblock.logLocalRequests=false
# Plugin Konfiguration Ende
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    networks:
      - traefik

services:
  whoami:
    image: "traefik/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
      - "traefik.http.services.whoami.loadbalancer.server.port=80"
# Plugin GeoBlock für whoami aktivieren
      - traefik.http.routers.whoami.middlewares=traefikgeoblock
# Plugin Aktivierung Ende
    networks:
      - traefik
 
networks:
  traefik:
    name: traefik
    external: true
```

{{@48#bkmrk-Compose-Run}}

Nachdem die Konfiguration gestartet wurde, kann über das Traefik Dashboard auch das geladene Modul eingesehen werden.

Hierzu einfach im Dashboard auf Middlewares - Explore klicken und dann traefikgeoblock@docker auswählen. Die Ansicht sieht dann in etwa wie folgt aus. Ganz unten werden alle Router dargestellt, die dieses Plugin verwenden.

[![image.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/image.png)](https://jaeckel.one/uploads/images/gallery/2024-03/image.png)