Skip to main content
Version: v0.19.0

Kubernetes

Requirements

  • A kubernetes cluster
  • kubectl
  • kustomize

1. Get the deployment manifests

You can clone the repository and copy the /kubernetes directory into another directory of your choice.

2. Populate the environment variables

To configure the app, edit the configuration in .env.

You should change the random strings. You can use openssl rand -base64 36 to generate the random strings. You should also change the NEXTAUTH_URL variable to point to your server address.

Using HOARDER_VERSION=release will pull the latest stable version. You might want to pin the version instead to control the upgrades (e.g. HOARDER_VERSION=0.10.0). Check the latest versions here.

3. Setup OpenAI

To enable automatic tagging, you'll need to configure OpenAI. This is optional though but hightly recommended.

  • Follow OpenAI's help to get an API key.
  • Add the OpenAI API key to the .env file:
OPENAI_API_KEY=<key>

Learn more about the costs of using openai here.

[EXPERIMENTAL] If you want to use Ollama (https://ollama.com/) instead for local inference.

Note: The quality of the tags you'll get will depend on the quality of the model you choose. Running local models is a recent addition and not as battle tested as using openai, so proceed with care (and potentially expect a bunch of inference failures).

  • Make sure ollama is running.
  • Set the OLLAMA_BASE_URL env variable to the address of the ollama API.
  • Set INFERENCE_TEXT_MODEL to the model you want to use for text inference in ollama (for example: mistral)
  • Set INFERENCE_IMAGE_MODEL to the model you want to use for image inference in ollama (for example: llava)
  • Make sure that you ollama pull-ed the models that you want to use.

4. Deploy the service

Deploy the service by running:

make deploy

5. Access the service

By default, these manifests expose the application as a LoadBalancer Service. You can run kubectl get services to identify the IP of the loadbalancer for your service.

Then visit http://<loadbalancer-ip>:3000 and you should be greated with the Sign In page.

Note: Depending on your setup you might want to expose the service via an Ingress, or have a different means to access it.

[Optional] 6. Setup quick sharing extensions

Go to the quick sharing page to install the mobile apps and the browser extensions. Those will help you hoard things faster!

Updating

Edit the HOARDER_VERSION variable in the kustomization.yaml file and run make clean deploy.