| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| chart | ||
| docs | ||
| .gitignore | ||
| LICENSE | ||
| mkdocs.yml | ||
| README.md | ||
mealie-k3s 🍳
A self-contained Helm chart to deploy the Mealie recipe manager on Kubernetes (k3s, k8s, microk8s) with a single command.
This chart bundles:
- Mealie: The application itself.
- PostgreSQL: A persistent database backend using the Bitnami/postgresql chart.
- MetalLB: Automatic
LoadBalancerIP assignment for bare-metal clusters.
Prerequisites
- A Kubernetes Cluster: This guide assumes you have a cluster running. For quick local setup, see the MicroK8s instructions below.
- Helm: The Kubernetes package manager. Install Helm.
- kubectl: The Kubernetes command-line tool, configured to access your cluster.
Option A: Quick Cluster Setup (MicroK8s)
If you don't have a cluster, MicroK8s is a lightweight, easy-to-install option.
-
Install MicroK8s:
sudo snap install microk8s --classic -
Join User Group:
sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube newgrp microk8s -
Check Status:
microk8s status --wait-ready -
Enable Core Addons:
microk8s enable dns storage- Note: Do NOT enable
microk8s enable metallb. This chart deploys MetalLB via Helm, which is the preferred way, to manage it as part of the application stack.
- Note: Do NOT enable
Option B: Existing k3s/k8s Cluster
If you have an existing cluster, just ensure kubectl is configured and you have Helm installed.
🚀 Deployment
-
Clone This Repository:
git clone [https://github.com/YOUR-USERNAME/mealie-k3s.git](https://github.com/YOUR-USERNAME/mealie-k3s.git) cd mealie-k3s -
Add Helm Repositories: This adds the Bitnami and MetalLB chart repositories so Helm can find the dependencies.
helm repo add bitnami [https://charts.bitnami.com/bitnami](https://charts.bitnami.com/bitnami) helm repo add metallb [https://metallb.github.io/metallb](https://metallb.github.io/metallb) helm repo update -
Build Chart Dependencies: This downloads the
postgresqlandmetallbcharts into thechart/chartsdirectory.helm dependency build ./chart -
‼️ IMPORTANT: Configure
values.yaml: Before you install, you must edit the configuration file:nano ./chart/values.yaml- MetalLB IP Range: Under
metallb.configInline.address-pools.addresses, change the IP range ("192.168.1.240-192.168.1.250") to a free, static IP range on your local network. This range must not be part of your router's DHCP pool. - Passwords: Change the default passwords under
postgresql.auth.
- MetalLB IP Range: Under
-
Install the Chart: This command deploys Mealie, PostgreSQL, and MetalLB into a new namespace called
mealie.helm install mealie ./chart --namespace mealie --create-namespace
Accessing Mealie
-
Wait for Deployment: It may take 3-5 minutes for the database to initialize and the application to start. You can watch the pods:
kubectl get pods -n mealie -w -
Find Your IP Address: Once the pods are running, find the external IP assigned by MetalLB:
kubectl get svc -n mealieLook for
mealie-mealie-svcand copy theEXTERNAL-IP. -
Log In: Open the
EXTERNAL-IPin your browser. The default Mealie admin credentials are:- Email:
[email protected] - Password:
MyPassword
- Email:
Uninstalling
To remove the deployment and all its data:
helm uninstall mealie -n mealie
kubectl delete namespace mealie
## LICENSE
GNU GENERAL PUBLIC LICENSE v3