• Stars
    star
    7,832
  • Rank 4,838 (Top 0.1 %)
  • Language
    PHP
  • License
    MIT License
  • Created almost 7 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Application dashboard and launcher

Heimdall

Heimdall_Banner

Discord Docker Pulls firsttimersonly Paypal


Visit the website - https://heimdall.site


About

As the name suggests Heimdall Application Dashboard is a dashboard for all your web applications. It doesn't need to be limited to applications though, you can add links to anything you like.

Heimdall is an elegant solution to organise all your web applications. Itโ€™s dedicated to this purpose so you wonโ€™t lose your links in a sea of bookmarks.

Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo.

Heimdall demo animation

Video

If you want to see a quick video of Heimdall in use, go to https://youtu.be/GXnnMAxPzMc

Supported applications

You can use the app to link to any site or application, but Foundation apps will auto fill in the icon for the app and supply a default color for the tile. In addition, Enhanced apps allow you provide details to an apps API, allowing you to view live stats directly on the dashboad. For example, the NZBGet and Sabnzbd Enhanced apps will display the queue size, and download speed while something is downloading.

Supported applications are recognized by the title of the application as entered in the title field when adding an application. For example, to add a link to pfSense, begin by typing "p" in the title field and then select "pfSense" from the list of supported applications.

enhancedapps

foundationapps

Installing

Apart from the Laravel 10 dependencies, namely PHP >= 8.1, Ctype PHP Extension, cURL PHP Extension, DOM PHP Extension, Fileinfo PHP Extension, Filter PHP Extension, Hash PHP Extension, Mbstring PHP Extension, OpenSSL PHP Extension, PCRE PHP Extension, PDO PHP Extension, Session PHP Extension, Tokenizer PHP Extension, XML PHP Extension, the only other thing Heimdall needs is sqlite support and zip support (php-zip).

If you find you can't change the background make sure php_fileinfo is enabled in your php.ini. I believe php_fileinfo should be enabled by default, but one user came across the issue on a windows system.

Installation is as simple as cloning the repository somewhere, or downloading and extracting the zip/tar and pointing your httpd document root to the /public folder then creating the .env file and generating an encryption key (this is all taken care of for you with the docker).

cd /path/to/heimdall
cp .env.example .env
php artisan key:generate

For simple testing you could just go to the folder and type php artisan serve

There is also a multi-arch Docker which supports x86-64, armhf and arm64, instructions on how to use them at

Updating

To update your instance, simply clone this repository or download the zip/tar file with the new version and copy it over the old installation.

Search Providers

v2.3.0 added the ability for users to customise the search options.

Options are stored in /storage/app/searchproviders.yaml (/config/www/searchproviders.yaml on docker installs), feel free to rearrange the options, add new ones, delete ones you don't use, etc.

Consider contributing to https://github.com/linuxserver/Heimdall/discussions/categories/search-providers to help others add new ones.

The item at the top of the list Tiles allows you to search for apps on your dashboard by name, this can be helpful when you have lots of icons.

New background image not being set

If you are using the docker image or a default php install you may find images over 2MB won't get set as the background image, you just need to change the upload_max_filesize in the php.ini.

If you are using the linuxserver.io docker image simply edit /path/to/config/php/php-local.ini and add upload_max_filesize = 30M to the end.

Docker and enhanced apps

If you are running the docker and the EnhancedApps you are using are also in dockers, you may need to use the docker networking addresses to communicate with them.

You can do this by using http(s)://docker_name:port in the config section. Instead of the name you can use the internal docker ip, this usually starts with 172.

Languages

The app has been translated into several languages; however, the quality of the translations could benefit from some work. If you would like to improve them, or help with other translations, they are stored in /resources/lang/.

To create a new language translation, make a new folder with the ISO 3166-1 alpha-2 code as the name, copy app.php from /resources/lang/en/app.php into your new folder and replace the English strings.

When you are finished, create a pull request.

Currently added languages are

  • Breton
  • Chinese
  • Danish
  • Dutch
  • English
  • Finnish
  • French
  • German
  • Greek
  • Hungarian
  • Italian
  • Japanese
  • Korean
  • Lombard
  • Norwegian
  • Polish
  • Portuguese
  • Russian
  • Slovenian
  • Spanish
  • Swedish
  • Turkish

Web Server Configuration

Apache

A .htaccess file ships with the app, however, a lot of apache installations disallow .htaccess files by default. You will notice this due to some links not working like /settings. In addition mod-rewrite needs to be enabled if it isn't already.

Fixes & work around options

- Apache global allow .htaccess

Find the AllowOverride None line in your apache configuration and change this to AllowOverride All

- Apache vhost configuration allow .htaccess

In the apache vhost configuration in the <Directory /> block add AllowOverride All

- Add .htaccess content in apache configuration

You can add the full .htaccess into your apache configuration, this way you do not need to allow .htaccess files. You can even shorten the content of the .htaccess when inserting it into the apache configuration to:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

More info

More info about AllowOverride can be found here: https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride

Nginx

If you are using Nginx, the following directive in your site configuration will direct all requests to the index.php front controller:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

