diff --git a/bookstack/docker-compose.yml b/bookstack/docker-compose.yml new file mode 100644 index 0000000..c9810db --- /dev/null +++ b/bookstack/docker-compose.yml @@ -0,0 +1,69 @@ +services: + bookstack-db: + image: ${BOOKSTACK_DB_IMAGE} + container_name: bookstack-db + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: ${BOOKSTACK_DB_ROOT_PASSWORD} + MYSQL_DATABASE: ${BOOKSTACK_DB_NAME} + MYSQL_USER: ${BOOKSTACK_DB_USER} + MYSQL_PASSWORD: ${BOOKSTACK_DB_PASSWORD} + TZ: ${TZ} + volumes: + - ${BOOKSTACK_DB_PATH}:/var/lib/mysql:Z + networks: + - bookstack + + bookstack: + image: ${BOOKSTACK_IMAGE} + container_name: bookstack + restart: unless-stopped + depends_on: + - bookstack-db + environment: + PUID: ${BOOKSTACK_PUID} + PGID: ${BOOKSTACK_PGID} + TZ: ${TZ} + APP_KEY: ${APP_KEY} + APP_URL: https://${BOOKSTACK_DOMAIN} + DB_HOST: bookstack-db + DB_PORT: 3306 + DB_DATABASE: ${BOOKSTACK_DB_NAME} + DB_USERNAME: ${BOOKSTACK_DB_USER} + DB_PASSWORD: ${BOOKSTACK_DB_PASSWORD} + APP_LANG: ${BOOKSTACK_LANG} + APP_DEFAULT_DARK_MODE: ${BOOKSTACK_DARK_MODE} + MAIL_DRIVER: smtp + MAIL_HOST: mail-relay + MAIL_PORT: 587 + MAIL_FROM: ${BOOKSTACK_MAIL_FROM} + MAIL_FROM_NAME: ${BOOKSTACK_MAIL_FROM_NAME} + volumes: + - ${BOOKSTACK_DATA_PATH}:/config:Z + networks: + - bookstack + - proxy + - mail_internal + labels: + traefik.enable: "true" + traefik.docker.network: "${TRAEFIK_DOCKER_NETWORK}" + traefik.http.routers.bookstack.rule: "Host(`${BOOKSTACK_DOMAIN}`)" + traefik.http.routers.bookstack.entrypoints: "${TRAEFIK_ENTRYPOINT_SECURE}" + traefik.http.routers.bookstack.tls: "true" + traefik.http.routers.bookstack.tls.certresolver: "${TRAEFIK_CERTRESOLVER}" + traefik.http.routers.bookstack.middlewares: "crowdsec-bouncer@file,${TRAEFIK_AUTH_MIDDLEWARE}" + traefik.http.services.bookstack.loadbalancer.server.port: "80" + homepage.group: "Productividad" + homepage.name: "BookStack" + homepage.icon: "bookstack.png" + homepage.href: "https://${BOOKSTACK_DOMAIN}/" + homepage.description: "Base de conocimiento y documentacion" + homepage.siteMonitor: "https://${BOOKSTACK_DOMAIN}/" + +networks: + bookstack: + driver: bridge + mail_internal: + external: true + proxy: + external: true diff --git a/bookstack/stack.env b/bookstack/stack.env new file mode 100644 index 0000000..6935805 --- /dev/null +++ b/bookstack/stack.env @@ -0,0 +1,29 @@ +##### MariaDB BookStack ##### +BOOKSTACK_DB_IMAGE=mariadb:11 +BOOKSTACK_DB_ROOT_PASSWORD=change-me-root +BOOKSTACK_DB_NAME=bookstack +BOOKSTACK_DB_USER=bookstack +BOOKSTACK_DB_PASSWORD=change-me +BOOKSTACK_DB_PATH=/opt/bookstack/db + +##### BookStack ##### +BOOKSTACK_IMAGE=lscr.io/linuxserver/bookstack:latest +BOOKSTACK_PUID=1000 +BOOKSTACK_PGID=1000 +TZ=Europe/Madrid + +BOOKSTACK_DOMAIN=wiki.example.com +APP_KEY= +BOOKSTACK_LANG=es +BOOKSTACK_DARK_MODE=true +BOOKSTACK_DATA_PATH=/opt/bookstack/data + +##### Correo ##### +BOOKSTACK_MAIL_FROM=bookstack@example.com +BOOKSTACK_MAIL_FROM_NAME=BookStack + +##### Traefik ##### +TRAEFIK_DOCKER_NETWORK=proxy +TRAEFIK_ENTRYPOINT_SECURE=websecure +TRAEFIK_CERTRESOLVER=letsencrypt +TRAEFIK_AUTH_MIDDLEWARE=ths-authentik@docker