Try describing what you need:

BunkerWeb logo

BunkerWeb

★ 11.1k
GNU Affero General Public License v3.0Open Core — Some Features Paid6 Containers — 6 containers — moderate hosting footprintDocker · K8s · SourceNo external DB2 documented maintainers

About

BunkerWeb is an open-source web application firewall and security-focused reverse proxy built on top of NGINX. It is designed for administrators who want to protect web services with a...

Community Ratings

No ratings yet
Overview bannerScreenshot 2Screenshot 3Screenshot 4

Features

  • web application firewall
  • reverse proxy
  • HTTPS with Let's Encrypt automation
  • security headers
  • TLS hardening
  • ModSecurity WAF
  • OWASP Core Rule Set
  • automatic banning
  • request and connection limits
  • bot challenge protection

Details

Last Updated
Oct 30, 2026
Created
Aug 20, 2019
Install Methods
dockerkubernetessource
Requirements
NGINXLinuxDockerSwarmKubernetes
Runtime / Stack
debDockerK8SPython
Privacy & Independence
Cloud: Optional
User Model
Multi-User
Deployment

Deployment: Docker Compose ✓6 Containers — moderate hosting footprintRuns as 6 containers

Run BunkerWeb yourself

Pick how much you want to manage.

Is this your project? Sponsor a listing

Run BunkerWeb with Docker Compose

Compose file from the BunkerWeb project repository.

6 services · infra: redis · 2 unclassified (nginx-hello, authelia)

no resource limits declared

needs persistent storage (3 volumes)

examples/authelia/docker-compose.yml · @ f035a15 · scanned Jul 12, 2026

services:
  bunkerweb:
    image: bunkerity/bunkerweb:1.6.12
    container_name: bunkerweb
    ports:
      - "80:8080/tcp"
      - "443:8443/tcp"
      - "443:8443/udp" # for QUIC
    environment:
      API_WHITELIST_IP: "127.0.0.0/8 10.20.30.0/24"
    restart: "unless-stopped"
    networks:
      - bw-universe
      - bw-services

  bw-scheduler:
    image: bunkerity/bunkerweb-scheduler:1.6.12
    container_name: bw-scheduler
    depends_on:
      - bunkerweb
    volumes:
      - bw-storage:/data
    environment:
      BUNKERWEB_INSTANCES: "bunkerweb"
      SERVER_NAME: "auth.example.com app1.example.com app2.example.com" # replace with your domains
      MULTISITE: "yes"
      API_WHITELIST_IP: "127.0.0.0/8 10.20.30.0/24"
      SERVE_FILES: "no"
      DISABLE_DEFAULT_SERVER: "yes"
      AUTO_LETS_ENCRYPT: "yes"
      USE_CLIENT_CACHE: "yes"
      USE_GZIP: "yes"
      USE_REVERSE_PROXY: "yes"
      # Proxy to auth_request URI
      REVERSE_PROXY_URL_999: "/authelia"
      REVERSE_PROXY_HOST_999: "http://authelia:9091/api/verify"
      REVERSE_PROXY_HEADERS_999: 'X-Original-URL $$scheme://$$http_host$$request_uri;Content-Length ""'
      # Authelia
      auth.example.com_REVERSE_PROXY_URL: "/"
      auth.example.com_REVERSE_PROXY_HOST: "http://authelia:9091"
      auth.example.com_REVERSE_PROXY_INTERCEPT_ERRORS: "no"
      auth.example.com_CUSTOM_CONF_MODSEC_remove-false-positives: |
        SecRule REQUEST_FILENAME "/" "id:1000000,ctl:ruleRemoveByTag=attack-lfi,nolog"
      # Applications
      app1.example.com_REVERSE_PROXY_URL: "/"
      app1.example.com_REVERSE_PROXY_HOST: "http://app1:8080"
      app1.example.com_REVERSE_PROXY_AUTH_REQUEST: "/authelia"
      app1.example.com_REVERSE_PROXY_AUTH_REQUEST_SIGNIN_URL: "https://auth.example.com/?rd=$$scheme%3A%2F%2F$$host$$request_uri"
      app1.example.com_REVERSE_PROXY_AUTH_REQUEST_SET: "$$user $$upstream_http_remote_user;$$groups $$upstream_http_remote_groups;$$name $$upstream_http_remote_name;$$email $$upstream_http_remote_email"
      app1.example.com_REVERSE_PROXY_HEADERS: "Remote-User $$user;Remote-Groups $$groups;Remote-Name $$name;Remote-Email $$email"
      app2.example.com_REVERSE_PROXY_URL: "/"
      app2.example.com_REVERSE_PROXY_HOST: "http://app2:8080"
      app2.example.com_REVERSE_PROXY_AUTH_REQUEST: "/authelia"
      app2.example.com_REVERSE_PROXY_AUTH_REQUEST_SIGNIN_URL: "https://auth.example.com/?rd=$$scheme%3A%2F%2F$$host$$request_uri"
      app2.example.com_REVERSE_PROXY_AUTH_REQUEST_SET: "$$user $$upstream_http_remote_user;$$groups $$upstream_http_remote_groups;$$name $$upstream_http_remote_name;$$email $$upstream_http_remote_email"
      app2.example.com_REVERSE_PROXY_HEADERS: "Remote-User $$user;Remote-Groups $$groups;Remote-Name $$name;Remote-Email $$email"
    restart: "unless-stopped"
    networks:
      - bw-universe

  # APPLICATIONS
  app1:
    image: nginxdemos/nginx-hello
    networks:
      - bw-services
  app2:
    image: nginxdemos/nginx-hello
    networks:
      - bw-services

  # AUTHELIA
  authelia:
    image: authelia/authelia:4
    container_name: authelia
    volumes:
      - ./authelia:/config
    environment:
      TZ: "Europe/Paris"
    restart: "unless-stopped"
    healthcheck:
      disable: true
    networks:
      - authelia-redis
      - bw-services

  redis:
    image: redis:7-alpine
    container_name: redis
    expose:
      - "6379:6379"
    volumes:
      - redis-data:/data
    environment:
      TZ: "Europe/Paris"
    restart: "unless-stopped"
    networks:
      - authelia-redis

