Grav
Grav is a modern Content Management System (CMS) that utilizes a flat file structure and Markdown so there is no database needed. This makes Grav light weight, performant, and easy to maintain. Grav still offers many of the same amenities as larger projects such as templates and plugins, but without some of the hassles that can come from running something as complex as Wordpress or Drupal if you don't need that functionality. I use Grav (with specific templates) for this Homelab site as well as my online resume.
Product: Grav
Install Type: Helm (Chart)
Container Image: Truecharts
Installation Details
Unfortunaly, TrueCharts seems to be one of the few available charts for Grav. For Helm charts, If you have not yet added this Helm repository, you can add it with:
helm repo add truecharts https://charts.truecharts.org
I generally pull the values to a file and modify that file for my specific needs:
helm show values truecharts/grav > values.yaml
This allows me to modify different environment specific configurations such as persistent storage and others. Please configure as appropriate for your environment.
Once you have made all of your changes, deploy with the following:
helm upgrade --install --namespace web --create-namespace \
-f values.yaml grav truecharts/grav
I have had issues with the ingress in this chart that I have had not had time to circle back on it. Right now I manually define an ingress with the following:
01-grav-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grav
labels:
app: grav-7.0.31
namespace: home
annotations:
cert-manager.io/cluster-issuer: 'letsencrypt'
spec:
rules:
- host: your.host.name
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: grav
port:
number: 80
tls:
- hosts:
- your.host.name
secretName: grav-tls
This of course assumes you have configured an Ingress (with a LoadBalancer defined with something like MetalLB) and Cert Manager with Let's Encrypt as an ACME provider.