Someone was using the same Nginx setup to both run this and reverse proxy Plex. Plex is served from /web so their location was interfering with the /webfonts.

Therefore, if your fonts aren't showing because you have a location for /web, add the following:

location /webfonts {
    try_files $uri $uri/;
}

If there are any other locations that might interfere with any of the folders in the /public folder, you might have to do the same for those as well, however it's a super fringe case.

Reverse proxy

If you'd like to reverse proxy this app, we recommend using our letsencrypt/nginx docker image: SWAG - Secure Web Application Gateway You can either reverse proxy from the root location, or from a subdomain (subfolder method is currently not supported). For HTTPS proxy, make sure you use the HTTPS port of Heimdall webserver, otherwise some links may break. You can add security through .htpasswd

location / {
    auth_basic "Restricted";
    auth_basic_user_file /config/nginx/.htpasswd;
    include /config/nginx/proxy.conf;
    proxy_set_header X-Forwarded-Proto https;
    proxy_pass http://heimdall;
}

Self-signed certificates and local CAs

Per default Heimdall uses the standard certificate bundle file (ca-certificates.crt) to verify HTTPS sites and will ignore additional certificates placed in /etc/ssl/certs. If you wish to use enhanced apps with HTTPS sites that use a self-signed certificate or certs signed with your own local CA, you can override the default bundle:

  • Create a unified certificate .pem file that contains all CAs and certificates that Heimdall has to verify. For example, if you use both LetsEncrypt and a local CA for your internal apps, concatenate the LetsEncrypt intermediate CA (export via browser) and your local CA cert.pem (or any number of self-signed certs) into one heimdall.pem file.
  • Place the heimdall.pem into the container (if you use Docker), for example by placing it in the path that you mapped to /config. Make sure that the Heimdall user has read access (chmod a+r).
  • Set the openssl.cafile setting in /config/php/php-local.ini to your cert bundle:
# /config/php/php-local.ini
openssl.cafile = /config/heimdall.pem

Restart the container and the Enhanced apps should now be able to access your local HTTP websites. This configuration will survive updating or recreating the Heimdall container.

Running offline

The apps list is hosted on github, you have a couple of options if you want to run without a connection to the outside world:

  1. Clone the repository and host it yourself, look at the .github actions file to see how to generate the apps list.
  2. Download the apps list and store it as a JSON accessible to Heimdall named list.json

With both options all you need to do is add the following to your .env APP_SOURCE=http://localhost/ Where http://localhost/ is the path to the apps list without the name of the file, so if your file is stored at https://heimdall.local/list.json you would put APP_SOURCE=https://heimdall.local/

Support

https://discord.gg/CCjHKn4 or through GitHub issues

Donate

If you would like to show your appreciation, feel free to use the link below.

PayPal

Credits

  • PHP Framework - Laravel
  • Icons - FontAwesome 5
  • JavaScript - jQuery
  • Colour picker - Huebee
  • Background image - pexels
  • Trianglify library - Trianglify
  • Everyone at Linuxserver.io that has helped with the app and let's not forget IronicBadger for the following question that started it all:
You know, I would love something like this landing page for all my servers' apps
that gives me the ability to pin favourites
and / or search
@Stark @Kode do either of you think you'd be able to rustle something like this up?

License

This app is open-sourced software licensed under the MIT license.

More Repositories

1

docker-wireguard

Dockerfile
2,824
star
2

docker-swag

