diff --git a/app/SupportedApps/Traefik.php b/app/SupportedApps/Traefik.php index a0c7deef..14a58743 100644 --- a/app/SupportedApps/Traefik.php +++ b/app/SupportedApps/Traefik.php @@ -1,12 +1,78 @@ sendRequest(); + if ($res == null) { + echo 'Traefik connection failed'; + return; + } + switch($res->getStatusCode()) { + case 200: + $data = json_decode($res->getBody()); + echo "Successfully connected with status: ".$data->result."\n"; + break; + case 404: + echo 'Failed: Please make sure your URL is correct and includes the port'; + break; + default: + echo 'Something went wrong... Code: '.$res->getStatusCode(); + break; + } + } + + public function executeConfig() + { + $html = ''; + $active = 'inactive'; + $res = $this->sendRequest(); + $data = json_decode($res->getBody()); + if ($data) { + $avg_response_time = $data->average_response_time_sec; + $time = $avg_response_time*1000; + $time_output = number_format($time, 2); + $active = ($time > 0) ? 'active' : 'inactive'; + $html = ' + + '; + } + return json_encode(['status' => $active, 'html' => $html]); + } + + public function sendRequest() + { + $config = $this->config; + $url = $config->url; + + $url = rtrim($url, '/'); + $api_url = $url.'/health'; + + $client = new Client(['http_errors' => false, 'timeout' => 15, 'connect_timeout' => 15]); + $res = $client->request('GET', $api_url); + + return $res; + } +} diff --git a/readme.md b/readme.md index ef6d17e5..38c0e7ba 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ ![alt text](https://i.imgur.com/iuV8w3y.png) -____ +____ [![Discord](https://img.shields.io/discord/354974912613449730.svg)](https://discord.gg/CCjHKn4) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/heimdall.svg)](https://hub.docker.com/r/linuxserver/heimdall/) [![firsttimersonly](http://img.shields.io/badge/first--timers--only-friendly-blue.svg?style=flat-square)](http://www.firsttimersonly.com/) @@ -12,7 +12,7 @@ ___ Visit the website - https://heimdall.site ___ -## About +## 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. @@ -38,6 +38,7 @@ Supported applications are recognized by the title of the application as entered - Runeaudio - Sabnzbd - Tautulli +- Traefik - Transmission **Foundation** @@ -72,7 +73,6 @@ Supported applications are recognized by the title of the application as entered - SickRage - Sonarr - TT-RSS -- Traefik - UniFI - unRAID - pfSense @@ -89,7 +89,7 @@ If you find you can't change the background make sure php_fileinfo is enabled in 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. For simple testing you could just go to the folder and type `php artisan serve` -There are also dockers and instructions on how to use them at +There are also dockers and instructions on how to use them at for x86-64: https://hub.docker.com/r/linuxserver/heimdall/ @@ -144,7 +144,7 @@ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] ``` #### More info -More info about AllowOverride can be found here : +More info about AllowOverride can be found here : https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride @@ -168,7 +168,7 @@ location /webfonts { If there are any other locations which might interefere with any of the folders in the /public folder, you might have to do the same for those as well, but 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: [Letsencrypt/Nginx](https://hub.docker.com/r/linuxserver/letsencrypt/) +If you'd like to reverse proxy this app, we recommend using our letsencrypt/nginx docker image: [Letsencrypt/Nginx](https://hub.docker.com/r/linuxserver/letsencrypt/) 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` ``` diff --git a/resources/views/supportedapps/traefik.blade.php b/resources/views/supportedapps/traefik.blade.php new file mode 100644 index 00000000..17a229dd --- /dev/null +++ b/resources/views/supportedapps/traefik.blade.php @@ -0,0 +1,11 @@ +

{{ __('app.apps.config') }} ({{ __('app.optional') }})

+
+ +
+ + {!! Form::text('config[override_url]', null, array('placeholder' => __('app.apps.override'), 'id' => 'override_url', 'class' => 'form-control')) !!} +
+
+ +
+