From b3348e6949c596d0f913449f5c0e82a99afe4e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jainil=20Prajapati=20=F0=9F=AA=90?= <86187588+enough-jainil@users.noreply.github.com> Date: Sat, 2 Aug 2025 11:38:42 +0530 Subject: [PATCH] add BookLore template with Docker Compose setup (#259) Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> --- blueprints/booklore/docker-compose.yml | 39 +++++++++++++++++++++++++ blueprints/booklore/image.png | Bin 0 -> 4203 bytes blueprints/booklore/template.toml | 24 +++++++++++++++ meta.json | 13 +++++++++ 4 files changed, 76 insertions(+) create mode 100644 blueprints/booklore/docker-compose.yml create mode 100644 blueprints/booklore/image.png create mode 100644 blueprints/booklore/template.toml diff --git a/blueprints/booklore/docker-compose.yml b/blueprints/booklore/docker-compose.yml new file mode 100644 index 00000000..05cb5433 --- /dev/null +++ b/blueprints/booklore/docker-compose.yml @@ -0,0 +1,39 @@ +services: + booklore: + image: ghcr.io/adityachandelgit/booklore-app:${BOOKLORE_IMAGE_TAG} + environment: + - DATABASE_URL=jdbc:mariadb://mariadb:3306/${MYSQL_DATABASE} + - DATABASE_USERNAME=${MYSQL_USER} + - DATABASE_PASSWORD=${MYSQL_PASSWORD} + depends_on: + mariadb: + condition: service_healthy + ports: + - 6060 + volumes: + - booklore-data:/app/data + - booklore-books:/books + + mariadb: + image: lscr.io/linuxserver/mariadb:latest + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + volumes: + - mariadb-config:/config + restart: unless-stopped + healthcheck: + test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + booklore-data: {} + booklore-books: {} + mariadb-config: {} diff --git a/blueprints/booklore/image.png b/blueprints/booklore/image.png new file mode 100644 index 0000000000000000000000000000000000000000..937db3030f75dcfd9143423c6ebc0bb4738a760e GIT binary patch literal 4203 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 literal 0 HcmV?d00001 diff --git a/blueprints/booklore/template.toml b/blueprints/booklore/template.toml new file mode 100644 index 00000000..32347e8f --- /dev/null +++ b/blueprints/booklore/template.toml @@ -0,0 +1,24 @@ +[variables] +main_domain = "${domain}" +app_password = "${password:32}" +db_root_password = "${password:32}" + +[config] +[[config.domains]] +serviceName = "booklore" +port = 6060 +host = "${main_domain}" + +[config.env] +BOOKLORE_IMAGE_TAG = "latest" +PUID = "1000" +PGID = "1000" +TZ = "Etc/UTC" +MYSQL_DATABASE = "booklore" +MYSQL_USER = "booklore" +# API Key +MYSQL_PASSWORD = "${app_password}" +# API Key +MYSQL_ROOT_PASSWORD = "${db_root_password}" + +[[config.mounts]] \ No newline at end of file diff --git a/meta.json b/meta.json index 076344a8..f9232bb6 100644 --- a/meta.json +++ b/meta.json @@ -3138,6 +3138,19 @@ }, "tags": ["analytics"] }, + { + "id": "booklore", + "name": "Booklore", + "version": "latest", + "description": "Booklore is an application for managing and serving book-related data, backed by a MariaDB database.", + "logo": "image.png", + "links": { + "github": "https://github.com/booklore-app/BookLore", + "website": "https://github.com/booklore-app/BookLore", + "docs": "https://github.com/booklore-app/BookLore/tree/develop/docs" + }, + "tags": ["books", "library", "database", "mariadb"] + }, { "id": "scrypted", "name": "Scrypted",