about summary refs log tree commit diff
path: root/bundles/calibre
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-02-23 14:35:29 +0100
committerRobert Günzler <r@gnzler.io>2026-02-23 14:35:29 +0100
commitdda6a4b6b5d7f6a379b227caf07a40b535415c53 (patch)
tree8afc8e429fff7d73ddb495b98c6c7de46c1ad2de /bundles/calibre
parent29b57ab7cb0ab1a0c9c9261de843ddc24b81f278 (diff)
deploy calibre
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '')
-rw-r--r--bundles/calibre/files/kube.yaml56
-rw-r--r--bundles/calibre/items.py26
-rw-r--r--bundles/calibre/metadata.py16
3 files changed, 98 insertions, 0 deletions
diff --git a/bundles/calibre/files/kube.yaml b/bundles/calibre/files/kube.yaml
new file mode 100644
index 0000000..b7329f5
--- /dev/null
+++ b/bundles/calibre/files/kube.yaml
@@ -0,0 +1,56 @@
+apiVersion: v1
+kind: Pod
+metadata:
+  name: calibre
+  labels:
+    traefik.enable: true
+    traefik.http.routers.calibre.tls: true
+    traefik.http.routers.calibre.tls.certresolver: le
+    traefik.http.routers.calibre.entrypoints: http,https
+    traefik.http.routers.calibre.rule: Host(`calibre.gzr.im`)
+    traefik.http.routers.calibre.service: calibre
+    traefik.http.services.calibre.loadbalancer.server.port: 8083
+spec:
+  dnsPolicy: Default
+  containers:
+    - name: calibre
+      image: ghcr.io/crocodilestick/calibre-web-automated:v${version}
+      env:
+        - name: PUID
+          value: 1000
+        - name: PGID
+          value: 1000
+        - name: TZ
+          value: Europe/Berlin
+        - name: NETWORK_SHARE_MODE
+          value: 'False'
+        - name: CWA_WATCH_MODE
+          value: poll
+      volumeMounts:
+        - mountPath: /calibre-library
+          name: library
+        - mountPath: /config
+          name: data
+          subPath: config
+        - mountPath: /cwa-book-ingest
+          name: data
+          subPath: inbox
+        - mountPath: /config/.config/calibre/plugins
+          name: data
+          subPath: plugins
+      ports:
+        - containerPort: 8083
+          protocol: TCP
+      livenessProbe:
+        exec:
+          command: ["curl", "-SLf", "localhost:8083/health"]
+        initialDelaySeconds: 10
+  volumes:
+  - name: library
+    hostPath:
+      path: /media/hayasui/media/books
+      type: Directory
+  - name: data
+    hostPath:
+      path: /var/lib/calibre
+      type: Directory
diff --git a/bundles/calibre/items.py b/bundles/calibre/items.py
new file mode 100644
index 0000000..849636e
--- /dev/null
+++ b/bundles/calibre/items.py
@@ -0,0 +1,26 @@
+files = {
+    "/etc/deployments/calibre/kube.yaml": {
+        "content_type": "mako",
+        "context": node.metadata.get("containers")["calibre"],
+        "triggers": {"svc_s6rc:calibre:restart"},
+    },
+}
+
+directories = {
+    "/var/lib/calibre/config": {
+        "owner": "robert",
+        "group": "robert",
+    },
+    "/var/lib/calibre/config/.config/calibre": {
+        "owner": "robert",
+        "group": "robert",
+    },
+    "/var/lib/calibre/inbox": {
+        "owner": "robert",
+        "group": "robert",
+    },
+    "/var/lib/calibre/plugins": {
+        "owner": "robert",
+        "group": "robert",
+    },
+}
diff --git a/bundles/calibre/metadata.py b/bundles/calibre/metadata.py
new file mode 100644
index 0000000..552e281
--- /dev/null
+++ b/bundles/calibre/metadata.py
@@ -0,0 +1,16 @@
+defaults = {
+    "containers": {
+        "calibre": {
+            "version": "4.0.6",
+        },
+    },
+    # "backup": {
+    #     "/var/lib/calibre": {},
+    # },
+    # "metrics": {
+    #     "calibre": {},
+    # },
+    # "go": {
+    #     "calibre": "https://calibre.gzr.im",
+    # },
+}