Skip to content

Modern, simple and fresh looking glass based on Bootstrap 5 and PHP.

License

Notifications You must be signed in to change notification settings

pedjoeangdigitalnetworks/lookingglass

 
 

Repository files navigation

Looking Glass

Modern, simple and fresh looking glass based on Bootstrap 5 and PHP 7. A looking glass is a network utility which is made user-friendly for everyone to use. It allows you to execute network related commands within a remote network, usually that of an ISP.

Demo

See it in action here!

Features

  • Bootstrap 5 UI.
  • Real time command output using JavaScript.
  • Supports ping/ping6, traceroute/traceroute6 and mtr/mtr6.
  • Easy to customize and to configure.
  • DNS checking to prevent unnecessary executions.

Requirements

  • Any Linux distribution, this has been tested on RHEL.
  • PHP 7.1 or higher.
  • IPv6 connectivity if you want to use the v6 equivalents.
  • Root access.

Installation

For this installation we will assume that we are working on AlmaLinux 8 OS. Warning: This guide does not cover any security hardening or rate limiting.

  1. Install the required network tools: dnf install mtr traceroute -y.
  2. Install the web server with PHP (by default it will install 7.2): dnf install httpd mod_ssl php -y.
  3. Enable and start Apache/PHP-FPM: systemctl enable httpd; systemctl enable php-fpm and systemctl start httpd; systemctl start php-fpm.
  4. Let's help MTR to work, execute the following command: ln -s /usr/sbin/mtr /usr/bin/mtr and also mtr helper called mtr-packet: ln -s /usr/sbin/mtr-packet /usr/bin/mtr-packet.
  5. You must configure SELinux before this all works, or you can disable SELinux using setenforce 0 and possibly make it permanent: nano /etc/selinux/config change to SELINUX=disabled.
  6. Upload the contents of the ZIP to /var/www/html/.
  7. Rename config.dist.php to config.php and adjust the settings.
  8. (Optional) You might want to enable SSL using LetsEncrypt, take a look at acme.sh.

Customization

If you open up config.dist.php you will see that there are some features that allows you to customize the looking glass, this includes a custom CSS override. You may also extend the looking glass with a custom block.

TODO

  • Move to Composer;
  • Software-based rate limiting;
  • Implement a template engine, for advanced customization;
  • Switch to WebSockets.

Contribute

We would love to receive code contributions in the form of a pull request. We prefer this over forking, so if you have any code improvements feel free to commit.

Credits

This project is inspired by the LookingGlass project of @telephone and uses his procExecute() function, although slightly modified.

License

Mozilla Public License Version 2.0

About

Modern, simple and fresh looking glass based on Bootstrap 5 and PHP.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 99.3%
  • Dockerfile 0.7%