Just another looking glass software because all existing ones are either dead or ancient
AS203038 runs this as a daily driver.
The foundation is built on Golang and gRPC (ConnectRPC to be precise). This Golang codebase is responsible for any and all interactions with the routers through SSH, in future plans an embedded goBGPD is planned.
The WebUI is built using SvelteKit and served as static files embedded in the final Golang binary, all configurations for the UI are injected in runtime by autogenerating the env.js.
WebUI and Golang communicate using gRPC-Web through ConnectRPC's SDKs with eachother.
In future there will be a generic CLI client that can connect to arbitrary instances of this looking-glass allowing you to query multiple instances at once. Assuming anyone actually will run this other than us.
All config is done in a single YAML. It's probably not perfect but it works well enough for now.
Example config is supplied with all release builds but can also be found Here.
The server is stateless. It will work well with multiple replicas and loadbalancing schemes as long as the loadbalancer can serve gRPC traffic (HTTP/2).
Router Listing is paginated and the UI will switch to a expandable list format grouped by locations when too many routers are supplied (>4 decided by dice roll). However other outputs (such as BGP routes, traceroute, ...) is not yet paginated as it would break statelessnes of the backends. You are able to request full bgp tables through the UI, Chrome will crash and Firefox will become a slideshow but the backend will happily serve it without any issues.
HTTP Requests are logged using common Apache Access Log Format (without timestamp)
More than welcome! We 100% would love more router models - if you do not want to write the code yourself you can also give us ReadOnly access to your router/s and we write the models.