x-env: &env DATABASE_URI: "mariadb+pymysql://bunkerweb:secret@bw-db:3306/db" LOG_LEVEL: "debug" services: bunkerweb: build: context: ../.. dockerfile: ./src/bw/Dockerfile ports: - 80:8080/tcp - 443:8443/tcp - 443:8443/udp labels: - "bunkerweb.INSTANCE=yes" environment: - API_WHITELIST_IP=127.0.0.0/24 10.20.30.0/24 restart: "unless-stopped" networks: bw-universe: aliases: - bunkerweb bw-services: aliases: - bunkerweb bw-scheduler: build: context: ../.. dockerfile: ./src/scheduler/Dockerfile depends_on: - bunkerweb volumes: - bw-data:/data - ./configs/server-http/hello.conf:/data/configs/server-http/hello.conf:ro environment: <<: *env BUNKERWEB_INSTANCES: "bunkerweb" SERVER_NAME: "www.example.com app1.example.com" MULTISITE: "yes" API_WHITELIST_IP: "127.0.0.0/24 10.20.30.0/24" USE_BUNKERNET: "no" USE_BLACKLIST: "no" USE_WHITELIST: "no" SEND_ANONYMOUS_REPORT: "no" CUSTOM_LOG_LEVEL: "debug" LOG_LEVEL: "info" SERVE_FILES: "no" DISABLE_DEFAULT_SERVER: "yes" USE_CLIENT_CACHE: "yes" USE_GZIP: "yes" EXTERNAL_PLUGIN_URLS: "https://github.com/bunkerity/bunkerweb-plugins/archive/refs/heads/dev.zip" CUSTOM_CONF_MODSEC_CRS_reqbody-suppress: "SecRuleRemoveById 200002" www.example.com_USE_UI: "yes" www.example.com_USE_REVERSE_PROXY: "yes" www.example.com_REVERSE_PROXY_URL: "/admin" www.example.com_REVERSE_PROXY_HOST: "http://bw-ui:7000" www.example.com_INTERCEPTED_ERROR_CODES: "400 404 405 413 429 500 501 502 503 504" www.example.com_GENERATE_SELF_SIGNED_SSL: "yes" app1.example.com_USE_REVERSE_PROXY: "yes" app1.example.com_REVERSE_PROXY_URL: "/" app1.example.com_REVERSE_PROXY_HOST: "http://app1:8080" restart: "unless-stopped" networks: bw-universe: aliases: - bw-scheduler bw-db: aliases: - bw-scheduler bw-ui: build: context: ../.. dockerfile: ./src/ui/Dockerfile volumes: - ../../src/ui/src:/usr/share/bunkerweb/ui/src:ro - ../../src/ui/static:/usr/share/bunkerweb/ui/static:ro - ../../src/ui/templates:/usr/share/bunkerweb/ui/templates:ro - ../../src/ui/gunicorn.conf.py:/usr/share/bunkerweb/ui/gunicorn.conf.py:ro - ../../src/ui/main.py:/usr/share/bunkerweb/ui/main.py:ro - ../../src/ui/utils.py:/usr/share/bunkerweb/ui/utils.py:ro environment: <<: *env ADMIN_USERNAME: "admin" ADMIN_PASSWORD: "P@ssw0rd" DEBUG: "1" restart: "unless-stopped" networks: bw-universe: aliases: - bw-ui bw-db: aliases: - bw-ui bw-db: image: mariadb:11 environment: - MYSQL_RANDOM_ROOT_PASSWORD=yes - MYSQL_DATABASE=db - MYSQL_USER=bunkerweb - MYSQL_PASSWORD=secret volumes: - bw-db:/var/lib/mysql restart: "unless-stopped" networks: bw-db: aliases: - bw-db app1: image: nginxdemos/nginx-hello restart: "unless-stopped" networks: bw-services: aliases: - app1 volumes: bw-data: bw-db: networks: bw-universe: name: bw-universe ipam: driver: default config: - subnet: 10.20.30.0/24 bw-services: name: bw-services bw-db: name: bw-db