diff --git a/CHANGELOG.md b/CHANGELOG.md index 277f0092..1b59f95e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## v1.5.0-beta - +## v1.5.0-beta - 2023/05/02 - Refactoring of almost all the components of the project - Dedicated scheduler service to manage jobs and configuration @@ -10,6 +10,8 @@ - Add Redis support when using clustered integrations - Add RHEL integration - Add Vagrant integration +- Init support of generic TCP/UDP (stream) +- Init support of IPv6 - Improved CI/CD ## v1.4.8 - 2023/04/05 diff --git a/TODO b/TODO index aaeb5c57..cd13aa0a 100644 --- a/TODO +++ b/TODO @@ -2,8 +2,4 @@ - Vagrant - Plugins - prepare new antibot challenge when not resolved and "refresh page" -- fix doc integrations : "The Docker autoconf integration is similar to the Docker autoconf one" -- add ipv6 to doc -- edit doc integrations boilerplates : missing autoconf container in docker autoconf, fix syntax for autoconf service example and make them ready to use (copy / paste) -- edit doc + misc/integrations : network bw-services: network.external.name is deprecated. Please set network.name with external: true - fix db warnings (Got an error reading communication packets) diff --git a/docs/integrations.md b/docs/integrations.md index f7f4ca7c..b640fba6 100644 --- a/docs/integrations.md +++ b/docs/integrations.md @@ -88,6 +88,7 @@ volumes: The scheduler runs as an **unprivileged user with UID 101 and GID 101** inside the container. The reason behind this is security : in case a vulnerability is exploited, the attacker won't have full root (UID/GID 0) privileges. But there is a downside : if you use a **local folder for the persistent data**, you will need to **set the correct permissions** so the unprivileged user can write data to it. Something like that should do the trick : + ```shell mkdir bw-data && \ chown root:101 bw-data && \ @@ -95,26 +96,30 @@ volumes: ``` Alternatively, if the folder already exists : + ```shell chown -R root:101 bw-data && \ chmod -R 770 bw-data ``` If you are using [Docker in rootless mode](https://docs.docker.com/engine/security/rootless) or [podman](https://podman.io/), UIDs and GIDs in the container will be mapped to different ones in the host. You will first need to check your initial subuid and subgid : - ```shell - grep ^$(whoami): /etc/subuid && \ - grep ^$(whoami): /etc/subgid - ``` + + ```shell + grep ^$(whoami): /etc/subuid && \ + grep ^$(whoami): /etc/subgid + ``` For example, if you have a value of **100000**, the mapped UID/GID will be **100100** (100000 + 100) : + ```shell mkdir bw-data && \ sudo chgrp 100100 bw-data && \ chmod 770 bw-data ``` - Or if the folder already exists : - ```shell + Or if the folder already exists : + + ```shell sudo chgrp -R 100100 bw-data && \ chmod -R 770 bw-data ``` @@ -174,13 +179,16 @@ For defense in depth purposes, we strongly recommend to create at least three di - `bw-universe` : for BunkerWeb and scheduler - `bw-docker` : for scheduler and the Docker API proxy -The scheduler needs to contact the API of BunkerWeb and for obvious security reason BunkerWeb needs to check if the caller is authorized to make API calls. The `API_WHITELIST_IP` setting lets you choose allowed IP addresses and subnets : usage of a static subnet for the `bw-universe` is strongly advised : +The scheduler needs to contact the API of BunkerWeb and for obvious security reason BunkerWeb needs to check if the caller is authorized to make API calls. The `API_WHITELIST_IP` setting lets you choose allowed IP addresses and subnets, usage of a static subnet for the `bw-universe` is strongly advised : ```yaml ... services: mybunker: image: bunkerity/bunkerweb:1.5.0-beta + ports: + - 80:8080 + - 443:8443 networks: - bw-services - bw-universe @@ -209,6 +217,64 @@ networks: name: bw-docker ``` +### Full compose file + +```yaml +version: "3.5" + +services: + bunkerweb: + image: bunkerity/bunkerweb:1.5.0-beta + ports: + - 80:8080 + - 443:8443 + labels: + - "bunkerweb.INSTANCE" + environment: + - SERVER_NAME=www.example.com + - API_WHITELIST_IP=127.0.0.0/8 10.20.30.0/24 + networks: + - bw-universe + - bw-services + + bw-scheduler: + image: bunkerity/bunkerweb-scheduler:1.5.0-beta + depends_on: + - bunkerweb + - bw-docker + volumes: + - bw-data:/data + environment: + - DOCKER_HOST=tcp://bw-docker:2375 + networks: + - bw-universe + - bw-docker + + bw-docker: + image: tecnativa/docker-socket-proxy + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + environment: + - CONTAINERS=1 + networks: + - bw-docker + +volumes: + bw-data: + +networks: + bw-universe: + name: bw-universe + ipam: + driver: default + config: + - subnet: 10.20.30.0/24 + bw-services: + name: bw-services + bw-docker: + name: bw-docker +``` + ## Docker autoconf
@@ -227,37 +293,57 @@ Instead of defining environment variables for the BunkerWeb container, you simpl The Docker autoconf integration implies the use of **multisite mode**. Please refer to the [multisite section](concepts.md#multisite-mode) of the documentation for more information. !!! info "Database backend" - Please note that we assume you are using MariaDB as database backend (which is defined using the `DATABASE_URI` setting). Other backends for this integration are still possible if you want to : see docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.0-beta/misc/integrations) folder of the repostiory for more information. + Please note that we assume you are using MariaDB as database backend (which is defined using the `DATABASE_URI` setting). Other backends for this integration are still possible if you want : see docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.0-beta/misc/integrations) folder of the repostiory for more information. Another container, named `bw-autoconf` for example, containing the autoconf service must be added to the stack. Since two services will generate the configuration for BunkerWeb, a "real" database backend (in other words, not SQLite) also needs to be added : ```yaml -... +version: "3.5" + services: bunkerweb: image: bunkerity/bunkerweb:1.5.0-beta + ports: + - 80:8080 + - 443:8443 labels: - "bunkerweb.INSTANCE" environment: + - SERVER_NAME= + - DATABASE_URI=mariadb+pymysql://bunkerweb:changeme@bw-db:3306/db + - AUTOCONF_MODE=yes - MULTISITE=yes - - DATABASE_URI=mariadb+pymysql://bunkerweb:changeme@bw-db:3306/db # Remember to set a stronger password for the database - API_WHITELIST_IP=127.0.0.0/8 10.20.30.0/24 networks: - bw-universe - bw-services -... + + bw-autoconf: + image: bunkerity/bunkerweb-autoconf:1.5.0-beta + depends_on: + - bunkerweb + - bw-docker + environment: + - DATABASE_URI=mariadb+pymysql://bunkerweb:changeme@bw-db:3306/db + - AUTOCONF_MODE=yes + - DOCKER_HOST=tcp://bw-docker:2375 + networks: + - bw-universe + - bw-docker + bw-scheduler: image: bunkerity/bunkerweb-scheduler:1.5.0-beta depends_on: - bunkerweb - bw-docker environment: - - DATABASE_URI=mariadb+pymysql://bunkerweb:changeme@bw-db:3306/db # Remember to set a stronger password for the database + - DATABASE_URI=mariadb+pymysql://bunkerweb:changeme@bw-db:3306/db - DOCKER_HOST=tcp://bw-docker:2375 + - AUTOCONF_MODE=yes networks: - bw-universe - bw-docker -... + bw-docker: image: tecnativa/docker-socket-proxy volumes: @@ -266,14 +352,14 @@ services: - CONTAINERS=1 networks: - bw-docker -... + bw-db: image: mariadb:10.10 environment: - MYSQL_RANDOM_ROOT_PASSWORD=yes - MYSQL_DATABASE=db - MYSQL_USER=bunkerweb - - MYSQL_PASSWORD=changeme # Remember to set a stronger password for the database + - MYSQL_PASSWORD=changeme volumes: - bw-data:/var/lib/mysql networks: @@ -301,23 +387,23 @@ networks: Once the stack is set up, you will be able to create the web application container and add the settings as labels using the "bunkerweb." prefix in order to automatically set up BunkerWeb : ```yaml -... +version: "3.5" + services: myapp: image: mywebapp:4.2 - networks: - bw-services: - aliases: - - myapp - labels: - - "bunkerweb.MY_SETTING_1=value1" - - "bunkerweb.MY_SETTING_2=value2" -... + networks: + bw-services: + aliases: + - myapp + labels: + - "bunkerweb.MY_SETTING_1=value1" + - "bunkerweb.MY_SETTING_2=value2" + networks: bw-services: - external: - name: bw-services -... + external: true + name: bw-services ``` ## Swarm @@ -328,9 +414,9 @@ networks:
!!! info "Docker autoconf" - The Docker autoconf integration is similar to the Docker autoconf one (but with services instead of containers). Please read the [Docker autoconf integration section](#docker-autoconf) first if needed. + The Swarm integration is similar to the Docker autoconf one (but with services instead of containers). Please read the [Docker autoconf integration section](#docker-autoconf) first if needed. -To automatically configure BunkerWeb instances, a special service called **autoconf**, will be scheduled on a manager node. That service will listen for Docker Swarm events like service creation or deletion and automatically configure the **BunkerWeb instances** in real-time without downtime. It also monitors other Swarm objects like [configs](https://docs.docker.com/engine/swarm/configs/) for custom configurations. +To automatically configure BunkerWeb instances, a special service called **autoconf** needs to have access to the Docker API. That service will listen for Docker Swarm events like service creation or deletion and automatically configure the **BunkerWeb instances** in real-time without downtime. It also monitors other Swarm objects like [configs](https://docs.docker.com/engine/swarm/configs/) for custom configurations. Like the [Docker autoconf integration](#docker-autoconf), configuration for web services is defined by using labels starting with the special **bunkerweb.** prefix. @@ -341,7 +427,7 @@ Since we have multiple instances of BunkerWeb running, a shared data store imple Using a shared folder or a specific driver for the database volume is left as an exercise for the reader (and depends on your own use-case). !!! info "Database backend" - Please note that we assume you are using MariaDB as database backend (which is defined using the `DATABASE_URI` setting). Other backends for this integration are still possible if you want to : see docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.0-beta/misc/integrations) folder of the repostiory for more information. Clustered database backends setup are out-of-the-scope of this documentation. + Please note that we assume you are using MariaDB as database backend (which is defined using the `DATABASE_URI` setting). Other backends for this integration are still possible if you want : see docker-compose files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.0-beta/misc/integrations) folder of the repostiory for more information. Clustered database backends setup are out-of-the-scope of this documentation. Here is the stack boilerplate that you can deploy using `docker stack deploy` : @@ -492,8 +578,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services ``` ## Kubernetes @@ -510,7 +596,7 @@ The recommended setup is to define **BunkerWeb** as a **[DaemonSet](https://kube Since we have multiple instances of BunkerWeb running, a shared data store implemented as a [Redis](https://redis.io/) service must be created : the instances will use it to cache and share data. You will find more information about the Redis settings [here](settings.md#redis) !!! info "Database backend" - Please note that we assume you are using MariaDB as database backend (which is defined using the `DATABASE_URI` setting). Other backends for this integration are still possible if you want to : see yaml files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.0-beta/misc/integrations) folder of the repostiory for more information. Clustered database backends setup are out-of-the-scope of this documentation. + Please note that we assume you are using MariaDB as database backend (which is defined using the `DATABASE_URI` setting). Other backends for this integration are still possible if you want : see yaml files in the [misc/integrations folder](https://github.com/bunkerity/bunkerweb/tree/v1.5.0-beta/misc/integrations) folder of the repostiory for more information. Clustered database backends setup are out-of-the-scope of this documentation. Please note that both scheduler and autoconf services needs to access the Kubernetes API. The recommended way of doing it is using [RBAC authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/). diff --git a/docs/quickstart-guide.md b/docs/quickstart-guide.md index f6fd06c9..262a4a23 100644 --- a/docs/quickstart-guide.md +++ b/docs/quickstart-guide.md @@ -112,8 +112,8 @@ You will find more settings about reverse proxy in the [settings section](settin networks: bw-services: - external: - name: bw-services + external: true + name: bw-services ``` === "Swarm" @@ -142,8 +142,8 @@ You will find more settings about reverse proxy in the [settings section](settin networks: bw-services: - external: - name: bw-services + external: true + name: bw-services ``` === "Kubernetes" @@ -488,8 +488,8 @@ You will find more settings about reverse proxy in the [settings section](settin networks: bw-services: - external: - name: bw-services + external: true + name: bw-services ``` === "Swarm" @@ -550,8 +550,8 @@ You will find more settings about reverse proxy in the [settings section](settin networks: bw-services: - external: - name: bw-services + external: true + name: bw-services ``` === "Kubernetes" @@ -1109,7 +1109,7 @@ REAL_IP_HEADER=proxy_protocol ## Protect UDP/TCP applications !!! warning "Feature is in beta" - This feature is not production-ready. Feel free to test it and report us any bug using [issues]() in the GitHub repository. + This feature is not production-ready. Feel free to test it and report us any bug using [issues](https://github.com/bunkerity/bunkerweb/issues) in the GitHub repository. BunkerWeb can also act as **generic UDP/TCP reverse proxy** : you can protect any network-based applications working at least on layer 4 of the OSI model. Behind the hood, it leverages the [stream module](https://nginx.org/en/docs/stream/ngx_stream_core_module.html) of NGINX instead of using the "classical" http one. @@ -1263,7 +1263,7 @@ For complete list of settings regarding `stream` mode, please refer to the [sett networks: bw-services: - external: + external: true name: bw-services ``` @@ -1337,7 +1337,7 @@ For complete list of settings regarding `stream` mode, please refer to the [sett networks: bw-services: - external: + external: true name: bw-services ``` @@ -2015,8 +2015,8 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma networks: bw-services: - external: - name: bw-services + external: true + name: bw-services ``` === "Swarm" @@ -2128,8 +2128,8 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma networks: bw-services: - external: - name: bw-services + external: true + name: bw-services ``` === "Kubernetes" @@ -2307,4 +2307,101 @@ BunkerWeb supports PHP using external or remote [PHP-FPM](https://www.php.net/ma ```shell systemctl start bunkerweb + ``` + +## IPv6 + +!!! warning "Feature is in beta" + This feature is not production-ready. Feel free to test it and report us any bug using [issues](https://github.com/bunkerity/bunkerweb/issues) in the GitHub repository. + +By default, BunkerWeb will only listen on IPv4 adresses and won't use IPv6 for network communications. If you want to enable IPv6 support, you need to set `USE_IPV6=yes`. Please note that IPv6 configuration of your network and environment is out-of-the-scope of this documentation. + +=== "Docker" + + First of all, you will need to configure your Docker daemon to enable IPv6 support for containers and use ip6tables if needed. Here is sample configuration for your `/etc/docker/daemon.json` file : + + ```json + { + "experimental": true, + "ipv6": true, + "ip6tables": true, + "fixed-cidr-v6": "fd00:dead:beef::/48" + } + ``` + + You can now restart the Docker service to apply the changes : + + ```shell + systemctl restart docker + ``` + + Once Docker is setup to support IPv6 you can add the `USE_IPV6` setting and configure the `bw-services` for IPv6 : + + ```yaml + version: '3.5' + + services: + + bunkerweb: + image: bunkerity/bunkerweb:1.5.0-beta + environment: + - USE_IPv6=yes + + ... + + networks: + bw-services: + name: bw-services + enable_ipv6: true + ipam: + config: + - subnet: fd00:13:37::/48 + gateway: fd00:13:37::1 + + ... + ``` + +=== "Docker autoconf" + + First of all, you will need to configure your Docker daemon to enable IPv6 support for containers and use ip6tables if needed. Here is sample configuration for your `/etc/docker/daemon.json` file : + + ```json + { + "experimental": true, + "ipv6": true, + "ip6tables": true, + "fixed-cidr-v6": "fd00:dead:beef::/48" + } + ``` + + You can now restart the Docker service to apply the changes : + + ```shell + systemctl restart docker + ``` + + Once Docker is setup to support IPv6 you can add the `USE_IPV6` setting and configure the IPv6 for the `bw-services` network : + + ```yaml + version: '3.5' + + services: + + bunkerweb: + image: bunkerity/bunkerweb:1.5.0-beta + environment: + - USE_IPv6=yes + + ... + + networks: + bw-services: + name: bw-services + enable_ipv6: true + ipam: + config: + - subnet: fd00:13:37::/48 + gateway: fd00:13:37::1 + + ... ``` \ No newline at end of file diff --git a/docs/settings.md b/docs/settings.md index 9feb9ed4..69c4d07e 100644 --- a/docs/settings.md +++ b/docs/settings.md @@ -47,6 +47,7 @@ STREAM support :warning: |`LISTEN_STREAM_PORT` |`1337` |multisite|no |Listening port for non-ssl (passthrough). | |`LISTEN_STREAM_PORT_SSL` |`4242` |multisite|no |Listening port for ssl (passthrough). | |`USE_UDP` |`no` |multisite|no |UDP listen instead of TCP (stream). | +|`USE_IPV6` |`no` |global |no |Enable IPv6 connectivity. | ## Core settings diff --git a/examples/authelia/autoconf.yml b/examples/authelia/autoconf.yml index da211308..17710c18 100644 --- a/examples/authelia/autoconf.yml +++ b/examples/authelia/autoconf.yml @@ -77,5 +77,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/authelia/swarm.yml b/examples/authelia/swarm.yml index cfbc1c46..335c2a25 100644 --- a/examples/authelia/swarm.yml +++ b/examples/authelia/swarm.yml @@ -90,8 +90,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: redis: diff --git a/examples/autoconf-configs/autoconf.yml b/examples/autoconf-configs/autoconf.yml index 4d2f1bd5..e3c6398c 100644 --- a/examples/autoconf-configs/autoconf.yml +++ b/examples/autoconf-configs/autoconf.yml @@ -63,5 +63,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/cors/autoconf.yml b/examples/cors/autoconf.yml index 4dcacd97..04f8b2e9 100644 --- a/examples/cors/autoconf.yml +++ b/examples/cors/autoconf.yml @@ -56,5 +56,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/drupal/autoconf.yml b/examples/drupal/autoconf.yml index 3d64d7e0..f1f4b847 100644 --- a/examples/drupal/autoconf.yml +++ b/examples/drupal/autoconf.yml @@ -42,5 +42,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/drupal/swarm.yml b/examples/drupal/swarm.yml index 9434f46b..12159225 100644 --- a/examples/drupal/swarm.yml +++ b/examples/drupal/swarm.yml @@ -41,8 +41,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: drupal-modules: diff --git a/examples/ghost/autoconf.yml b/examples/ghost/autoconf.yml index adbe8c86..23264fb2 100644 --- a/examples/ghost/autoconf.yml +++ b/examples/ghost/autoconf.yml @@ -23,5 +23,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services \ No newline at end of file diff --git a/examples/ghost/swarm.yml b/examples/ghost/swarm.yml index 96ba5b23..7df6bb4e 100644 --- a/examples/ghost/swarm.yml +++ b/examples/ghost/swarm.yml @@ -22,8 +22,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: ghost_data: diff --git a/examples/gogs/autoconf.yml b/examples/gogs/autoconf.yml index 4e561f2e..3d6d41b5 100644 --- a/examples/gogs/autoconf.yml +++ b/examples/gogs/autoconf.yml @@ -21,5 +21,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/gogs/swarm.yml b/examples/gogs/swarm.yml index 5caafe8d..3e296e54 100644 --- a/examples/gogs/swarm.yml +++ b/examples/gogs/swarm.yml @@ -27,8 +27,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: gogs_data: diff --git a/examples/joomla/autoconf.yml b/examples/joomla/autoconf.yml index 3c70fd66..173b77d5 100644 --- a/examples/joomla/autoconf.yml +++ b/examples/joomla/autoconf.yml @@ -44,5 +44,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/joomla/swarm.yml b/examples/joomla/swarm.yml index 634327e0..c2025d9a 100644 --- a/examples/joomla/swarm.yml +++ b/examples/joomla/swarm.yml @@ -45,8 +45,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: joomla-files: diff --git a/examples/magento/autoconf.yml b/examples/magento/autoconf.yml index f9d0c920..2b7bb3d5 100644 --- a/examples/magento/autoconf.yml +++ b/examples/magento/autoconf.yml @@ -64,5 +64,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/magento/swarm.yml b/examples/magento/swarm.yml index 691cb1a0..61eb2648 100644 --- a/examples/magento/swarm.yml +++ b/examples/magento/swarm.yml @@ -58,8 +58,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: db-data: diff --git a/examples/mattermost/autoconf.yml b/examples/mattermost/autoconf.yml index 3ee6db7d..3e7a0cf1 100644 --- a/examples/mattermost/autoconf.yml +++ b/examples/mattermost/autoconf.yml @@ -89,5 +89,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/mongo-express/autoconf.yml b/examples/mongo-express/autoconf.yml index 75652de5..ceacaee4 100644 --- a/examples/mongo-express/autoconf.yml +++ b/examples/mongo-express/autoconf.yml @@ -43,5 +43,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/mongo-express/swarm.yml b/examples/mongo-express/swarm.yml index 0ae36065..aee2981a 100644 --- a/examples/mongo-express/swarm.yml +++ b/examples/mongo-express/swarm.yml @@ -44,8 +44,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: db-data: diff --git a/examples/moodle/autoconf.yml b/examples/moodle/autoconf.yml index fef833e3..f9c5cedd 100644 --- a/examples/moodle/autoconf.yml +++ b/examples/moodle/autoconf.yml @@ -45,8 +45,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: db-data: diff --git a/examples/moodle/swarm.yml b/examples/moodle/swarm.yml index 941463db..cf078434 100644 --- a/examples/moodle/swarm.yml +++ b/examples/moodle/swarm.yml @@ -49,8 +49,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: db-data: diff --git a/examples/nextcloud/autoconf.yml b/examples/nextcloud/autoconf.yml index cad6b199..ab7d6595 100644 --- a/examples/nextcloud/autoconf.yml +++ b/examples/nextcloud/autoconf.yml @@ -78,5 +78,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/nextcloud/swarm.yml b/examples/nextcloud/swarm.yml index aeb01352..8fb87729 100644 --- a/examples/nextcloud/swarm.yml +++ b/examples/nextcloud/swarm.yml @@ -56,8 +56,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: nc-files: diff --git a/examples/passbolt/autoconf.yml b/examples/passbolt/autoconf.yml index 73d3f2cc..9182fae7 100644 --- a/examples/passbolt/autoconf.yml +++ b/examples/passbolt/autoconf.yml @@ -57,5 +57,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/passbolt/swarm.yml b/examples/passbolt/swarm.yml index d1cf81da..39c27661 100644 --- a/examples/passbolt/swarm.yml +++ b/examples/passbolt/swarm.yml @@ -56,8 +56,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: db-data: diff --git a/examples/prestashop/autoconf.yml b/examples/prestashop/autoconf.yml index a668819a..a8981f55 100644 --- a/examples/prestashop/autoconf.yml +++ b/examples/prestashop/autoconf.yml @@ -44,8 +44,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: ps-data: diff --git a/examples/prestashop/swarm.yml b/examples/prestashop/swarm.yml index d0b838aa..fcb067a2 100644 --- a/examples/prestashop/swarm.yml +++ b/examples/prestashop/swarm.yml @@ -48,8 +48,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: ps-data: diff --git a/examples/radarr/autoconf.yml b/examples/radarr/autoconf.yml index 65420028..2dccbd75 100644 --- a/examples/radarr/autoconf.yml +++ b/examples/radarr/autoconf.yml @@ -33,5 +33,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/radarr/swarm.yml b/examples/radarr/swarm.yml index 4db47316..57b53281 100644 --- a/examples/radarr/swarm.yml +++ b/examples/radarr/swarm.yml @@ -35,8 +35,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: rr-config: diff --git a/examples/redmine/autoconf.yml b/examples/redmine/autoconf.yml index dfb60794..ba335297 100644 --- a/examples/redmine/autoconf.yml +++ b/examples/redmine/autoconf.yml @@ -41,5 +41,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/redmine/swarm.yml b/examples/redmine/swarm.yml index 4c73de6b..9475d356 100644 --- a/examples/redmine/swarm.yml +++ b/examples/redmine/swarm.yml @@ -41,8 +41,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: redmine-data: diff --git a/examples/reverse-proxy-multisite/autoconf.yml b/examples/reverse-proxy-multisite/autoconf.yml index 41e6533f..1507eea1 100644 --- a/examples/reverse-proxy-multisite/autoconf.yml +++ b/examples/reverse-proxy-multisite/autoconf.yml @@ -27,5 +27,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/reverse-proxy-multisite/swarm.yml b/examples/reverse-proxy-multisite/swarm.yml index 68bedbe9..83836cfa 100644 --- a/examples/reverse-proxy-multisite/swarm.yml +++ b/examples/reverse-proxy-multisite/swarm.yml @@ -31,5 +31,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/reverse-proxy-singlesite/autoconf.yml b/examples/reverse-proxy-singlesite/autoconf.yml index c021f4f5..a36b70bc 100644 --- a/examples/reverse-proxy-singlesite/autoconf.yml +++ b/examples/reverse-proxy-singlesite/autoconf.yml @@ -39,5 +39,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/reverse-proxy-singlesite/swarm.yml b/examples/reverse-proxy-singlesite/swarm.yml index fa61cf0f..c47448d5 100644 --- a/examples/reverse-proxy-singlesite/swarm.yml +++ b/examples/reverse-proxy-singlesite/swarm.yml @@ -31,5 +31,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/swarm-configs/swarm.yml b/examples/swarm-configs/swarm.yml index 41de3fd5..3ab392f3 100644 --- a/examples/swarm-configs/swarm.yml +++ b/examples/swarm-configs/swarm.yml @@ -45,5 +45,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/tomcat/autoconf.yml b/examples/tomcat/autoconf.yml index c5b54316..c38500b5 100644 --- a/examples/tomcat/autoconf.yml +++ b/examples/tomcat/autoconf.yml @@ -17,5 +17,5 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/tomcat/swarm.yml b/examples/tomcat/swarm.yml index b1042381..b80f0225 100644 --- a/examples/tomcat/swarm.yml +++ b/examples/tomcat/swarm.yml @@ -23,8 +23,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services configs: tomcat_app_war: diff --git a/examples/wordpress/autoconf.yml b/examples/wordpress/autoconf.yml index 701b7a6a..50b3459d 100644 --- a/examples/wordpress/autoconf.yml +++ b/examples/wordpress/autoconf.yml @@ -31,7 +31,6 @@ services: t:none,\ setvar:tx.crs_exclusions_wordpress=1" - mydb: image: mariadb volumes: @@ -52,5 +51,5 @@ volumes: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services diff --git a/examples/wordpress/swarm.yml b/examples/wordpress/swarm.yml index f7374138..550714d2 100644 --- a/examples/wordpress/swarm.yml +++ b/examples/wordpress/swarm.yml @@ -42,8 +42,8 @@ services: networks: bw-services: - external: - name: bw-services + external: true + name: bw-services volumes: wp-data: