Skip to main content

Heimdall - App Launcher

Heimdall is no longer being hosted on It is in the process of being replaced with Homer.


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

Deployment details


Heimdall is served by the SWAG reverse proxy. It is published as the root page on 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:

  # ...
    container_name: heimdall
      - PUID=938 # swag
      - PGID=941 # servlets
      - TZ=America/Los_Angeles
      - ./heimdall_config:/config
    restart: unless-stopped


We want to make Heimdall the root page for 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,}