Skip to main content

Heimdall - App Launcher

Description

Heimdall is an app launcher / dashboard. It serves as the landing page for swag.kasad.com.

Deployment details

Access

Heimdall is served by the SWAG reverse proxy. It is published as the root page on swag.kasad.com. It requires authentication and authorization by Cloudflare Access.

Docker Compose stack

The Heimdall container runs as part of the SWAG stack. Unlike Authelia, it will not be separated into its own stack because it is the SWAG frontend.

The Docker Compose service configuration for Heimdall is:

services:
  # ...
  heimdall:
    image: lscr.io/linuxserver/heimdall
    container_name: heimdall
    environment:
      - PUID=938 # swag
      - PGID=941 # servlets
      - TZ=America/Los_Angeles
    volumes:
      - ./heimdall_config:/config
    restart: unless-stopped

Configuration

We want to make Heimdall the root page for swag.kasad.com so it acts as a dashboard/landing page. This requires two changes in the Secure Web Application Gateway's NGINX configs:

Disabling the default SWAG root

To disable the default SWAG root, we need the comment out the root location block in the default site config. Since this is the root page, its configuration is located in config/nginx/site-confs/default rather than in config/nginx/proxy-confs/....

Find and comment out the root location block. It should look like this when done:

    #location / {
    #    # enable the next two lines for http auth
    #    #auth_basic "Restricted";
    #    #auth_basic_user_file /config/nginx/.htpasswd;

    #    # enable the next two lines for ldap auth
    #    #auth_request /auth;
    #    #error_page 401 =200 /ldaplogin;

    #    # enable for Authelia
    #    #include /config/nginx/authelia-location.conf;

    #    try_files $uri $uri/ /index.html /index.php?$args =404;
    #}

Now that this is disabled, any subfolder configuration file in config/nginx/proxy-confs with a location / { ... } block will be active.

Enabling the Heimdall page

Enabling Heimdall as the root page is easy, as the sample configuration shipped with the SWAG container already uses the root location. All we need to do is make a copy the sample file and remove the .sample suffix:

$ cp -v config/nginx/proxy-confs/heimdall.subfolder.conf{.sample,}