linuxserver / heimdall-apps Goto Github PK
View Code? Open in Web Editor NEWApps for Heimdall
License: MIT License
Apps for Heimdall
License: MIT License
Steps to reproduce:
ErrorException (E_ERROR)
Undefined property: stdClass::$override_url (View: /config/www/SupportedApps/FreshRSS/config.blade.php) (View: /config/www/SupportedApps/FreshRSS/config.blade.php) (View: /config/www/SupportedApps/FreshRSS/config.blade.php)
Previous exceptions
Undefined property: stdClass::$override_url (View: /config/www/SupportedApps/FreshRSS/config.blade.php) (View: /config/www/SupportedApps/FreshRSS/config.blade.php) (0)
Undefined property: stdClass::$override_url (View: /config/www/SupportedApps/FreshRSS/config.blade.php) (0)
Undefined property: stdClass::$override_url (0)
And then the code:
/var/www/localhost/heimdall/storage/framework/views/b6a959ada2fd2d558e1ac447a23fdcea43a76cd6.php
<h2><?php echo e(__('app.apps.config')); ?> (<?php echo e(__('app.optional')); ?>) <?php echo $__env->make('items.enable', \Illuminate\Support\Arr::except(get_defined_vars(), array('__data', '__path')))->render(); ?></h2>
<div class="items">
<div class="input">
<label><?php echo e(strtoupper(__('app.url'))); ?></label>
<?php echo Form::text('config[override_url]', (isset($item) ? $item->getconfig()->override_url : null), array('placeholder' => __('app.apps.override'), 'id' => 'override_url', 'class' => 'form-control')); ?>
</div>
<div class="input">
<label><?php echo e(__('app.apps.username')); ?></label>
<?php echo Form::text('config[username]', $item->getconfig()->username ?? null, array('placeholder' => __('app.apps.username'), 'data-config' => 'username', 'class' => 'form-control config-item')); ?>
</div>
<div class="input">
<label><?php echo e(__('app.apps.apikey')); ?></label>
<?php echo Form::text('config[apikey]', $item->getconfig()->apikey ?? null, array('placeholder' => __('app.apps.apikey'), 'data-config' => 'apikey', 'class' => 'form-control config-item')); ?>
</div>
<div class="input">
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button>
</div>
</div>
Arguments
"Undefined property: stdClass::$override_url (View: /config/www/SupportedApps/FreshRSS/config.blade.php) (View: /config/www/SupportedApps/FreshRSS/config.blade.php) (View: /config/www/SupportedApps/FreshRSS/config.blade.php) โ"
I am running Heimdall in a container, if it matters.
Hi,
When I add rutorrent and set the config options with the url, username and password and click test it says 'connection successful', I am using feralhosting and I have managed to get it working with Transdrone app. However after I have saved it, i get the following error.
{
"message": "Trying to get property 'value' of non-object",
"exception": "ErrorException",
"file": "/opt/heimdall/app/SupportedApps/ruTorrent/ruTorrent.php",
"line": 34,
"trace": [
{
"file": "/opt/heimdall/app/SupportedApps/ruTorrent/ruTorrent.php",
"line": 34,
"function": "handleError",
"class": "Illuminate\\Foundation\\Bootstrap\\HandleExceptions",
"type": "->"
},
{
"file": "/opt/heimdall/app/Http/Controllers/ItemController.php",
"line": 366,
"function": "livestats",
"class": "App\\SupportedApps\\ruTorrent\\ruTorrent",
"type": "->"
},
{
"function": "getStats",
"class": "App\\Http\\Controllers\\ItemController",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
"line": 54,
"function": "call_user_func_array"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
"line": 45,
"function": "callAction",
"class": "Illuminate\\Routing\\Controller",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 219,
"function": "dispatch",
"class": "Illuminate\\Routing\\ControllerDispatcher",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
"line": 176,
"function": "runController",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 682,
"function": "run",
"class": "Illuminate\\Routing\\Route",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/opt/heimdall/app/Http/Middleware/CheckAllowed.php",
"line": 37,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "App\\Http\\Middleware\\CheckAllowed",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
"line": 41,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php",
"line": 75,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php",
"line": 49,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\View\\Middleware\\ShareErrorsFromSession",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php",
"line": 63,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Session\\Middleware\\StartSession",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php",
"line": 37,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php",
"line": 66,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Cookie\\Middleware\\EncryptCookies",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 684,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 659,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 625,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
"line": 614,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 176,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 30,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/fideloper/proxy/src/TrustProxies.php",
"line": 57,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Fideloper\\Proxy\\TrustProxies",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 31,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
"line": 31,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
"line": 62,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 163,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
"line": 53,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
"line": 104,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 151,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->"
},
{
"file": "/opt/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
"line": 116,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},
{
"file": "/opt/heimdall/public/index.php",
"line": 55,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
}
]
}
When editing AdGuardHome I get the following:
"htmlspecialchars() expects parameter 1 to be string, array given (View: /config/www/SupportedApps/AdGuardHome/config.blade.php) (View: /config/www/SupportedApps[ โถ]()"
I'm not sure if this is an issue in the apps files or the main app itself, but since the file that is causing the error is in this repo, I figured this is the best place to raise it.
Running Heimdall 2.4.11
I'm getting 500 Server Error when saving trying to save Private Apps using Heimdall version 2.4.15 (even if it says 2.4.13).
Testapp was made by duplicating Pihole App and changing:
I've ran commands as per wiki for private apps. App is being listed in Application Type at the bottom of the list. Noticed that description is missing. Unable to save and getting 500 server error.
Hello,
When connecting to the ruTorrent Advanced Plugin, you will get an error 404 that http(s)://YOURRUTORRENTURL/RPC2
isn't found. Please change the /RPC2
in the SupportedApps/ruTorrent/ruTorrent.php
to /plugins/rpc/rpc.php
and the script will connect succesfully.
Hello,
just updated from Jellyfin 10.6.4 stable to 10.7.0 stable today and, while it's API seems still able to communicate with Heimdall ("Successfully communicated with the API" message when tested), chosen datas are not displayed anymore. I did not try previous Jellyfin 10.7.0 RC, only the stable released today.
Many thanks to the Heimdall team.
Wiki says:
Go to https://apps.heimdall.site, depending if the app you are creating is a foundation or enhanced app, go to the relevant section and download the Zip for any application (More actions).
I cant find neither Zip nor More actions.
In the settings, create an option for a user selectable default hex color to be used when you select Application None. Then if they user wants to change it for a specific button, they can override that on the Add Application page.
The stash logo could use an update https://github.com/linuxserver/Heimdall-Apps/blob/master/Stash/stash.png
I've never seen that logo in the time I've been using the app and it is really low quality.
The official SVG of the logo is https://stashapp.cc/images/stash.svg directly from their site https://stashapp.cc
Is there a way to put in a URL in Heimdall where when I click on it, it does not prepend with http? I am wanting to do some x-callback urls... like things:// for example
in order to let users know right away what is actually enhanced about the enhanced apps, all the logos in the enhanced app list page should be dynamic, like previews.
for example, the small GIF for NZBGet in the main page is incredibly useful to understand its functionality:
ideally, this should be done for all the enhanced apps.
@KodeStar: @keriati talking of tests, if you get it figured out, it might be worth seeing if you can come up with something for https://github.com/linuxserver/Heimdall-Apps/ it would be really nice if we could have some tests run just to make sure its ready to be merged so someone just has to cast a quick glance over it. Something like:
Foundation app
Enhanced app
after logging in
folder view -> datacenter -> summary
you get nice stats and overview
The livestats for AdGuardHome are probably broken. When I go to:
http://myuser:mypass@IP/control/stats <-- Forbidden
http://myuser:mypass@IP <-- Redirects to login page.
Using Version: v0.107.0
For some background, I have only been using this app for about a week and have no history with or understanding of PHP.
That said, my Plex integration is not working. Other users have reported this in a discussion topic as well as on Reddit:
All of my other integrations work just fine, and I am running Plex through a docker container with 'host' networking.
Reverting these commits fixes the issue:
I am attempting to add plausible analytics to my website via the custom JavaScript.
But it seems that it's both stripping the script block closing and not running the script at all.
Ik would be nice to have backgrounds from unsplash.
After Update Pi-Hole admin web interface the live-stats gone missing.
In this Update Pihole added authentication to more endpoints.
https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/
It seems that the pi-hole part is just calling the api.php endpoint without any queries.
https://github.com/linuxserver/Heimdall-Apps/blob/master/Pihole/Pihole.php
To get it running again the endpoint should be called with the empty query summaryRaw
and the api token in the query param auth
. So the config-ui should also ask for the api key. In my setup I have following results:
HTTP 200 OK https://host/admin/api.php
[]
The correct endpoint should be.
https://host/admin/api.php?summaryRaw&auth=654065165cd1sa56d106c5115cd10as651d0652013rdc2dcas
HTTP 200 OK {"domains_being_blocked":50123,"dns_queries_today":100123,"ads_blocked_today":80123,"ads_percentage_today":38.890179,"unique_domains":2123,"queries_forwarded":20123,"queries_cached":10123,"clients_ever_seen":20,"unique_clients":12,"dns_queries_all_types":100123,"reply_UNKNOWN":555,"reply_NODATA":5555,"reply_NXDOMAIN":999,"reply_CNAME":10123,"reply_IP":12312,"reply_DOMAIN":123,"reply_RRNAME":0,"reply_SERVFAIL":15,"reply_REFUSED":0,"reply_NOTIMP":0,"reply_OTHER":0,"reply_DNSSEC":0,"reply_NONE":0,"reply_BLOB":775,"dns_queries_all_replies":158602,"privacy_level":0,"status":"enabled","gravity_last_updated":{"file_exists":true,"absolute":1671730768,"relative":{"days":1,"hours":3,"minutes":35}}}
I pseudomized the numbers :)
Similar to apps like proxmox or portainer, there should be an override URL to use the health check and api read.
My personal use case:
The URLs I use in the top configuration are proxied with cloudflare access, so typically would have to login with my authentication provider before getting access to the application(s). This means that heimdall (currently) is unable to reach my gitlab instance through the url. But, since my heimdall is hosted in the same network as my other applications, the override url is simply the private IP and 'works'.
Possible Fix:
Add a URL field (similar to proxmox / portainer since I am familiar with them) which can override the application link at the top and use this url instead for the enhacement features.
Even cooler but harder fix (and probably not needed):
Add settings to give heimdall a cloudflare access token, and add those headers to all of its enhancement http requests.
Hello every one,
I would like to generate a APPS who return a public ip address.
For exemple to retrun "docker exec -it transmission curl ifconfig.io" in the Apps Transmission.
Do you have any idea ?
Thank's ๐
Hi,
I'm wondering if there is a way to change the density of apps - I'd rather sacrifice font size in favor of say 5 across, or even just the icons. Is this possible? I think I've read through all the available docs, but did not find an answer. Thank you!
https://www.loxone.com
Thanks!
Hello! I have created an integration to my project dash., which has been merged. Unfortunately, users reported that it did not work.
I have copied the output and created a PR according to your guidelines. As I can find not information on how to set up a local development environment to test the integration, I don't know how I could debug the problem. The only thing I can provide is that I tried it locally, and I get a 500 Internal Server Error when selecting Dash., but not when selecting any other application.
One thing I think that could be the problem is the mismatch between the name and the folder path (Dash. Vs Dashdot). The actual name of the project is Dash. though.
As far as I can tell, the Homebridge "Enhanced" App does not do anything.
Homebridge shouldn't be listed in Heimdall or on the Heimdall website if there is no functionality added whatsoever.
See: https://github.com/linuxserver/Heimdall-Apps/blob/master/Homebridge/Homebridge.php
Whenever APIs are being used and depending on how many are used on the dashboard, the CPU usage can jump above 50% usage when the dashboard is displayed. From my understanding this is happening because there is a constant pulling of information from all the APIs.
I have tried to find a global refresh setting or per app refresh setting but there doesn't seem to be any.
In order to help diminish the CPU usage, perhaps it would be a good idea to introduce a global refresh setting and one per application that overrides the global setting so that we can configure how often the data is being pulled in milliseconds or seconds.
Out of the box Portainer now uses a self-signed certificate on port 9443 and considers port 9000 (HTTP) to be "legacy" (see docs).
To avoid using the legacy mechanism, and work with a self-signed certificate, the portainer app in Heimdall should have the option to disable TLS check.
This is similar to the behaviour within plex:
https://github.com/linuxserver/Heimdall-Apps/blob/master/Plex/Plex.php#L87-L97
https://github.com/linuxserver/Heimdall-Apps/blob/master/Plex/config.blade.php#L12-L27
When editing Transmission app line/details after trying to save config parameters, the app crashes and I get a string of php exceptions:
ErrorException thrown with message "Illegal string offset 'name' (View: /config/www/SupportedApps/Transmission/config.blade.php) (View: /config/www/SupportedApps/Transmission/config.blade.php) (View: /config/www/SupportedApps/Transmission/config.blade.php)"
Stacktrace:
#77 ErrorException in /var/www/localhost/heimdall/vendor/laravelcollective/html/src/FormBuilder.php:290
#76 ErrorException in /var/www/localhost/heimdall/vendor/laravelcollective/html/src/FormBuilder.php:290
#75 ErrorException in /var/www/localhost/heimdall/vendor/laravelcollective/html/src/FormBuilder.php:290
#74 ErrorException in /var/www/localhost/heimdall/vendor/laravelcollective/html/src/FormBuilder.php:290
#73 Illuminate\Foundation\Bootstrap\HandleExceptions:handleError in /var/www/localhost/heimdall/vendor/laravelcollective/html/src/FormBuilder.php:290
#72 Collective\Html\FormBuilder:input in /var/www/localhost/heimdall/vendor/laravelcollective/html/src/FormBuilder.php:336
#71 Collective\Html\FormBuilder:password in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:237
#70 Illuminate\Support\Facades\Facade:__callStatic in /var/www/localhost/heimdall/storage/framework/views/1aa81e8ade83ecb87129a71111a26c66a7624114.php:15
#69 include in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:43
#68 Illuminate\View\Engines\PhpEngine:evaluatePath in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:59
#67 Illuminate\View\Engines\CompilerEngine:get in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:142
#66 Illuminate\View\View:getContents in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:125
#65 Illuminate\View\View:renderContents in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:90
#64 Illuminate\View\View:render in /var/www/localhost/heimdall/storage/framework/views/0400c13837702c90caf43da85ae3675fbff580e3.php:95
#63 include in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:43
#62 Illuminate\View\Engines\PhpEngine:evaluatePath in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:59
#61 Illuminate\View\Engines\CompilerEngine:get in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:142
#60 Illuminate\View\View:getContents in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:125
#59 Illuminate\View\View:renderContents in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:90
#58 Illuminate\View\View:render in /var/www/localhost/heimdall/storage/framework/views/8d91c3cd0f3a13839dbe5eac67e46f31e58dc512.php:5
#57 include in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:43
#56 Illuminate\View\Engines\PhpEngine:evaluatePath in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:59
#55 Illuminate\View\Engines\CompilerEngine:get in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:142
#54 Illuminate\View\View:getContents in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:125
#53 Illuminate\View\View:renderContents in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/View.php:90
#52 Illuminate\View\View:render in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Http/Response.php:42
#51 Illuminate\Http\Response:setContent in /var/www/localhost/heimdall/vendor/symfony/http-foundation/Response.php:202
#50 Symfony\Component\HttpFoundation\Response:__construct in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php:750
#49 Illuminate\Routing\Router:toResponse in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php:722
#48 Illuminate\Routing\Router:prepareResponse in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php:682
#47 Illuminate\Routing\Router:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#46 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/app/Http/Middleware/CheckAllowed.php:37
#45 App\Http\Middleware\CheckAllowed:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#44 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#43 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
#42 Illuminate\Routing\Middleware\SubstituteBindings:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#41 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#40 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:75
#39 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#38 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#37 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49
#36 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#35 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#34 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:63
#33 Illuminate\Session\Middleware\StartSession:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#32 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#31 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37
#30 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#29 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#28 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:66
#27 Illuminate\Cookie\Middleware\EncryptCookies:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#26 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#25 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#24 Illuminate\Pipeline\Pipeline:then in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php:684
#23 Illuminate\Routing\Router:runRouteWithinStack in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php:659
#22 Illuminate\Routing\Router:runRoute in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php:625
#21 Illuminate\Routing\Router:dispatchToRoute in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Router.php:614
#20 Illuminate\Routing\Router:dispatch in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
#19 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#18 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/fideloper/proxy/src/TrustProxies.php:57
#17 Fideloper\Proxy\TrustProxies:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#16 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#15 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:31
#14 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#12 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:31
#11 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#9 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
#8 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#6 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:62
#5 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:163
#4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#3 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:104
#2 Illuminate\Pipeline\Pipeline:then in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
#1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /var/www/localhost/heimdall/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
#0 Illuminate\Foundation\Http\Kernel:handle in /var/www/localhost/heimdall/public/index.php:55
getting a General error connecting with API
i tried every possible combination of url that i can to get it to work with no success,
Install heimdall via composer error not found Concourse
Generating optimized autoload files
Carbon 1 is deprecated, see how to migrate to Carbon 2.
https://carbon.nesbot.com/docs/#api-carbon-2
You can run './vendor/bin/upgrade-carbon' to get help in updating carbon and other frameworks and libraries that depend on it.
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
In SupportedApps.php line 164:
Class '\App\SupportedApps\Concourse\Concourse' not found
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
Just noticed that the live stats for Deluge are incorrect.
With 0 downloads and 5 files seeding (2 actively):
This is what I see from Heimdall:
Leech should be 0, and seed should be either 2 or 5 (depending if we're considering all seeds or just actively seeding)
Looking at the code and the API response from Deluge, this seems like a simple fix. I'll do a PR later tonight.
I set up the syncthing enhanced app, put in the api key, and it all tested successfully. But it shows 0 needed files/bytes at all times and doesn't indicate that there's 2 folders being synchronized.
update to latest and when try to edit Bazarr setting i get
ERROR
ErrorException (E_ERROR)
Undefined property: stdClass::$override_url (View: /var/www/html/app/SupportedApps/Bazarr/config.blade.php) (View: /var/www/html/app/SupportedApps/Bazarr/config.blade.php) (View: /var/www/html/app/SupportedApps/Bazarr/config.blade.php)
ERROR LINE: <?php echo Form::text('config[override_url]', (isset($item) ? $item->getconfig()->override_url : null), array('placeholder' => __('app.apps.override'), 'id' => 'override_url', 'class' => 'form-control')); ?>
FILE:
<h2><?php echo e(__('app.apps.config')); ?> (<?php echo e(__('app.optional')); ?>) <?php echo $__env->make('items.enable', \Illuminate\Support\Arr::except(get_defined_vars(), array('__data', '__path')))->render(); ?></h2>
<div class="items">
<div class="input">
<label><?php echo e(strtoupper(__('app.url'))); ?></label>
<?php echo Form::text('config[override_url]', (isset($item) ? $item->getconfig()->override_url : null), array('placeholder' => __('app.apps.override'), 'id' => 'override_url', 'class' => 'form-control')); ?>
</div>
<div class="input">
<label><?php echo e(__('app.apps.apikey')); ?></label>
<?php echo Form::text('config[apikey]', (isset($item) ? $item->getconfig()->apikey : null), array('placeholder' => __('app.apps.apikey'), 'data-config' => 'apikey', 'class' => 'form-control config-item')); ?>
</div>
<div class="input">
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button>
</div>
</div>
Hello,
I followed the instruction from wiki/Creating-Private-Apps. But nothing happens on my Heimdall installation. I can't add my private app on the items/create
page. The app is neither available in the Application Type drop down nor on the text field stating Application Name.
I'm running Heimdall with the official linuxserver Docker image. The reason for trying out these instructions is, that i wolud like to add apps to Heimdall.
Feedback:
It took me some time to get an working App, because there is one step missing in the wiki.
It's mandatory to edit the appname.php too, and replace the previous appname by the new one, otherwise you will get this error.
root@7d75a4538329:/var/www/localhost/heimdall# php artisan register:app Foo
In SupportedApps.php line 165:
Class '\App\SupportedApps\Foo\Foo' not found
After dealing with this it runs ok:
root@7d75a4538329:/var/www/localhost/heimdall# php artisan register:app Foo
Application Added - Foo - 201a6b3053cc1422d2c3670b62616221d2290929
Maybe you should state this in the wiki, or even better provide some templates inside the wiki.
I would have created a pull request but it's not possible for wikis.
After some further investigations, and looking into the sqlite db. I found out that my app was added to the applications
table but without a SHA value. Nothing was inside in the items
and item_tag
tables. After adding the appropriate values to that tables I finally managed to add an private application. But I think that's not the way how it should work.
kind regards
Frank
Hi - I just have an issue with the livestats on the Photoprism tile.
In fact I need an authentification for the api (I tried to access too over the browser) but there is no such option that I could configure.
Isn't that supported yet?
Thanks
I have Portainer setup as an enhanced app, but it only shows the running/stopped containers from the 'local' instance, and ignoring any containers running from agents.
I don't really know what else to provide with this issue, but I c an answer any questions you have.
See same issue at Bazarr github: morpheus65535/bazarr#1452
It would appear that the latest commit to Radarr's nightly branch has "Removed Legacy API Support".
Changes on Bazarr:
morpheus65535/bazarr@7687013
morpheus65535/bazarr@a2ec23b
Something changed in the v3 API which made the app not working as intended.
When setting up FreshRSS im getting this error when trying to use the enhanced functionality. Im running version 2.4.13 of Heimdall and also already tryed updating app list but no go also tryed using the internal ip/name and external url(domain name), on a side note dont no if this has anything to do with it, but when clicking on the test button for FreshRSS, a popup shows with nothing in it.
The current Minio logo needs changed as per AUP
When attempting to login()
, the parent method execute(...)
is called improperly (passing a boolean as 3rd param, where a array|null is expected) according to the parent classes signature, causing a failure both when testing the enhanced application functionality, as well as when viewing the configured application on the dashboard.
Simply change the method to pass null
, as the third argument, instead of false
I would like to provide my users with a "desktop with links to websites" on the web for reading only without the possibility of editing the content.
If it is possible?
I'm attempting to use the HTML package with a local instance, but I keep running into the issue above.
Hey there!
I'd like to report a security issue but cannot find contact instructions on your repository.
If not a hassle, might you kindly add a SECURITY.md
file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.
Thank you for your consideration, and I look forward to hearing from you!
(cc @huntr-helper)
Just as a heads up, Traefik v2 removes the /health
endpoint. They do still have a number of different metric providers. I believe all but the Prometheus one are push though. So if Traefik is to continue being an enhanced application it will probably need to support getting information from the Prometheus /metrics
endpoint in Traefik.
I'm unable to see Jellyfin in the list now.
If the octoprint server is offline getstats returns a 500 internal server error.
Need to check null before accessing the body.
Before:
$status = 'inactive';
$attrs['headers'] = ['X-Api-Key' => $this->config->apikey];
$res = parent::execute($this->url('api/job'), $attrs);
$details = json_decode($res->getBody());
After:
$status = 'inactive';
$attrs['headers'] = ['X-Api-Key' => $this->config->apikey];
$res = parent::execute($this->url('api/job'), $attrs);
if($res == null) return "";
$details = json_decode($res->getBody());
qBitTorrent enhanced app blade stops working after updating qBt to v4.2.0.
As per release notes here (https://www.qbittorrent.org/news.php) qBt v4.2.0 enforces modern API endpoints:
WEBUI: Drop legacy WebAPI support (glassez)
I am creating a PR.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.