mirror of
https://github.com/rtomik/helm-charts.git
synced 2026-04-06 10:10:54 +00:00
108 lines
3.9 KiB
Markdown
108 lines
3.9 KiB
Markdown
# Karakeep Helm Chart
|
|
|
|
This Helm chart deploys [Karakeep](https://github.com/karakeep-app/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`:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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 |