No introduction found. Create it?
Install with:
helm repo add shelfmark oci://ghcr.io/bjw-s-labs/helm/app-template
helm install shelfmark shelfmark/app-template -f values.yamlSee examples from other people.
| Name | Repo | Stars | Version | Timestamp |
|---|---|---|---|---|
| shelfmark | billimek/k8s-gitops | 752 | 4.6.2 | 2 hours ago |
| shelfmark | ahgraber/homelab-gitops-k3s | 104 | 4.6.2 | 4 days ago |
| shelfmark | jfroy/flatops | 33 | 4.6.2 | 6 days ago |
See the most popular values for this chart:
| Key | Types |
|---|---|
controllers.shelfmark.containers.app.env.INGEST_DIR (6) /cwa-book-ingest | string |
| number | |
| string | |
| string | |
| string | |
controllers.shelfmark.containers.app.env.CALIBRE_WEB_URL (2) https://calibre.${SECRET_DOMAIN} | string |
| string | |
| string, number | |
controllers.shelfmark.containers.app.env.DESTINATION_AUDIOBOOK (2) /media/books/audiobooks | string |
controllers.shelfmark.containers.app.env.EXT_BYPASSER_URL (2) http://flaresolverr.default:8191 | string |
| string | |
| string | |
| string | |
| string | |
| string | |
| string | |
| string | |
controllers.shelfmark.containers.app.env.PROWLARR_URL (2) http://prowlarr:9696 | string |
controllers.shelfmark.containers.app.env.QBITTORRENT_URL (2) http://qbittorrent:80 | string |
| string | |
| string, boolean | |
controllers.shelfmark.containers.app.env.AUDIOBOOK_LIBRARY_URL (1) https://abs.eviljungle.com | string |
controllers.shelfmark.containers.app.env.AUDIOBOOKSHELF_LIBRARY_ID (1) 1461f532-1ee2-43f8-9f60-702176e1c3ac | string |
| boolean | |
controllers.shelfmark.containers.app.env.CLOUDFLARE_PROXY_URL (1) http://localhost:8000 | string |
| string | |
controllers.shelfmark.containers.app.env.CUSTOM_SCRIPT (1) /config/scripts/scan-audiobookshelf.sh | string |
| string | |
| boolean | |
controllers.shelfmark.containers.app.env.TEMPLATE_AUDIOBOOK_ORGANIZE (1) {Author}/{Title}/{Author} - {Title}{ (}{PartNumber}{)} | string |
| boolean | |
| boolean | |
controllers.shelfmark.containers.app.image.repository (6) ghcr.io/calibrain/shelfmark | string |
| string | |
| boolean | |
| boolean | |
| string | |
| number | |
| number | |
| number | |
| number | |
| number | |
| boolean | |
| boolean | |
| string | |
| number | |
| number | |
| number | |
| number | |
| number | |
| boolean | |
| number | |
| number | |
controllers.shelfmark.containers.app.probes.startup.spec.httpGet.path (1) /request/api/status | string |
| number | |
| boolean | |
| string | |
| number | |
| string | |
| string | |
| boolean | |
| boolean | |
| string | |
| string | |
controllers.shelfmark.containers.app.args[] (2) - --access-logfile=- | string |
| string | |
controllers.shelfmark.containers.shelfmark.args[] (1) - --access-logfile=- | string |
| string | |
controllers.shelfmark.containers.shelfmark.env.INGEST_DIR (1) /media2/library/books/ingest | string |
controllers.shelfmark.containers.shelfmark.env.TZ (1) America/Los_Angeles | string |
controllers.shelfmark.containers.shelfmark.image.repository (1) ghcr.io/calibrain/shelfmark | string |
controllers.shelfmark.containers.shelfmark.image.tag (1) v1.0.1@sha256:1efbbd45ea434cb4f5abde217e19c35280ea1de9eb2c0baa37e6b8cddac32fae | string |
| boolean | |
| boolean | |
| string | |
| number | |
| boolean | |
| boolean | |
| string | |
| number | |
| boolean | |
| string | |
| boolean | |
| string | |
| string | |
controllers.shelfmark.initContainers.init.command[] (1) - bash | string |
controllers.shelfmark.initContainers.init.image.repository (1) ghcr.io/calibrain/shelfmark | string |
controllers.shelfmark.initContainers.init.image.tag (1) v1.0.1@sha256:1efbbd45ea434cb4f5abde217e19c35280ea1de9eb2c0baa37e6b8cddac32fae | string |
| boolean | |
| string | |
| boolean | |
| string | |
| string | |
| string | |
| string | |
| number | |
| string | |
| number | |
| boolean | |
| number | |
| string | |
route.app.hostnames[] (6) - shelfmark.${SECRET_DOMAIN} | string |
route.app.parentRefs[].name (6) internal | string |
route.app.parentRefs[].namespace (6) kube-system | string |
| string | |
| string | |
| number | |
| string | |
| string | |
| string | |
| string | |
| string | |
route.shelfmark.hostnames[] (1) - shelfmark.kantai.xyz | string |
route.shelfmark.parentRefs[].name (1) envoy-internal | string |
| string | |
| number | |
service.app.controller (3) shelfmark | string |
service.shelfmark.controller (1) shelfmark | string |
| number | |
| string | |
| number | |
| number | |
| boolean | |
| number | |
| string | |
| number | |
| boolean | |
| boolean | |
persistence.config.existingClaim (5) {{ .Release.Name }} | string |
| string | |
persistence.config.accessMode (1) ReadWriteOnce | string |
persistence.config.advancedMounts.shelfmark.app[].path (1) /config | string |
| string | |
| string | |
persistence.config.storageClass (1) ceph-block | string |
persistence.tmp.globalMounts[].path (4) /tmp | string |
| string | |
persistence.tmp.type (4) emptyDir | string |
| string | |
persistence.media.path (3) /mnt/tank/media | string |
persistence.media.server (3) nas.home | string |
| string | |
| string | |
persistence.media.advancedMounts.shelfmark.app[].path (1) /cwa-book-ingest | string |
persistence.media.advancedMounts.shelfmark.app[].subPath (1) downloads/openbooks | string |
persistence.tmpfs.type (3) emptyDir | string |
persistence.tmpfs.globalMounts[].path (2) /tmp | string |
persistence.tmpfs.globalMounts[].subPath (1) tmp | string |
persistence.tmpfs.advancedMounts.shelfmark.app[].path (1) /.config | string |
persistence.tmpfs.advancedMounts.shelfmark.app[].subPath (1) config | string |
| string | |
| string | |
persistence.ingest.globalMounts[].path (2) /cwa-book-ingest | string |
| boolean | |
| string | |
persistence.ingest.existingClaim (1) calibre-library | string |
persistence.ingest.path (1) /volume1/media/calibre/ingest | string |
persistence.ingest.server (1) ${NAS_ADDR} | string |
| string | |
persistence.calibre-web-db.existingClaim (1) calibre-web-automated | string |
| string | |
| boolean | |
| string | |
persistence.cwa-book-ingest.path (1) /mnt/tank/media/books/ingest | string |
persistence.cwa-book-ingest.server (1) 192.168.20.21 | string |
| string | |
persistence.media2.existingClaim (1) media-smb-kantai1 | string |
persistence.media2.type (1) persistentVolumeClaim | string |
| number | |
persistence.scripts.globalMounts[].path (1) /config/scripts | string |
| boolean | |
| string | |
persistence.scripts.type (1) configMap | string |
configMaps.scripts.data."scan-audiobookshelf.sh" (1) #!/bin/sh
set -e
# Validate required environment variables
if [ -z "$AUDIOBOOKSHELF_TOKEN" ]; then
echo "ERROR: AUDIOBOOKSHELF_TOKEN environment variable is not set" >&2
exit 1
fi
if [ -z "$AUDIOBOOKSHELF_LIBRARY_ID" ]; then
echo "ERROR: AUDIOBOOKSHELF_LIBRARY_ID environment variable is not set" >&2
exit 1
fi
# Audiobookshelf API endpoint
AUDIOBOOKSHELF_URL="http://audiobookshelf:80"
SCAN_ENDPOINT="${AUDIOBOOKSHELF_URL}/api/libraries/${AUDIOBOOKSHELF_LIBRARY_ID}/scan"
echo "Triggering Audiobookshelf library scan..."
echo "Library ID: ${AUDIOBOOKSHELF_LIBRARY_ID}"
echo "Endpoint: ${SCAN_ENDPOINT}"
# Trigger the library scan
HTTP_CODE=$(curl -s -o /tmp/abs-response.json -w "%{http_code}" \
-X POST \
-H "Authorization: Bearer ${AUDIOBOOKSHELF_TOKEN}" \
"${SCAN_ENDPOINT}")
echo "Response code: ${HTTP_CODE}"
# Check if the request was successful
if [ "$HTTP_CODE" = "200" ]; then
echo "SUCCESS: Audiobookshelf library scan triggered successfully"
cat /tmp/abs-response.json 2>/dev/null || true
rm -f /tmp/abs-response.json
exit 0
else
echo "ERROR: Failed to trigger Audiobookshelf library scan (HTTP ${HTTP_CODE})" >&2
cat /tmp/abs-response.json 2>/dev/null || true
rm -f /tmp/abs-response.json
exit 1
fi
| string |