Nginx webserver and reverse proxy with php support and a built-in Certbot (Let's Encrypt) client. It also contains fail2ban for intrusion prevention.
Dockerfile
2,734
star
3

docker-webtop

Ubuntu, Alpine, Arch, and Fedora based Webtop images, Linux in a web browser supporting popular desktop environments.
Dockerfile
1,720
star
4

docker-code-server

Dockerfile
1,566
star
5

reverse-proxy-confs

These confs are pulled into our SWAG image: https://github.com/linuxserver/docker-swag
1,319
star
6

docker-plex

Dockerfile
992
star
7

docker-mods

Documentation and Examples of base container modifications
Dockerfile
940
star
8

docker-unifi-controller

Dockerfile
897
star
9

docker-calibre-web

Dockerfile
877
star
10

docker-qbittorrent

Dockerfile
868
star
11

docker-letsencrypt

DEPRECATED: Please use linuxserver/swag instead
Dockerfile
727
star
12

docker-bookstack

A Docker container for the BookStack documentation wiki
Dockerfile
687
star
13

docker-sonarr

Dockerfile
672
star
14

docker-jellyfin

Dockerfile
628
star
15

budge

JavaScript
617
star
16

docker-unifi-network-application

Dockerfile
616
star
17

docker-radarr

Dockerfile
595
star
18

docker-nextcloud

Dockerfile
571
star
19

docker-emulatorjs

Web based retro emulation frontend with rom scanning and automated art ingestion.
Dockerfile
502
star
20

docker-transmission

Dockerfile
486
star
21

docker-openssh-server

Dockerfile
484
star
22

emulatorjs

Self hosted web based retro emulation front end with rom and art management.
JavaScript
389
star
23

docker-calibre

Dockerfile
352
star
24

docker-jackett

Dockerfile
346
star
25

docker-heimdall

Dockerfile
311
star
26

docker-grocy

A container for grocy - the ERP application for your kitchen https://grocy.info
Dockerfile
308
star
27

docker-prowlarr

Docker image for Prowlarr/Prowlarr
Dockerfile
299
star
28

Heimdall-Apps

Apps for Heimdall
PHP
299
star
29

docker-smokeping

Shell
287
star
30

docker-duplicati

Dockerfile
283
star
31

docker-kasm

Kasm Workspaces platform provides enterprise-class orchestration, data loss prevention, and web streaming technology to enable the delivery of containerized workloads to your browser.
Shell
282
star
32

docker-baseimage-kasmvnc

Base Images for remote web based Linux desktops using KasmVNC for many popular distros.
Shell
275
star
33

docker-netbootxyz

Dockerfile
257
star
34

docker-syncthing

Dockerfile
235
star
35

docker-bazarr

Dockerfile
232
star
36

docker-deluge

Dockerfile
223
star
37

docker-rdesktop

Dockerfile
222
star
38

docker-sabnzbd

Dockerfile
210
star
39

docker-lidarr

Dockerfile
204
star
40

docker-homeassistant

Dockerfile
200
star
41

docker-tautulli

Dockerfile
184
star
42

docker-duckdns

Shell
183
star
43

docker-mariadb

Dockerfile
181
star
44

docker-healthchecks

Dockerfile
176
star
45

docker-couchpotato

Dockerfile
153
star
46

docker-ombi

Dockerfile
153
star
47

davos

Web-based FTP automation for Linux servers.
Java
151
star
48

docker-rutorrent

DEPRECATED
PHP
151
star
49

docker-nzbget

Dockerfile
140
star
50

docker-ffmpeg

Dockerfile
139
star
51

docker-firefox

Dockerfile
135
star
52

docker-tvheadend

Dockerfile
134
star
53

fleet

Status and image fleet metadata management application for Docker images
Java
127
star
54

Clarkson

Web-based fuel logging dashboard
TypeScript
126
star
55

docker-freshrss

HTML
124
star
56

docker-baseimage-alpine

Dockerfile
124
star
57

docker-docker-compose

Shell
123
star
58

docker-nginx

Dockerfile
122
star
59

docker-kodi-headless

Dockerfile
122
star
60

docker-snipe-it

Alpine/Nginx container for the Asset Management software Snipe-IT
Dockerfile
115
star
61

docker-documentation

The repo behind...
108
star
62

docker-ddclient

Dockerfile
106
star
63

docker-emby

Dockerfile
106
star
64

docker-readarr

Container for readarr.com
105
star
65

docker-dokuwiki

Dockerfile
104
star
66

docker-piwigo

Dockerfile
104
star
67

docker-obsidian

Dockerfile
104
star
68

docker-resilio-sync

Dockerfile
102
star
69

docker-wireshark

Dockerfile
101
star
70

docker-overseerr

Dockerfile
98
star
71

docker-baseimage-guacgui

Dockerfile
98
star
72

docker-openvscode-server

Dockerfile
98
star
73

docker-beets

Dockerfile
97
star
74

docker-baseimage-ubuntu

Dockerfile
97
star
75

docker-daapd

Dockerfile
96
star
76

docker-chromium

Web accessible Chromium inside an Alpine Container
Dockerfile
96
star
77

docker-ubooquity

Dockerfile
94
star
78

docker-steamos

Vanilla Arch modified into SteamOS with web based Desktop access, useful for remote play and lower end games
Dockerfile
93
star
79

docker-netbox

Python
81
star
80

docker-libreoffice

Dockerfile
81
star
81

docker-pyload-ng

Dockerfile
80
star
82

docker-wikijs

Dockerfile
79
star
83

docker-lazylibrarian

Dockerfile
77
star
84

heimdalljs

JavaScript
77
star
85

docker-mastodon

Dockerfile
76
star
86

docker-baseimage-rdesktop-web

Custom all in one container for running GUI apps from a web browser
Dockerfile
72
star
87

docker-speedtest-tracker

Dockerfile
72
star
88

docker-librespeed

HTML
70
star
89

docker-projectsend

Dockerfile
69
star
90

docker-ldap-auth

Python
68
star
91

docker-diskover

A Docker container for the Diskover space mapping application
Dockerfile
68
star
92

gclient

NodeJS application replacement for the default Guacamole Client
JavaScript
67
star
93

docker-tt-rss

Dockerfile
65
star
94

docker-nzbhydra2

Dockerfile
65
star
95

docker-mstream

Dockerfile
62
star
96

docker-remmina

Dockerfile
62
star
97

docker-organizr

DEPRECATED
Dockerfile
61
star
98

docker-snapdrop

HTML
60
star
99

docker-blender

Responsive web accessible Blender Docker container with hardware acceleration.
Dockerfile
57
star
100

docker-budge

Dockerfile
56
star