services: bunkerweb: image: bunkerity/bunkerweb:1.6.9-rc4 container_name: bunkerweb ports: - "80:8080/tcp" - "443:8443/tcp" - "443:8443/udp" # for QUIC # ⚠️ read this if you use local folders for volumes ⚠️ # bunkerweb runs as an unprivileged user with UID/GID 101 # don't forget to edit the permissions of the files and folders accordingly # example if you need to create a directory : mkdir folder && chown root:101 folder && chmod 770 folder # another example for existing folder : chown -R root:101 folder && chmod -R 770 folder # more info at https://docs.bunkerweb.io volumes: - ./www:/var/www/html # contains web files (PHP, assets, ...), don't forget to rename the subfolders environment: API_WHITELIST_IP: "127.0.0.0/8 10.20.30.0/24" restart: "unless-stopped" networks: - bw-universe - net-app1 - net-app2 bw-scheduler: image: bunkerity/bunkerweb-scheduler:1.6.9-rc4 container_name: bw-scheduler depends_on: - bunkerweb volumes: - bw-storage:/data environment: BUNKERWEB_INSTANCES: "bunkerweb" SERVER_NAME: "app1.example.com app2.example.com" # replace with your domains API_WHITELIST_IP: "127.0.0.0/8 10.20.30.0/24" MULTISITE: "yes" AUTO_LETS_ENCRYPT: "yes" DISABLE_DEFAULT_SERVER: "yes" USE_CLIENT_CACHE: "yes" USE_GZIP: "yes" app1.example.com_REMOTE_PHP: "myapp1" app1.example.com_REMOTE_PHP_PATH: "/app" app2.example.com_REMOTE_PHP: "myapp2" app2.example.com_REMOTE_PHP_PATH: "/app" restart: "unless-stopped" networks: - bw-universe myapp1: image: php:fpm # ⚠️ UID and GID of BunkerWeb (101:101) and php:fpm (33:33) are not the same ⚠️ # but both needs access to the files and folders of web-files # don't forget to edit the permissions of the files and folders accordingly # example : chown -R 33:101 ./www && find ./www -type f -exec chmod 0640 {} \; && find ./www -type d -exec chmod 0750 {} \; volumes: - ./www/app1.example.com:/app # folder containing PHP app1 (don't forget to rename it) networks: - net-app1 myapp2: image: php:fpm # ⚠️ UID and GID of BunkerWeb (101:101) and php:fpm (33:33) are not the same ⚠️ # but both needs access to the files and folders of web-files # don't forget to edit the permissions of the files and folders accordingly # example : chown -R 33:101 ./www && find ./www -type f -exec chmod 0640 {} \; && find ./www -type d -exec chmod 0750 {} \; volumes: - ./www/app2.example.com:/app # folder containing PHP app2 (don't forget to rename it) networks: - net-app2 volumes: bw-storage: networks: bw-universe: name: bw-universe ipam: driver: default config: - subnet: 10.20.30.0/24 net-app1: net-app2: