Skip to content

feat: Add Helm chart #1350

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 22, 2025
Merged

Conversation

sheyabernstein
Copy link
Contributor

@sheyabernstein sheyabernstein commented May 2, 2025

Adds a Helm chart for Kubernetes.

The chart inherits from the bjw-s library and Meilesearch charts, providing common configurations. It also includes options for setting up authentication, configuring environment variables, and integrating with external services like OIDC for secure login.

Changes include:

  • Added Karakeep chart with StatefulSet for persistence and deployment.
  • Included configuration for Meilisearch and Chrome containers.
  • Support for OIDC authentication configuration.
  • Configurable storage, secrets, and ingress settings.

Resolves #468

@timstott
Copy link

Thank you for your contribution. I am looking forward to have an official chart.

Would you be open to remove the dependency on the bjw-s library to ease maintenance? I am happy to help

@sheyabernstein
Copy link
Contributor Author

sheyabernstein commented May 11, 2025

Hey @timstott, I used the bjw-s common library as a base to avoid reinventing the wheel — it provides a lot of flexible patterns and handles much of the boilerplate, which makes it easier to maintain and extend, similar to the Meilisearch chart. It's also well maintained and widely used in the self-hosting community, as well as in downstream projects. That said, I'm happy to discuss what a minimal, standalone chart would look like if you’d prefer to keep dependencies to a minimum. Appreciate your openness to help!

- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222
- --headless
- --disable-gpu
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add the missing --disable-dev-shm-usage and --hide-scrollbars?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in f168984

@@ -0,0 +1,38 @@
# Karakeep Helm chart
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add some instructions on how to install the chart and how to upgrade it?

Copy link
Contributor Author

@sheyabernstein sheyabernstein May 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bit is a little tricky, it requires repo permissions to set up Github Pages and CI.

Docs: https://github.com/helm/chart-releaser-action

Once CI and Pages are configured, we can add the Helm repository URL in the README with instructions. For now, you can checkout this branch, navigate to the chart directory, and run the command below

helm upgrade -i --create-namespace -n karakeep karakeep .

@MohamedBassem
Copy link
Collaborator

Thanks a lot for the PR! I'd personally also prefer if we don't have the bjw-s dependency, but at the same time, I'm not very familiar with helm and not very familiar with how much boilerplate it saves.

@@ -0,0 +1,38 @@
# Karakeep Helm chart

Helm chart for deploying Karakeep along with:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are your thoughts on moving the helm chart README to charts/karakeep/README.md where it is traditionally kept? We can then reference it in the root README.

As an example the meilisearch chart README

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The meili repo is a dedicated chart repo while karakeep would have the chart in the main repo under a charts subdir. Ultimately I'll defer to the maintainers on this.


secrets:
karakeep:
enabled: true
Copy link

@timstott timstott May 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do I understand correctly that setting the parameter to false enables users to declare their own Secret as long as it has the name "{{ .Release.Name }}"?.

This is a sought after feature when using gitops to checkin secrets into source control using sealed-secrets for example.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, that will prevent the chart from creating secrets.

@MohamedBassem MohamedBassem merged commit 43d3210 into karakeep-app:main Jun 22, 2025
@MohamedBassem
Copy link
Collaborator

I'm sorry this took that long to be merged :) Thanks a lot for the PR.

@sheyabernstein
Copy link
Contributor Author

Thanks for merging @MohamedBassem :)

Can Github Pages be set up with actions to build and release the chart for new versions?

https://helm.sh/docs/howto/chart_releaser_action/

@MohamedBassem
Copy link
Collaborator

The charts are now released in a separate repo here: https://karakeep-app.github.io/helm-charts/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Helm Chart Support
3 participants