Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Shells Virtual Desktop
BMail.ag - Secure Email Service
Server.net
CPLicense.net
VPS Server
Buy VPN
Vultr
VMs for AI
HostDare
ReliableSite White-Label Dedicated Hosting for Resellers
InterServer VPS
BMail.ag - Secure Email Service
Best VPN
High-Performance Bare Metal Server Solutions
Karvl.com
Server Mania Cloud Hosting
DataWagon Hosting
AlphaVPS Hosting
Evoxt.com
Clouvider
VPS Hosting with NVMe
Residential IPs in the US & 4G Mobile Proxies in EU & US with Unlimited Bandwidth
ReliableSite White-Label Dedicated Hosting for Resellers
Rabisu - Hosting Solutions
Shells Virtual Desktop
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

A Modern Looking Glass Panel for Multi-Line Monitoring

sayyikusayyiku Member
edited July 2025 in Tutorials

Recently, we needed to perform four-line monitoring tests for a client. After searching extensively online, we discovered that most existing Looking Glass panels were outdated PHP-based solutions—either with limited functionality, obsolete UI, or long-abandoned projects. None could meet our needs.

So, we decided to build our own.

Together with a few friends, we developed NetMirror, a brand-new Looking Glass project aimed at providing a more modern, user-friendly solution for data centers, oneman operations, and networking enthusiasts.

Special thanks to wikihost-opensource and Hybula for the inspiration and architecture ideas their projects provided.

🚀 What is NetMirror?
NetMirror is a feature-rich, visually appealing, and modern Looking Glass server-side panel designed for displaying and testing multi-region network nodes. It supports essential networking tools such as ping, traceroute, mtr, speedtest, and more. All nodes are displayed in a unified interface to help users evaluate latency, stability, and performance across different routes.

🔗 Live Demo
GitHub Repo: https://github.com/catcat-blog/NetMirror (Feel free to star 🌟)

Live Demo: https://lg.catcat.cloud/ — Best viewed on desktop. Mobile support is not yet optimized.

🧩 Features

  • Modern UI: Built with Vue 3 and TailwindCSS for a responsive, clean design.
  • Built-in Tools: Integrated with Ping, iPerf3, Speedtest, BGP information, and more.
  • Live Traffic Monitoring: See real-time network interface usage.
  • Interactive Shell: Simulated terminal for basic diagnostics.
  • Easy Deployment: One-command Docker-based deployment.
  • Customizable: Configure server info and features via environment variables.
  • Multi-Node Support: Supports master/slave node grouping for geographic flexibility.
  • Security First: Only the panel and necessary endpoints are exposed. Nodes communicate securely via gRPC.

UI Preview

753AB0EA840F8C3A8C54F3BD84593D8E.png
image-45.png
image-46-scaled.avif
image-47-scaled.avif
image-48-scaled.avif
image-49-scaled.avif
image-51.png
image-50.png
image-52.png
image-53.png

📦 Deployment (Docker)
Clone the Repository

git clone https://github.com/Yuri-NagaSaki/NetMirror.git
cd NetMirror
cp .env.example .env

If .env.example does not exist, simply create a .env file and refer to the documentation or table of variables.

Customize Config (Optional)
Edit .env to set your server region, public IP, and other configurations.

Here’s a sample docker-compose.yml snippet:

services:
  als:
    image: soyorins/netmirror:latest
    container_name: looking-glass-e
    restart: always
    network_mode: host
    user: root
    env_file:
      - .env
    volumes:
      - ./data:/data
      - ./.air.toml:/app/.air.toml
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:${HTTP_PORT:-80}/"]
      interval: 30s
      timeout: 10s
      retries: 3
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

Once running, access your instance at:
http://:3000
(default port can be modified using the HTTP_PORT environment variable)

«1

