Heimdall

Heimdall

In an era where the efficiency of managing various web services and applications is paramount, dashboards like Heimdall play a crucial role. Heimdall, named after the Norse deity, the vigilant guardian of the mythical bridge linking the human world to the realm of the gods, serves as a modern-day digital guardian and connector of web services and applications. This blog post will introduce you to Heimdall Dashboard, exploring its features, benefits, and how it can streamline your digital life.

Introduction to Heimdall Dashboard

Heimdall is an application dashboard with a unified interface for accessing and managing multiple web services and applications. It’s designed to simplify the user experience by bringing various services under one roof, making them accessible through a single, user-friendly interface.

Key Features of Heimdall

  1. Unified Access: Heimdall lets you link all your frequently used applications and web services, providing quick access from a centralized location.
  2. Customization: Users can customize the dashboard to suit their preferences, organizing applications and services to best fit their workflow.
  3. Wide Range of Applications: Heimdall supports many applications, from media servers to cloud storage, and even allows adding custom links.
  4. User-Friendly Interface: The dashboard is designed with simplicity and ease of use, making it accessible even for those with minimal technical expertise.

Why Choose Heimdall?

Simplified Management

For individuals and small teams managing numerous web services, Heimdall offers a way to reduce the complexity of navigating between different applications. It saves time and increases productivity by reducing the need to remember multiple URLs, login credentials, and interfaces.

Customizable and Personal

With its customizable interface, Heimdall can be tailored to individual needs, ensuring that the most used services are always at your fingertips. This personalization makes it an ideal tool for both personal and professional use.

Enhances Workflow Efficiency

By streamlining access to various tools and services, Heimdall enhances overall workflow efficiency. It’s particularly beneficial for those relying on many online tools for daily tasks.

Getting Started with Heimdall

Setting up Heimdall is straightforward. It can be deployed on various platforms, including Docker, and once installed, adding and organizing applications is intuitive and user-friendly.

Use Cases

  • Home Media Enthusiasts: Centralize access to various streaming services, media servers, and online libraries.
  • Developers and IT Professionals: Manage access to development, testing, and monitoring tools.
  • Small Business Owners: Organize all business-related applications, from e-commerce platforms to social media channels.

Installing Heimdall on Kubernetes

As with my other applications, I created a Heimdall folder in my infrastructure repository on Git and Azure DevOps. The installation yaml, which creates the workload on Kubernetes, is as follows:-

apiVersion: apps/v1
kind: Deployment
metadata:
  name: homarr
spec:
  replicas: 1
  selector:
    matchLabels:
      app: homarr
  template:
    metadata:
      labels:
       app: homarr
    spec:
      containers:
        - env:
            - name: PORT
              value: "7575"
          image: ghcr.io/ajnart/homarr:latest
          imagePullPolicy: Always
          name: homarr
          ports:
            - name: homarr
              containerPort: 7575
              protocol: TCP
          volumeMounts:
            - mountPath: /app/data/configs
              name: vol-homarr-configs
            - mountPath: /app/data/icons
              name: vol-homarr-icons
      volumes:
        - name: vol-homarr-configs
          persistentVolumeClaim:
            claimName: pvc-homarr-configs
        - name: vol-homarr-icons
          persistentVolumeClaim:
            claimName: pvc-homarr-icons

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-homarr-configs
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: longhorn
  resources:
    requests:
      storage: 1Gi

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-homarr-icons
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: longhorn
  resources:
    requests:
      storage: 1Gi

This creates a couple of persistent volume claims for the config and icons. These spin-up volumes on my Longhorn Storage nodes. The PVCs are then mapped to the /app/data/configs and /app/data/icon folders within the container.

The yaml is stored in a file called ‘heimdall.yaml’ and is deployed on the K8s cluster using the following command: –

kubectl -create heimdall.yaml

The only other part of the puzzle is an Ingress Route. I created another yaml file for the route with the name ingressroute.yaml. It contains the following: –

apiversion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:  
  name: heimdall
spec:  
  entryPoints:
    - websecure  
  routes:    
    - match: Host(`heimdall.intrasoftware.uk`)
      kind: Rule      
      services:        
        - name: heimdall
          port: 80  
  tls:    
    secretName: intrasoftware-uk-tls
Stephen

Hi, my name is Stephen Finchett. I have been a software engineer for over 30 years and worked on complex, business critical, multi-user systems for all of my career. For the last 15 years, I have been concentrating on web based solutions using the Microsoft Stack including ASP.Net, C#, TypeScript, SQL Server and running everything at scale within Kubernetes.