A Modern Looking Glass Panel for Multi-Line Monitoring

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/

🧩 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"

docker compose up -d 

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

Tagged:

Comments

  • Under traffic monitor, past tense of send should be sent, not "sended".

    Otherwise it looks really good.

  • Stuck in Connecting...
    Establishing connection to the server

    Thanked by (1)Khalequzzaman
  • Looks good. Congrats

  • is it have backend ??

    PrenHost | 🚀 BDIX NVMe Hosting – Only $4/year | 5GB RAM - 2vCPU VPS Only $3 / Month
    Lightning-Fast | 99.9% Uptime | 24/7 Support

  • Your modern looking "Glass Panel" is reminding me of Windows Vista... and NO ONE wants to remember Windows Vista!

    It’s OK if you disagree with me. I can’t force you to be right!
    IPv4: 32 bits of stress. IPv6: 128 bits of... well, more stress... Have anyone seen my subnet?

  • @somik said:
    Your modern looking "Glass Panel" is reminding me of Windows Vista... and NO ONE wants to remember Windows Vista!

    I want to remember Windows Vista

  • @imok said:

    @somik said:
    Your modern looking "Glass Panel" is reminding me of Windows Vista... and NO ONE wants to remember Windows Vista!

    I want to remember Windows Vista

    NO ONE, except for @imok, wants to remember Windows Vista!

    It’s OK if you disagree with me. I can’t force you to be right!
    IPv4: 32 bits of stress. IPv6: 128 bits of... well, more stress... Have anyone seen my subnet?

  • AuroraZeroAuroraZero Hosting ProviderRetired

    @somik said:

    @imok said:

    @somik said:
    Your modern looking "Glass Panel" is reminding me of Windows Vista... and NO ONE wants to remember Windows Vista!

    I want to remember Windows Vista

    NO ONE, except for @imok, wants to remember Windows Vista!

    Better than remembering ME!!!

  • @AuroraZero said:

    @somik said:

    @imok said:

    @somik said:
    Your modern looking "Glass Panel" is reminding me of Windows Vista... and NO ONE wants to remember Windows Vista!

    I want to remember Windows Vista

    NO ONE, except for @imok, wants to remember Windows Vista!

    Better than remembering ME!!!

    I love ME.

  • AuroraZeroAuroraZero Hosting ProviderRetired

    @imok said:

    @AuroraZero said:

    @somik said:

    @imok said:

    @somik said:
    Your modern looking "Glass Panel" is reminding me of Windows Vista... and NO ONE wants to remember Windows Vista!

    I want to remember Windows Vista

    NO ONE, except for @imok, wants to remember Windows Vista!

    Better than remembering ME!!!

    I love ME.

    I bet you do my man I bet you do

    Thanked by (1)imok
  • Not sure what somik is about... it looks decent to me.

  • It´s only working on the IP instead the URL in the demo.

Sign In or Register to comment.