From b0a785bbef156b134fd10aa3819a3e0bc9302769 Mon Sep 17 00:00:00 2001 From: Bryan Joshua Pedini Date: Wed, 5 Apr 2023 13:21:25 +0200 Subject: [PATCH] turned base to bookstack deployment --- LICENSE | 2 +- README.md | 3 +-- docker-compose.yml | 58 +++++++++++++++++++++++++++++++++++++++++----- env.example | 47 ++++++++++++++++++++++++++++++------- 4 files changed, 92 insertions(+), 18 deletions(-) diff --git a/LICENSE b/LICENSE index fe6f694..614f30c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 Bryan Joshua Pedini +Copyright (c) 2023 Bryan Joshua Pedini Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 3ffde1e..fe3f593 100644 --- a/README.md +++ b/README.md @@ -1,2 +1 @@ -# Base App Deployment -This is the base on which (almost) every deployment is sort-of-based on. +# Bookstack Deployment diff --git a/docker-compose.yml b/docker-compose.yml index cf8e041..8d98447 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,30 @@ --- services: - app: + bookstack: + image: linuxserver/bookstack:${BOOKSTACK_VERSION} restart: unless-stopped + depends_on: + - mariadb + environment: + ### LinuxServer.io stuff + - PUID=1000 + - PGID=1000 + - TZ=${GLOBAL_TIMEZONE} + ### Normal Bookstack stuff + - APP_URL="${BOOKSTACK_URL}" + - DB_HOST=mariadb:3306 + - DB_DATABASE=${MARIADB_DATABASE} + - DB_PASSWORD=${MARIADB_PASSWORD} + - DB_USERNAME=${MARIADB_USER} + - LOG_FAILED_LOGIN_MESSAGE="Failed login for %u" + - MAIL_DRIVER=${BOOKSTACK_MAIL_DRIVER} + - MAIL_HOST=${BOOKSTACK_MAIL_HOST} + - MAIL_PORT=${BOOKSTACK_MAIL_PORT} + - MAIL_ENCRYPTION=${BOOKSTACK_MAIL_ENCRYPTION} + - MAIL_FROM=${BOOKSTACK_MAIL_FROM} + - MAIL_FROM_NAME=${BOOKSTACK_MAIL_FROM_NAME} + - MAIL_USERNAME=${BOOKSTACK_MAIL_USERNAME} + - MAIL_PASSWORD=${BOOKSTACK_MAIL_PASSWORD} labels: ### Section Træfik - traefik.enable=${TRAEFIK_ENABLED} @@ -22,15 +45,38 @@ services: # specify a service so a custom port can be used - traefik.http.services.${TRAEFIK_SERVICE}.loadbalancer.server.port=${TRAEFIK_SERVICE_PORT} ### Section Diun - - diun.enable=${DIUN_ENABLE} - - diun.watch_repo=${DIUN_WATCHREPO} - - diun.sort_tags=${DIUN_SORTALGO} - - diun.include_tags=${DIUN_INCLUDE} - - diun.exclude_tags=${DIUN_EXCLUDE} + - diun.enable=${BOOKSTACK_DIUN_ENABLE} + - diun.watch_repo=${BOOKSTACK_DIUN_WATCHREPO} + - diun.sort_tags=${BOOKSTACK_DIUN_SORTALGO} + - diun.include_tags=${BOOKSTACK_DIUN_INCLUDE} + - diun.exclude_tags=${BOOKSTACK_DIUN_EXCLUDE} networks: + - internal - traefik + volumes: + - ${BOOKSTACK_DATA}:/config + mariadb: + image: mariadb:${MARIADB_VERSION} + restart: unless-stopped + environment: + - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} + - MARIADB_DATABASE=${MARIADB_DATABASE} + - MARIADB_PASSWORD=${MARIADB_PASSWORD} + - MARIADB_USER=${MARIADB_USER} + labels: + ### Section Diun + - diun.enable=${MARIADB_DIUN_ENABLE} + - diun.watch_repo=${MARIADB_DIUN_WATCHREPO} + - diun.sort_tags=${MARIADB_DIUN_SORTALGO} + - diun.include_tags=${MARIADB_DIUN_INCLUDE} + - diun.exclude_tags=${MARIADB_DIUN_EXCLUDE} + networks: + - internal + volumes: + - ${MARIADB_DATA}:/var/lib/mysql networks: + internal: traefik: external: true name: ${TRAEFIK_NETWORK} diff --git a/env.example b/env.example index 263f7aa..8da329d 100644 --- a/env.example +++ b/env.example @@ -1,18 +1,47 @@ +# Global +GLOBAL_TIMEZONE=Europe/London + # Træfik TRAEFIK_ENABLED=true TRAEFIK_NETWORK=traefik -TRAEFIK_ROUTER=app_example_com -TRAEFIK_SERVICE=app_example_com +TRAEFIK_ROUTER=bookstack_example_com +TRAEFIK_SERVICE=bookstack_example_com TRAEFIK_SERVICE_PORT=80 -TRAEFIK_MATCHRULE=Host(`app.example.com`) +TRAEFIK_MATCHRULE=Host(`bookstack.example.com`) TRAEFIK_TLSENABLED=true TRAEFIK_CERTRESOLVER=letsencrypt TRAEFIK_HTTP_MIDDLEWARES=http-to-https TRAEFIK_HTTPS_MIDDLEWARES=hsts -# Diun -DIUN_ENABLE=true -DIUN_WATCHREPO=true -DIUN_SORTALGO=semver -DIUN_INCLUDE= -DIUN_EXCLUDE= +# Bookstack +BOOKSTACK_VERSION=23.02.2 +BOOKSTACK_DATA=./data/bookstack +BOOKSTACK_URL=https://bookstack.example.com +BOOKSTACK_MAIL_DRIVER=smtp +BOOKSTACK_MAIL_HOST=smtp.example.com +BOOKSTACK_MAIL_PORT=587 +BOOKSTACK_MAIL_ENCRYPTION=tls +BOOKSTACK_MAIL_FROM=bookstack@example.com +BOOKSTACK_MAIL_FROM_NAME=Bookstack +BOOKSTACK_MAIL_USERNAME=bookstack@example.com +BOOKSTACK_MAIL_PASSWORD=Em41lP4ssw0rd +# Bookstack Diun +BOOKSTACK_DIUN_ENABLE=true +BOOKSTACK_DIUN_WATCHREPO=true +BOOKSTACK_DIUN_SORTALGO=semver +BOOKSTACK_DIUN_INCLUDE= +BOOKSTACK_DIUN_EXCLUDE= + +# MariaDB +MARIADB_VERSION=10.11.2 +MARIADB_DATA=./data/mariadb +MARIADB_ROOT_PASSWORD=Sup3rS3cr3tP4ssw0rd +MARIADB_DATABASE=bookstack +MARIADB_PASSWORD=S3cr3tB00st4ckP4ssw0rd +MARIADB_USER=bookstack +# MariaDB Diun +MARIADB_DIUN_ENABLE=true +MARIADB_DIUN_WATCHREPO=true +MARIADB_DIUN_SORTALGO=semver +MARIADB_DIUN_INCLUDE= +MARIADB_DIUN_EXCLUDE=