104 lines
2.8 KiB
YAML
104 lines
2.8 KiB
YAML
version: '3.7'
|
|
services:
|
|
db:
|
|
image: mariadb:10.5
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=${TZ}
|
|
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASS}
|
|
- MYSQL_DATABASE=${DB_DATABASE}
|
|
- MYSQL_USER=${DB_USERNAME}
|
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
volumes:
|
|
- db-data:/var/lib/mysql
|
|
networks:
|
|
- backend
|
|
|
|
cache:
|
|
image: redis:6-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=${TZ}
|
|
volumes:
|
|
- cache:/data/
|
|
networks:
|
|
- backend
|
|
|
|
app:
|
|
image: jjtc/bookstack-ppm:0.31.6-r0
|
|
build: ./app/
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
- cache
|
|
volumes:
|
|
- .env:/app/.env:rw
|
|
- ./app/ppm.json:/app/ppm.json:ro
|
|
- ./app/php.ini:/etc/php7/php.ini:ro
|
|
- ./app/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
- ./app/default.conf:/etc/nginx/sites-enabled/default:ro
|
|
- uploads:/app/public/uploads:rw
|
|
- storage:/app/public/storage:rw
|
|
expose:
|
|
- "8888/tcp"
|
|
networks:
|
|
- web
|
|
- backend
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.bookstack.entrypoints=http"
|
|
- "traefik.http.routers.bookstack.rule=Host(`${APP_URL_BASE}`)"
|
|
- "traefik.http.routers.bookstack.middlewares=redirect-https@file"
|
|
- "traefik.http.routers.bookstack-secure.entrypoints=https"
|
|
- "traefik.http.routers.bookstack-secure.rule=Host(`${APP_URL_BASE}`)"
|
|
- "traefik.http.routers.bookstack-secure.tls=true"
|
|
- "traefik.http.routers.bookstack-secure.tls.certresolver=default"
|
|
- "traefik.http.routers.bookstack-secure.service=bookstack"
|
|
- "traefik.http.services.bookstack.loadbalancer.server.scheme=http"
|
|
- "traefik.http.services.bookstack.loadbalancer.server.port=8888"
|
|
|
|
# av:
|
|
# image: jjtc/av:0.100.0-r0
|
|
# build: ./av/
|
|
# restart: unless-stopped
|
|
# tty: true
|
|
# environment:
|
|
# - TZ=${TZ}
|
|
# volumes:
|
|
# - ./av/conf/:/etc/clamav/
|
|
# networks:
|
|
# - backend
|
|
# labels:
|
|
# - "traefik.enable=false"
|
|
|
|
#traefik:
|
|
# image: traefik:2.1
|
|
# restart: unless-stopped
|
|
# security_opt:
|
|
# - no-new-privileges:true
|
|
# command:
|
|
# - --entrypoints.web.address=:80
|
|
# - --entrypoints.websecure.address=:443
|
|
# - --providers.docker=true
|
|
- # - --certificatesresolvers.leresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
|
|
# - --certificatesresolvers.leresolver.acme.email=your@email.com
|
|
# - --certificatesresolvers.leresolver.acme.storage=/acme.json
|
|
# - --certificatesresolvers.leresolver.acme.tlschallenge=true
|
|
# ports:
|
|
# - "80:80/tcp"
|
|
# - "443:443/tcp
|
|
# volumes:
|
|
# - "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
# - "./acme.json:/acme.json:rw"
|
|
|
|
networks:
|
|
backend:
|
|
web:
|
|
external: true
|
|
|
|
volumes:
|
|
db-data:
|
|
cache:
|
|
uploads:
|
|
storage:
|