How to use domain / ssl with SHKeeper?

This guide assumes you are running k3s with Traefik Ingress controler (which is default for k3s).

How to use ssl with SHKeeper?

1) Install cert-manager:


            helm repo add jetstack https://charts.jetstack.io

    

            helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.9.1 \
  --set installCRDs=true


    

2) Create file k3s_cert.yaml with following content (replace "demo.shkeeper.io" and "support@v-sys.org" with your own domain and email address):



---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: shkeeper-cert
  namespace: shkeeper
spec:
  commonName: demo.shkeeper.io
  secretName: shkeeper-cert
  dnsNames:
    - demo.shkeeper.io
  issuerRef:
    name: letsencrypt-production
    kind: ClusterIssuer
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-production
spec:
  acme:
    email: support@v-sys.org
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: your-own-very-secretive-key
    solvers:
      - http01:
          ingress:
            class: traefik
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: shkeeper
  namespace: shkeeper
spec:
  entryPoints:
    - web
    - websecure
  routes:
    - match: Host(demo.shkeeper.io)
      kind: Rule
      services:
        - name: shkeeper
          port: 5000
          namespace: shkeeper
  tls:
    secretName: shkeeper-cert



        

3) Aplly this file:


            kubectl apply -f k3s_cert.yaml

    

4) Now your shkeeper should be reachable on https:// and have a valid ssl