Comments

  • onidelonidel Member, Patron Provider, Top Host, Megathread Squad

    beautiful

  • sh97sh97 Member, Host Rep

    Good stuff 👊

    Thanked by 2nghialele admax
  • tsusutsusu Member

    Frontend could use some optimization. It's a little sluggish.

    Thanked by 1NeedDeal
  • iOVZiOVZ Member, Host Rep

    look nice. I will use it

  • It's slow as fak.
    My browser got unresponsive.
    Js heavy as fuck.

    Thanked by 1384_cz
  • Great

  • ehabehab Member

    @sayyiku good work.. i also like you use go and vue.js

    can you please tell what lib did you use to draw the BGP Network graph?

  • HostDZireHostDZire Member, Patron Provider

    Wow very good <3

  • sayyikusayyiku Member
    edited July 2025

    Update:

    Optimized for mobile devices

    Mq5Il6yFqwptpdNpZYFFvOqQIGkbzxpV.webp

  • @ehab said:
    @sayyiku good work.. i also like you use go and vue.js

    can you please tell what lib did you use to draw the BGP Network graph?

    Use this api.
    https://bgpview.docs.apiary.io/#

    Thanked by 1ehab
  • @HostDZire said:
    Wow very good <3

    I think this will be very helpful to you. Hahaha. <3
    You have so many machines in your data centers. o:)

    Thanked by 1HostDZire
  • zrj766zrj766 Member

    catcat 🤚😭✋

  • This is so beautiful, hands down!

  • catcat 🤚😭✋

  • Update

    v2.1.0 and v2.2.0 introduce a master-slave node architecture, a powerful new admin panel, and one-click scripts for fully automated deployment and management.

    RUrZtDXwJY5jCcI4R027u6FzOEhFDjRN.webp

  • nohavpsnohavps Member, Host Rep

    Hello,

    Very nice design. We'll be using it in the coming days

    Is there a way to integrate it into our website's header/footer?

    Thanked by 2oloke sayyiku
  • NexeonNexeon Member, Patron Provider

    Looks great!

  • @nohavps said:
    Hello,

    Very nice design. We'll be using it in the coming days

    Is there a way to integrate it into our website's header/footer?

    You can use iframe to your website.

    Thanked by 1nohavps
  • kaitkait Member

    Love the DSTAT alternative youre providing, looks awesome.

    Thanked by 1sayyiku
  • @kait said:
    Love the DSTAT alternative youre providing, looks awesome.

    Thanks

  • kaitkait Member

    @sayyiku said: Thanks

    That's not the right response to someone calling your tool a nice dstat <3

  • webhorizonwebhorizon Member, Host Rep

    Nice interface.
    Check CPU usage too.

  • @webhorizon said:
    Nice interface.
    Check CPU usage too.

    I don’t think it’s necessary to monitor the CPU, and there’s probably no need to deploy lg on the bare metal and risk affecting the system. Most providers are running it on VPS instances.

  • webhorizonwebhorizon Member, Host Rep

    @sayyiku said: I don’t think it’s necessary to monitor the CPU

    No; check the CPU usage of chrome/firefox/... which loads the website.

    Thanked by 2tentor mandala
  • @webhorizon said:

    @sayyiku said: I don’t think it’s necessary to monitor the CPU

    No; check the CPU usage of chrome/firefox/... which loads the website.

    Because it use lot's of @vueuse/motion components.
    I'll see if I can optimize it.

  • DediRockDediRock Member, Patron Provider

    that looks awesome.

  • This works great.

    Is it possible to add SSL setup?

  • LowEndStalkerLowEndStalker Member
    edited September 2025

    @sayyiku said:
    Recently, we needed to perform four-line monitoring tests for a client. After searching extensively online, we discovered that most existing Looking Glass panels were outdated PHP-based solutions—either with limited functionality, obsolete UI, or long-abandoned projects. None could meet our needs.

    So, we decided to build our own.

    Together with a few friends, we developed NetMirror, a brand-new Looking Glass project aimed at providing a more modern, user-friendly solution for data centers, oneman operations, and networking enthusiasts.

    Special thanks to wikihost-opensource and Hybula for the inspiration and architecture ideas their projects provided.

    🚀 What is NetMirror?
    NetMirror is a feature-rich, visually appealing, and modern Looking Glass server-side panel designed for displaying and testing multi-region network nodes. It supports essential networking tools such as ping, traceroute, mtr, speedtest, and more. All nodes are displayed in a unified interface to help users evaluate latency, stability, and performance across different routes.

    🔗 Live Demo
    GitHub Repo: https://github.com/catcat-blog/NetMirror (Feel free to star 🌟)

    Live Demo: https://lg.catcat.cloud/ — Best viewed on desktop. Mobile support is not yet optimized.

    🧩 Features

    • Modern UI: Built with Vue 3 and TailwindCSS for a responsive, clean design.
    • Built-in Tools: Integrated with Ping, iPerf3, Speedtest, BGP information, and more.
    • Live Traffic Monitoring: See real-time network interface usage.
    • Interactive Shell: Simulated terminal for basic diagnostics.
    • Easy Deployment: One-command Docker-based deployment.
    • Customizable: Configure server info and features via environment variables.
    • Multi-Node Support: Supports master/slave node grouping for geographic flexibility.
    • Security First: Only the panel and necessary endpoints are exposed. Nodes communicate securely via gRPC.

    UI Preview

    753AB0EA840F8C3A8C54F3BD84593D8E.png
    image-45.png
    image-46-scaled.avif
    image-47-scaled.avif
    image-48-scaled.avif
    image-49-scaled.avif
    image-51.png
    image-50.png
    image-52.png
    image-53.png

    📦 Deployment (Docker)
    Clone the Repository

    git clone https://github.com/Yuri-NagaSaki/NetMirror.git
    cd NetMirror
    
    cp .env.example .env
    

    If .env.example does not exist, simply create a .env file and refer to the documentation or table of variables.

    Customize Config (Optional)
    Edit .env to set your server region, public IP, and other configurations.

    Here’s a sample docker-compose.yml snippet:

    services:
      als:
        image: soyorins/netmirror:latest
        container_name: looking-glass-e
        restart: always
        network_mode: host
        user: root
        env_file:
          - .env
        volumes:
          - ./data:/data
          - ./.air.toml:/app/.air.toml
        healthcheck:
          test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:${HTTP_PORT:-80}/"]
          interval: 30s
          timeout: 10s
          retries: 3
        logging:
          driver: "json-file"
          options:
            max-size: "10m"
            max-file: "3"
    
    

    Once running, access your instance at:
    http://:3000
    (default port can be modified using the HTTP_PORT environment variable)

    super duper nice. No complaints from me.

    Decided to stick this on a spare domain with a few spare VM's (and a $10 dedicated server from @dan_onlyservers, so thank him) so everyone can publicly view it as I saw your example was down :smile:

    https://monitoring.spankthisdomainlikeitsyourdaddy.xyz/

  • Any providers using this as their lg?
    Demo link is down?

  • itsTomHarperitsTomHarper Member, Megathread Squad

    @NeedDeal said:
    Any providers using this as their lg?
    Demo link is down?

    http://107.189.28.110:3000/

    Thanked by 2NeedDeal mandala
Sign In or Register to comment.