volumes:
  bw-storage:
  redis-data:

networks:
  bw-universe:
    name: bw-universe
    ipam:
      driver: default
      config:
        - subnet: 10.20.30.0/24
  bw-services:
    name: bw-services
  authelia-redis:
    name: authelia-redis

This file may be out of date. Check the BunkerWeb documentation for current setup steps.

Track your self-hosted stack

Bookmark software to try, rate tools you've used, and keep your collection in one place.

Metadata extracted from README on Aug 25, 2026

Related Software

Nginx Proxy Manager logo

Nginx Proxy Manager

34.6k
A Docker-based Nginx reverse proxy manager with a web admin interface for forwarding hosts and managing SSL certificates.
Web ServersPermissive LicenseProxy Servers+3
Details
SafeLine logo

SafeLine

23.1k
SafeLine is a self-hosted web application firewall that protects web apps from attacks and exploits.
Web ServersSelf Hosting SolutionsProxy Servers+3
7 ContainersOpen CoreCloud Required
Details
SWAG (Secure Web Application Gateway) logo

SWAG (Secure Web Application Gateway)

3.8k
SWAG is a LinuxServer.io container that provides an Nginx reverse proxy with PHP support, automated SSL certificate generation/renewal, and fail2ban-based intrusion prevention.
Web ServersProxy ServersSelf Hosting Solutions+4
Details
Caddy logo

Caddy

78.5k
Caddy is an extensible web server and server platform that uses TLS by default and automates HTTPS.
Web ServersPermissive LicenseProxy Servers+1
Details
UUSEC WAF logo

UUSEC WAF

1.7k
An industrial-grade web application and API security product that functions as a WAF with AI/semantic detection, reverse-proxy protection, and advanced rule handling.
Web ServersProxy ServersAPI Management+2
Freemium
Details
Traefik logo

Traefik

65.4k
Traefik is a modern HTTP reverse proxy and load balancer for deploying microservices.
Web ServersPermissive LicenseProxy Servers+2
2 Containers
Details
Warpgate logo

Warpgate

8.2k
A transparent bastion host for SSH, HTTPS, Kubernetes, MySQL, and PostgreSQL that records sessions and provides a built-in web admin UI.
Remote AccessProxy ServersAuthentication Services+2
Details
NGINX logo

NGINX

32.0k
NGINX is a high-performance web server, reverse proxy, load balancer, API gateway, and content cache.
Web ServersPermissive LicenseProxy Servers+2
Details
godoxy logo

godoxy

4.2k
A lightweight reverse proxy with a WebUI for managing routes, containers, and Proxmox resources.
Web ServersPermissive LicenseProxy Servers+2
Details
Zoraxy logo

Zoraxy

5.5k
Zoraxy is a general-purpose HTTP reverse proxy and forwarding tool with a web management interface.
Web ServersCopyleft LicenseProxy Servers+3
Details
Anubis logo

Anubis

23.8k
Anubis is a web AI firewall utility that uses challenges to protect upstream resources from scraper bots.
Miscellaneous ToolsPermissive LicenseNetwork Utilities+2
Details
go-doxy logo

go-doxy

4.2k
A lightweight reverse proxy with a WebUI for managing container routes, access control, and automation.
Web ServersPermissive LicenseProxy Servers+3
Details