bunkerweb/examples/nextcloud/docker-compose.yml

120 lines
3.4 KiB
YAML
Raw Normal View History

version: "3"
2020-10-25 17:30:34 +00:00
services:
2022-06-03 15:24:14 +00:00
mybunker:
image: bunkerity/bunkerweb:1.5.0
2020-10-25 17:30:34 +00:00
ports:
2020-10-26 21:46:15 +00:00
- 80:8080
- 443:8443
2020-10-25 17:30:34 +00:00
environment:
2023-03-13 08:42:22 +00:00
- SERVER_NAME=www.example.com # replace with your domain
- AUTO_LETS_ENCRYPT=yes
- DISABLE_DEFAULT_SERVER=yes
- MAX_CLIENT_SIZE=10G
- USE_CLIENT_CACHE=yes
- SERVE_FILES=no
- ALLOWED_METHODS=GET|POST|HEAD|COPY|DELETE|LOCK|MKCOL|MOVE|PROPFIND|PROPPATCH|PUT|UNLOCK|OPTIONS
- X_FRAME_OPTIONS=SAMEORIGIN
- USE_GZIP=yes
- BAD_BEHAVIOR_STATUS_CODES=400 401 403 405 444
- USE_REVERSE_PROXY=yes
- REVERSE_PROXY_URL=/
- REVERSE_PROXY_HOST=http://mync
- LIMIT_REQ_URL_1=/apps
- LIMIT_REQ_RATE_1=5r/s
- LIMIT_REQ_URL_2=/apps/text/session/sync
- LIMIT_REQ_RATE_2=8r/s
- LIMIT_REQ_URL_3=/core/preview
- LIMIT_REQ_RATE_3=5r/s
- |
CUSTOM_CONF_MODSEC_CRS_nextcloud=
SecAction \
"id:900130,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:tx.crs_exclusions_nextcloud=1"
# WebDAV
SecAction \
"id:900200,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:'tx.allowed_methods=GET POST HEAD COPY DELETE LOCK MKCOL MOVE PROPFIND PROPPATCH PUT UNLOCK OPTIONS'"
- |
CUSTOM_CONF_MODSEC_nextcloud=
SecRule REQUEST_FILENAME "@rx ^/remote.php/dav/files/" "id:2000,ctl:ruleRemoveByTag=attack-protocol,ctl:ruleRemoveByTag=attack-generic,nolog"
labels:
- "bunkerweb.INSTANCE" # required for the scheduler to recognize the container
networks:
- bw-universe
- bw-services
2022-12-02 14:37:23 +00:00
bw-scheduler:
image: bunkerity/bunkerweb-scheduler:1.5.0
depends_on:
- mybunker
environment:
2023-03-13 08:42:22 +00:00
- DOCKER_HOST=tcp://bw-docker-proxy:2375
volumes:
- bw-data:/data
networks:
- bw-universe
2023-03-13 08:42:22 +00:00
- bw-docker
2023-03-13 08:42:22 +00:00
bw-docker-proxy:
2022-12-05 10:47:56 +00:00
image: tecnativa/docker-socket-proxy:0.1
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- CONTAINERS=1
networks:
2023-03-13 08:42:22 +00:00
- bw-docker
2020-10-25 17:30:34 +00:00
mync:
2022-08-25 07:12:13 +00:00
image: nextcloud:24-apache
2020-10-25 17:30:34 +00:00
volumes:
2023-03-13 08:42:22 +00:00
- nc-files:/var/www/html
2020-10-25 17:30:34 +00:00
environment:
- NEXTCLOUD_ADMIN_USER=admin # replace with the admin username
- NEXTCLOUD_ADMIN_PASSWORD=changeme # replace with a stronger password
2022-06-03 15:24:14 +00:00
- NEXTCLOUD_TRUSTED_DOMAINS=www.example.com # replace with your domain(s)
- TRUSTED_PROXIES=192.168.0.0/16 172.16.0.0/12 10.0.0.0/8
- APACHE_DISABLE_REWRITE_IP=1
- MYSQL_HOST=mydb
- MYSQL_DATABASE=${NEXTCLOUD_DATABASE:-nextclouddb}
- MYSQL_USER=${NEXTCLOUD_USER:-user}
- MYSQL_PASSWORD=${NEXTCLOUD_PASSWORD:-secret} # set a stronger password in a .env file (must match MYSQL_PASSWORD)
networks:
- bw-services
2020-10-25 17:30:34 +00:00
mydb:
2023-03-13 08:42:22 +00:00
image: mariadb:10.9
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
2020-10-25 17:30:34 +00:00
volumes:
2023-03-13 08:42:22 +00:00
- ./db-data:/var/lib/mysql
2020-10-25 17:30:34 +00:00
environment:
2023-03-13 08:42:22 +00:00
- MYSQL_ROOT_PASSWORD=db-root-pwd # replace with a stronger password
- MYSQL_DATABASE=nc
- MYSQL_USER=user
- MYSQL_PASSWORD=db-user-pwd # replace with a stronger password (must match MYSQL_PASSWORD)
networks:
- bw-universe
- bw-services
volumes:
bw-data:
db-data:
2023-03-13 08:42:22 +00:00
nc-files:
networks:
bw-universe:
ipam:
driver: default
config:
- subnet: 10.20.30.0/24
bw-services:
2023-03-13 08:42:22 +00:00
bw-docker: