mirror of
https://github.com/rtomik/helm-charts.git
synced 2026-04-05 09:40:38 +00:00
3.9 KiB
3.9 KiB
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:
- Karakeep: The main bookmark management application
- Chrome: Headless Chrome browser for web scraping and preview generation
- 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:
-
The default
NEXTAUTH_SECRETis 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"
- Override the value:
-
When ingress is enabled,
NEXTAUTH_URLis automatically set to the ingress hostname. For custom configurations:- Override manually:
--set karakeep.env[4].value="https://your-domain.com"
- Override manually:
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