Files
rtomik-helm-charts/charts/karakeep
2025-08-11 11:26:33 +02:00
..
2025-08-11 11:26:33 +02:00
2025-08-11 11:26:33 +02:00
2025-08-11 11:26:33 +02:00
2025-08-11 11:26:33 +02:00
2025-08-11 11:26:33 +02:00

Karakeep Helm Chart

This Helm chart deploys Karakeep, a bookmark management application, along with its required services on a Kubernetes cluster.

Components

This chart deploys three containers in a single pod:

  1. Karakeep: The main bookmark management application
  2. Chrome: Headless Chrome browser for web scraping and preview generation
  3. MeiliSearch: Search engine for fast bookmark search functionality

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.2.0+
  • PV provisioner support in the underlying infrastructure (if persistence is enabled)

Installing the Chart

To install the chart with the release name karakeep:

helm repo add karakeep-chart https://rtomik.github.io/helm-charts
helm install karakeep karakeep-chart/karakeep

Uninstalling the Chart

To uninstall/delete the karakeep deployment:

helm delete karakeep

Configuration

The following table lists the configurable parameters and their default values.

Global Settings

Parameter Description Default
nameOverride Override the name of the chart ""
fullnameOverride Override the full name of the chart ""
replicaCount Number of replicas 1

Karakeep Configuration

Parameter Description Default
karakeep.image.repository Karakeep image repository ghcr.io/karakeep-app/karakeep
karakeep.image.tag Karakeep image tag "release"
karakeep.image.pullPolicy Image pull policy IfNotPresent

Chrome Configuration

Parameter Description Default
chrome.image.repository Chrome image repository gcr.io/zenika-hub/alpine-chrome
chrome.image.tag Chrome image tag "124"

MeiliSearch Configuration

Parameter Description Default
meilisearch.image.repository MeiliSearch image repository getmeili/meilisearch
meilisearch.image.tag MeiliSearch image tag "v1.13.3"

Persistence

Parameter Description Default
persistence.enabled Enable persistent storage true
persistence.data.size Size of data volume 5Gi
persistence.data.storageClass Storage class for data volume ""
persistence.meilisearch.size Size of MeiliSearch volume 2Gi
persistence.meilisearch.storageClass Storage class for MeiliSearch volume ""

Ingress

Parameter Description Default
ingress.enabled Enable ingress false
ingress.hosts[0].host Hostname karakeep.domain.com

Secrets

Parameter Description Default
secrets.create Create secret for environment variables false
secrets.existingSecret Use existing secret ""
secrets.env Environment variables to store in secret {}

Important Configuration:

  1. The default NEXTAUTH_SECRET is set to a placeholder value. For production deployments, you should either:

    • Override the value: --set karakeep.env[3].value="your-secure-32-character-string"
    • Use secrets: --set secrets.create=true --set secrets.env.NEXTAUTH_SECRET="your-secure-32-character-string"
  2. When ingress is enabled, NEXTAUTH_URL is automatically set to the ingress hostname. For custom configurations:

    • Override manually: --set karakeep.env[4].value="https://your-domain.com"

Notes

  • This chart creates a multi-container pod with all three services running together
  • Data persistence is enabled by default with separate volumes for Karakeep data and MeiliSearch indices
  • The services communicate via localhost since they share the same pod network
  • Chrome runs with security flags for containerized environments