diff --git a/README.md b/README.md index 823224f..f6efd57 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ Tools to keep the ship sailing smooth. ``` Because all work and no play makes the server a dull boy. +* **Books**: `books/booklore` - eBook management (Booklore). * **Games**: `games/core-keeper` - Dedicated server for Core Keeper. * **Media**: `media/` - (Coming Soon) The media stack. @@ -60,6 +61,8 @@ Because all work and no play makes the server a dull boy. ``` . +├── books/ +│ └── booklore/ ├── container_management/ │ └── portainer/ ├── dns/ diff --git a/books/booklore/.env.example b/books/booklore/.env.example new file mode 100644 index 0000000..cf4b656 --- /dev/null +++ b/books/booklore/.env.example @@ -0,0 +1,3 @@ +BOOKLORE_DB_PASSWORD=secret +BOOKLORE_DB_ROOT_PASSWORD=secret +BOOKLORE_DB_USER=booklore diff --git a/books/booklore/docker-compose.yml b/books/booklore/docker-compose.yml new file mode 100644 index 0000000..b8bfb06 --- /dev/null +++ b/books/booklore/docker-compose.yml @@ -0,0 +1,55 @@ +version: "3.8" + +services: + booklore: + image: booklore/booklore:latest + container_name: booklore + restart: unless-stopped + depends_on: + - mariadb + environment: + - USER_ID=1000 + - GROUP_ID=1000 + - TZ=Etc/UTC + - DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore + - DATABASE_USERNAME=${BOOKLORE_DB_USER:-booklore} + - DATABASE_PASSWORD=${BOOKLORE_DB_PASSWORD} + volumes: + - ${CONFIG_ROOT}/booklore/data:/app/data + - ${MEDIA_PATH}/books:/books + - ${MEDIA_PATH}/bookdrop:/bookdrop + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik_public" + - "traefik.http.routers.booklore.rule=Host(`booklore.${DOMAIN}`)" + - "traefik.http.routers.booklore.entrypoints=https" + - "traefik.http.routers.booklore.tls.certresolver=cloudflare" + - "traefik.http.services.booklore.loadbalancer.server.port=8080" + - "homepage.group=Books" + - "homepage.name=Booklore" + - "homepage.icon=booklore.png" + - "homepage.href=https://booklore.${DOMAIN}" + - "homepage.description=eBook Manager" + networks: + - traefik_public + - internal + + mariadb: + image: mariadb:10.6 + container_name: booklore-mariadb + restart: unless-stopped + environment: + - MARIADB_ROOT_PASSWORD=${BOOKLORE_DB_ROOT_PASSWORD} + - MARIADB_DATABASE=booklore + - MARIADB_USER=${BOOKLORE_DB_USER:-booklore} + - MARIADB_PASSWORD=${BOOKLORE_DB_PASSWORD} + volumes: + - ${CONFIG_ROOT}/booklore/db:/var/lib/mysql + networks: + - internal + +networks: + traefik_public: + external: true + internal: + driver: bridge