Grav


Adguard HomeGrav 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.