From 5c070eba6e88b9d9d8a7afc5be2ee332c70abf8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jainil=20Prajapati=20=F0=9F=AA=90?= <86187588+jaainil@users.noreply.github.com> Date: Thu, 28 Aug 2025 11:58:42 +0530 Subject: [PATCH] Add Calibre-Web template with metadata and links (#307) --- blueprints/calibre-web/docker-compose.yml | 17 +++++++++++++++ blueprints/calibre-web/image.png | Bin 0 -> 8637 bytes blueprints/calibre-web/template.toml | 24 ++++++++++++++++++++++ meta.json | 18 ++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 blueprints/calibre-web/docker-compose.yml create mode 100644 blueprints/calibre-web/image.png create mode 100644 blueprints/calibre-web/template.toml diff --git a/blueprints/calibre-web/docker-compose.yml b/blueprints/calibre-web/docker-compose.yml new file mode 100644 index 00000000..d328d516 --- /dev/null +++ b/blueprints/calibre-web/docker-compose.yml @@ -0,0 +1,17 @@ +services: + calibre-web: + image: lscr.io/linuxserver/calibre-web:latest + restart: unless-stopped + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC +# - DOCKER_MODS=linuxserver/mods:universal-calibre # optional + - OAUTHLIB_RELAX_TOKEN_SCOPE=1 # optional + volumes: + - calibre-config:/config + - calibre-books:/books + +volumes: + calibre-config: {} + calibre-books: {} diff --git a/blueprints/calibre-web/image.png b/blueprints/calibre-web/image.png new file mode 100644 index 0000000000000000000000000000000000000000..77276538ec66f4607521f84276cefeba74cb7cbc GIT binary patch literal 8637 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 literal 0 HcmV?d00001 diff --git a/blueprints/calibre-web/template.toml b/blueprints/calibre-web/template.toml new file mode 100644 index 00000000..29e51dc1 --- /dev/null +++ b/blueprints/calibre-web/template.toml @@ -0,0 +1,24 @@ +[variables] +main_domain = "${domain}" + +[config] + +[[config.domains]] +serviceName = "calibre-web" +port = 8083 +host = "${main_domain}" + +[config.env] +PUID = "1000" +PGID = "1000" +TZ = "Etc/UTC" +DOCKER_MODS = "linuxserver/mods:universal-calibre" +OAUTHLIB_RELAX_TOKEN_SCOPE = "1" + +[[config.mounts]] +name = "calibre-config" +mountPath = "/config" + +[[config.mounts]] +name = "calibre-books" +mountPath = "/books" diff --git a/meta.json b/meta.json index d5e3d921..f33289d7 100644 --- a/meta.json +++ b/meta.json @@ -806,6 +806,24 @@ "E-Commerce" ] }, + { + "id": "calibre-web", + "name": "Calibre-Web", + "version": "latest", + "description": "Calibre-Web is a web app providing a clean interface for browsing, reading, and managing your eBooks library using an existing Calibre database.", + "logo": "image.png", + "links": { + "github": "https://github.com/janeczku/calibre-web", + "website": "https://github.com/janeczku/calibre-web", + "docs": "https://github.com/janeczku/calibre-web/wiki" + }, + "tags": [ + "ebooks", + "media", + "library", + "self-hosted" + ] + }, { "id": "capso", "name": "Cap.so",