[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-8201":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":46,"readmeContent":47,"aiSummary":48,"trendingCount":15,"starSnapshotCount":15,"syncStatus":49,"lastSyncTime":50,"discoverSource":51},8201,"Heimdall","linuxserver\u002FHeimdall","linuxserver","An Application dashboard and launcher",null,"PHP",9211,612,85,11,0,4,13,53,15,39.36,"MIT License",false,"2.x",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"application-dashboard","bookmark","couchpotato","dashboard","emby","heimdall","homepage","htpc","landing","landingpage","muximux","nginx","nzbget","organizr","plex","radarr","sabnzbd","server","sonarr","startpage","2026-06-12 02:01:50","# Heimdall\n\n[![Heimdall_Banner](https:\u002F\u002Fi.imgur.com\u002FiuV8w3y.png)](https:\u002F\u002Fheimdall.site)\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F354974912613449730.svg)](https:\u002F\u002Fdiscord.gg\u002FCCjHKn4)\n[![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Flinuxserver\u002Fheimdall.svg)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Flinuxserver\u002Fheimdall\u002F)\n[![firsttimersonly](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffirst--timers--only-friendly-blue.svg)](https:\u002F\u002Fwww.firsttimersonly.com\u002F)\n[![Paypal](https:\u002F\u002Fheimdall.site\u002Fimg\u002Fpaypaldonate.svg)](https:\u002F\u002Fwww.paypal.me\u002Fheimdall)\n\n___\n\nVisit the website - https:\u002F\u002Fheimdall.site\n___\n\n## About\nAs 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.\n\nHeimdall 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.\n\nWhy not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo.\n\n![Heimdall demo animation](https:\u002F\u002Fi.imgur.com\u002FMrC4QpN.gif)\n\n## Video\nIf you want to see a quick video of Heimdall in use, go to https:\u002F\u002Fyoutu.be\u002FGXnnMAxPzMc\n\n## Supported applications\nYou 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 dashboard. For example, the NZBGet and Sabnzbd Enhanced apps will display the queue size, and download speed while something is downloading.\n\nSupported 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.\n\n[![enhancedapps](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson.svg?label=Enhanced%20Apps&url=https%3A%2F%2Fapps.heimdall.site%2Fstats&query=enhanced_apps&colorB=3f8483&style=for-the-badge&logo=data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAjCAMAAACw\u002F5reAAAAnFBMVEUAAADu7u7u7u7u7u7u7u7x8fHu7u7u7u7u7u7u7u7u7u7u7u7r6+vu7u7v7+\u002Fu7u7t7e3v7+\u002Fv7+\u002Fu7u7u7u7u7u7u7u7u7u7u7u7u7u7v7+\u002Fu7u7p6ent7e3v7+\u002Fv7+\u002Fv7+\u002Fu7u7u7u7u7u7u7u7t7e3\u002F\u002F\u002F\u002Fu7u7u7u7u7u7u7u7w8PDw8PDt7e3u7u7t7e3s7Ozu7u7t7e3u7u4TnCP6AAAAM3RSTlMA+9n3phHw3czC088M5Y5zG6mflWdJFumyfj4sB2NeTi7hiWlDOQPGt5lsMiG9hFQntpFqxQJtAAABnElEQVQoz2WRh3KrQAxFtYWO6ZhucItrynv6\u002F3\u002FLFnA24c6wurpnYBkJZvXduNix6+GXTo8qWnxUPU4m2w0O1ktTozPsftiZpejGlm7C2MWUnRcWOohIo36+PaKyDZdLUOgDXvqQfaT9kwkfvP3AN18E7Kl8hkJHMHSXSSadxaTtTNjJhMkfjFHKMqGlolg4T7mtCbcq8gBCotxkwklFLIQSlQoTHnVWQqzNxYQuzpfmqGVMc5ijHK5yAuIhxbZ5p\u002FS92RZkjv5BKs6aosSIr0JrcXBo1FtICVINKRKK6u0GnraoN84O5KbhjRwYzxCJnQCMtotkdNxjq2F7dJ2RoGuXIBTvc3ROthdmat6hZ7cOyfcxKGV+wTxBkxQxTQTzWOFny\u002F7qS2nzx37T7nbtZj9xu7zUr\u002F323nVy0sQnhwMJktSZrl5v7CjgSQmWi+haUCY8sH4tyc\u002FFGSKGouS+WqBJm8U2NIE\u002F+nLu2tzpF\u002FxVNGy02QzRClafC\u002FysVpDzQJuA8xXsKl8bv+pgpXz57H9Yy3J1lQNY62wUrW+mdzrylWS0QwAAAABJRU5ErkJggg==)](https:\u002F\u002Fapps.heimdall.site\u002Fapplications\u002Fenhanced)\n\n[![foundationapps](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson.svg?label=Foundation%20Apps&url=https%3A%2F%2Fapps.heimdall.site%2Fstats&query=foundation_apps&colorB=3f8483&style=for-the-badge&logo=data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAjCAMAAACw\u002F5reAAAAnFBMVEUAAADu7u7u7u7u7u7u7u7x8fHu7u7u7u7u7u7u7u7u7u7u7u7r6+vu7u7v7+\u002Fu7u7t7e3v7+\u002Fv7+\u002Fu7u7u7u7u7u7u7u7u7u7u7u7u7u7v7+\u002Fu7u7p6ent7e3v7+\u002Fv7+\u002Fv7+\u002Fu7u7u7u7u7u7u7u7t7e3\u002F\u002F\u002F\u002Fu7u7u7u7u7u7u7u7w8PDw8PDt7e3u7u7t7e3s7Ozu7u7t7e3u7u4TnCP6AAAAM3RSTlMA+9n3phHw3czC088M5Y5zG6mflWdJFumyfj4sB2NeTi7hiWlDOQPGt5lsMiG9hFQntpFqxQJtAAABnElEQVQoz2WRh3KrQAxFtYWO6ZhucItrynv6\u002F3\u002FLFnA24c6wurpnYBkJZvXduNix6+GXTo8qWnxUPU4m2w0O1ktTozPsftiZpejGlm7C2MWUnRcWOohIo36+PaKyDZdLUOgDXvqQfaT9kwkfvP3AN18E7Kl8hkJHMHSXSSadxaTtTNjJhMkfjFHKMqGlolg4T7mtCbcq8gBCotxkwklFLIQSlQoTHnVWQqzNxYQuzpfmqGVMc5ijHK5yAuIhxbZ5p\u002FS92RZkjv5BKs6aosSIr0JrcXBo1FtICVINKRKK6u0GnraoN84O5KbhjRwYzxCJnQCMtotkdNxjq2F7dJ2RoGuXIBTvc3ROthdmat6hZ7cOyfcxKGV+wTxBkxQxTQTzWOFny\u002F7qS2nzx37T7nbtZj9xu7zUr\u002F323nVy0sQnhwMJktSZrl5v7CjgSQmWi+haUCY8sH4tyc\u002FFGSKGouS+WqBJm8U2NIE\u002F+nLu2tzpF\u002FxVNGy02QzRClafC\u002FysVpDzQJuA8xXsKl8bv+pgpXz57H9Yy3J1lQNY62wUrW+mdzrylWS0QwAAAABJRU5ErkJggg==)](https:\u002F\u002Fapps.heimdall.site\u002Fapplications\u002Ffoundation)\n\n## Installing\nApart 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).\n\nIf 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.\n\nInstallation is as simple as cloning the repository somewhere, or downloading and extracting the zip\u002Ftar and pointing your httpd document root to the `\u002Fpublic` folder then creating the .env file and generating an encryption key (this is all taken care of for you with the docker). \n\n```\ncd \u002Fpath\u002Fto\u002Fheimdall\ncp .env.example .env\nphp artisan key:generate\n```\n\nFor simple testing you could just go to the folder and type `php artisan serve`\n\nThere is also a multi-arch Docker which supports x86-64, armhf and arm64, instructions on how to use them at\n\n- https:\u002F\u002Fhub.docker.com\u002Fr\u002Flinuxserver\u002Fheimdall\u002F\n\n## Updating\nTo update your instance, simply clone this repository or download the zip\u002Ftar file with the new version and copy it over the old installation.\n\n## Search Providers\nv2.3.0 added the ability for users to customise the search options.\n\nOptions are stored in `\u002Fstorage\u002Fapp\u002Fsearchproviders.yaml` (`\u002Fconfig\u002Fwww\u002Fsearchproviders.yaml` on docker installs), feel free to rearrange the options, add new ones, delete ones you don't use, etc.\n\nConsider contributing to https:\u002F\u002Fgithub.com\u002Flinuxserver\u002FHeimdall\u002Fdiscussions\u002Fcategories\u002Fsearch-providers to help others add new ones.\n\nThe 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.\n\n## New background image not being set\nIf 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.\n\nIf you are using the linuxserver.io docker image simply edit `\u002Fpath\u002Fto\u002Fconfig\u002Fphp\u002Fphp-local.ini` and add `upload_max_filesize = 30M` to the end.\n\n## Docker and enhanced apps\nIf 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.\n\nYou can do this by using `http(s):\u002F\u002Fdocker_name:port` in the config section. Instead of the name you can use the internal docker ip, this usually starts with `172.`\n\n## Languages\nThe 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 `\u002Fresources\u002Flang\u002F`.\n\nTo create a new language translation, make a new folder with the ISO 3166-1 alpha-2 code as the name, copy `app.php` from `\u002Fresources\u002Flang\u002Fen\u002Fapp.php` into your new folder and replace the English strings.\n\nWhen you are finished, create a pull request.\n\nCurrently added languages are\n\n- Breton\n- Chinese\n- Danish\n- Dutch\n- English\n- Finnish\n- French\n- German\n- Greek\n- Hungarian\n- Italian\n- Japanese\n- Korean\n- Lombard\n- Norwegian\n- Polish\n- Portuguese\n- Russian\n- Slovenian\n- Spanish\n- Swedish\n- Turkish\n\n## Web Server Configuration\n\n### Apache\nA `.htaccess` file ships with the app, however, a lot of apache installations disallow `.htaccess` files by default.\nYou will notice this due to some links not working like `\u002Fsettings`.\nIn addition mod-rewrite needs to be enabled if it isn't already.\n\n#### Fixes & work around options\n##### - Apache global allow .htaccess\nFind the `AllowOverride None` line in your apache configuration and change this to `AllowOverride All`\n\n##### - Apache vhost configuration allow .htaccess\nIn the apache vhost configuration in the `\u003CDirectory \u002F>` block add `AllowOverride All`\n\n##### - Add .htaccess content in apache configuration\nYou can add the full `.htaccess` into your apache configuration, this way you do not need to allow `.htaccess` files.\nYou can even shorten the content of the `.htaccess` when inserting it into the apache configuration to:\n```\nOptions +FollowSymLinks\nRewriteEngine On\n\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteRule ^ index.php [L]\n```\n#### More info\nMore info about `AllowOverride` can be found here:\nhttps:\u002F\u002Fhttpd.apache.org\u002Fdocs\u002F2.4\u002Fmod\u002Fcore.html#allowoverride\n\n\n\n### Nginx\nIf you are using Nginx, the following directive in your site configuration will direct all requests to the `index.php` front controller:\n\n```\nlocation \u002F {\n    try_files $uri $uri\u002F \u002Findex.php?$query_string;\n}\n```\nSomeone was using the same Nginx setup to both run this and reverse proxy Plex. Plex is served from `\u002Fweb` so their location was interfering with the `\u002Fwebfonts`.\n\nTherefore, if your fonts aren't showing because you have a location for `\u002Fweb`, add the following:\n```\nlocation \u002Fwebfonts {\n    try_files $uri $uri\u002F;\n}\n```\nIf there are any other locations that might interfere with any of the folders in the `\u002Fpublic` folder, you might have to do the same for those as well, however it's a super fringe case.\n\n### Reverse proxy\nIf you'd like to reverse proxy this app, we recommend using our letsencrypt\u002Fnginx docker image: [SWAG - Secure Web Application Gateway](https:\u002F\u002Fhub.docker.com\u002Fr\u002Flinuxserver\u002Fswag)\nYou 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`\n\n```\nlocation \u002F {\n    auth_basic \"Restricted\";\n    auth_basic_user_file \u002Fconfig\u002Fnginx\u002F.htpasswd;\n    include \u002Fconfig\u002Fnginx\u002Fproxy.conf;\n    proxy_set_header X-Forwarded-Proto https;\n    proxy_pass http:\u002F\u002Fheimdall;\n}\n```\n\n### Self-signed certificates and local CAs\nPer default Heimdall uses the standard certificate bundle file (`ca-certificates.crt`) to verify HTTPS sites and will ignore additional certificates placed in `\u002Fetc\u002Fssl\u002Fcerts`. 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:\n\n- 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.\n- Place the `heimdall.pem` into the container (if you use Docker), for example by placing it in the path that you mapped to `\u002Fconfig`. Make sure that the Heimdall user has read access (`chmod a+r`).\n- Set the `openssl.cafile` setting in `\u002Fconfig\u002Fphp\u002Fphp-local.ini` to your cert bundle:\n\n```\n# \u002Fconfig\u002Fphp\u002Fphp-local.ini\nopenssl.cafile = \u002Fconfig\u002Fheimdall.pem\n```\n\nRestart 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.\n\n## Allow Internal IP Requests\n\nBy default, Heimdall blocks requests to private or reserved IP addresses to mitigate potential security risks such as Server-Side Request Forgery (SSRF). However, you can enable access to internal IPs by setting the `ALLOW_INTERNAL_REQUESTS` environment variable in your `.env` file.\n\n### Steps to Enable Internal IP Requests\n1. Open your `.env` file located in the root directory of your Heimdall installation.\n2. Add the following line:\n   ```env\n   ALLOW_INTERNAL_REQUESTS=true\n   ```\n   Setting this to `true` allows Heimdall to make requests to internal IP addresses (e.g., `192.168.x.x`, `10.x.x.x`, `127.0.0.1`).\n\n3. Save the file and clear the Laravel configuration cache:\n   ```bash\n   php artisan config:clear\n   ```\n\n4. Restart your web server or development server:\n   ```bash\n   php artisan serve\n   ```\n\n### Default Behavior\nIf the `ALLOW_INTERNAL_REQUESTS` variable is not set or is set to `false`, Heimdall will block requests to private or reserved IP addresses and return a `403 Forbidden` error.\n\n### Important Notes\n- Enabling internal IP requests may expose your application to SSRF risks if your Heimdall instance is accessible from the internet. Ensure your instance is properly secured and not publicly accessible.\n- Use this feature only if you trust the internal network and understand the security implications.\n\n## Running offline\nThe apps list is hosted on github, you have a couple of options if you want to run without a connection to the outside world:\n1) Clone the repository and host it yourself, look at the .github actions file to see how to generate the apps list.\n2) Download the apps list and store it as a JSON accessible to Heimdall named `list.json`\n\nWith both options all you need to do is add the following to your `.env`\n`APP_SOURCE=http:\u002F\u002Flocalhost\u002F` Where `http:\u002F\u002Flocalhost\u002F` is the path to the apps list without the name of the file, so if your file is stored at `https:\u002F\u002Fheimdall.local\u002Flist.json` you would put `APP_SOURCE=https:\u002F\u002Fheimdall.local\u002F`\n\n## Support\nhttps:\u002F\u002Fdiscord.gg\u002FCCjHKn4 or through GitHub issues\n\n## Donate\nIf you would like to show your appreciation, feel free to use the link below.\n\n[![PayPal](https:\u002F\u002Fheimdall.site\u002Fimg\u002Fpaypaldonate.svg)](https:\u002F\u002Fwww.paypal.me\u002Fheimdall)\n\n## Credits\n- PHP Framework - [Laravel](https:\u002F\u002Flaravel.com\u002F)\n- Icons - [FontAwesome 5](https:\u002F\u002Ffontawesome.com\u002F)\n- JavaScript - [jQuery](https:\u002F\u002Fjquery.com\u002F)\n- Colour picker - [Huebee](http:\u002F\u002Fhuebee.buzz\u002F)\n- Background image - [pexels](https:\u002F\u002Fwww.pexels.com)\n- Trianglify library - [Trianglify](https:\u002F\u002Fgithub.com\u002Fqrohlf\u002Ftrianglify)\n- Everyone at Linuxserver.io that has helped with the app and let's not forget IronicBadger for the following question that started it all:\n```\nYou know, I would love something like this landing page for all my servers' apps\nthat gives me the ability to pin favourites\nand \u002F or search\n@Stark @Kode do either of you think you'd be able to rustle something like this up?\n```\n\n## License\n\nThis app is open-sourced software licensed under the [MIT license](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT).\n","Heimdall 是一个应用仪表盘和启动器，用于管理和快速访问各种Web应用程序。它使用PHP开发，支持自定义图标、颜色以及为特定应用提供API集成来显示实时状态信息，如下载速度等。此外，Heimdall 还可以作为浏览器的起始页，并集成了搜索引擎功能。此项目非常适合需要集中管理多个Web服务链接或希望拥有个性化主页的个人用户及小团队。其简洁直观的设计使得用户能够轻松找到所需的应用程序，而无需在众多书签中寻找。",2,"2026-06-11 03:16:45","top_language"]