maxlonplay/nginx-shield

By maxlonplay

Updated 3 months ago

Protects NGINX Proxy Manager using Fail2Ban with a modern web-based interface.

Image
Networking
Security
Monitoring & observability
0

1.0K

maxlonplay/nginx-shield repository overview

NGINX-SHIELD

Protects NGINX Proxy Manager from attacks via Fail2Ban.


Repository Overview

NGINX-SHIELD is a lightweight Docker container that enhances the security of NGINX Proxy Manager.
It integrates with Fail2Ban to block brute-force attacks, unauthorized access, and suspicious activity.
Perfect for securing your reverse proxy setup quickly and reliably.


Features

  • Brute-force attack protection via Fail2Ban
  • Monitors and blocks suspicious activity
  • Lightweight and easy-to-deploy container
  • Seamless integration with NGINX Proxy Manager

Quick Start (Docker Compose)

services:
  nginx-shield:
    image: maxlonplay/nginx-shield:latest
    container_name: nginx-shield
    restart: always
    environment:
      # Disables the internal geolocation module (requires at least 2 GB of RAM when active). Set to "true", "1", or "yes" to disable.
      - DISABLE_INTERNAL_GEOLOCATE=false
      # External geolocation server (standalone). Format: "ip:port" (e.g. "192.168.1.10:8881")
      # If set, the internal module will NOT start and all geo requests will be forwarded to the external server.
      # Leave empty to use the internal module (requires DISABLE_INTERNAL_GEOLOCATE=false).
      - USE_EXTERNAL_GEOLOCATE=
      # GeoIP language code for country names ('it' for Italian, 'en' for English, 'fr' for French, 'es' for Spanish, 'de' for German)
      - GEOIP_LANG=it
    volumes:
      # Nginx access and error logs directory (required for log monitoring and analysis)
      - /dockers/npm/data/logs:/app/nginx-logs
      # Fail2Ban socket directory (required to interact with Fail2Ban on the host)
      - /var/run/fail2ban:/var/run/fail2ban
      # Persistent data for nginx-shield (e.g., configuration, blocklists, etc.)
      - /nginx-shield/data:/app/data
      # Sync container time with host system time (read-only)
      - /etc/localtime:/etc/localtime:ro
    ports:
      # Web interface / API port
      - "8000:8000"
     # - "8881:8881" # Uncomment if you want to expose the API port for the geolocate service (if enabled)

Tag summary

Content type

Image

Digest

sha256:f1cdc6a74

Size

144.1 MB

Last updated

3 months ago

docker pull maxlonplay/nginx-shield