How To Deploy a Full-Stack, Containerized Network Infrastructure Visualizer

Your network, be it home or business, is probably quite busy and crowded with devices. On my small home LAN, most network visualizers find nearly 40 devices (many of which are containers), which means it can be hard to monitor or visualize them all.

That’s why I depend on tools to help me stay in the know about what’s happening on my network. For example, I often use Wireshark to see what packets are coming and going so I can ensure nothing nefarious is going on.

But as far as network visualizers, I’d yet to come across one that is easy enough to use that it didn’t require an entire morning or afternoon to deploy. When I came across Atlas, I thought I’d give it a try.

According to the Atlas GitHub page, the container stack is “built with Go, FastAPI, NGINX, and a custom React frontend, it provides automated scanning, storage, and rich dashboards for insight into your infrastructure.”

Usually, when I read such a description, I immediately think, “Sounds great, but it also sounds like it’ll be a real pain to deploy.” To my great surprise, Atlas did not fall under this category. In fact, Atlas is incredibly simple to spin up. Within two minutes, I had Atlas up and running and monitoring my network.

How Atlas Works

Although Atlas is very easy to deploy, how it works is a bit more complicated because there are several “moving parts” that comprise the whole. Those parts are:

  • initdb: Creates the SQLite database with the required schema.
  • fastscan: The host scan that uses ARP/Nmap.
  • dockerscan: Uses docker inspect to gather container information.
  • deepscan: Adds information from port scans, OS information and more.
  • FastAPI backend: Runs on port 8889 and serves /api/hosts (for all discovered hosts) and /api/external (external IP and metadata).
  • NGINX: Serves the React frontend on port 8888 and proxies all API requests to FastAPI on port 8889.

That’s a lot of pieces that come together to visualize your network, and I am here to tell you that it works quite well.

What Does Atlas Actually Do?

In reality, Atlas does quite a bit. One might think of this as a feature list, so consider it so.

Atlas does the following:

  • Scans Docker containers for IP addresses, MAC addresses, open ports, network names and OS type.
  • Scans local and neighboring hosts on the subnet to detect reachable devices, retrieve OS fingerprints/MACs/open ports and populates a full map of your network.
  • Visualizes data in real time to serve up an interactive HTML dashboard, host a FastAPI backend for data access and use a React frontend to render dynamic graphs.

All of this comes together to create a well-designed UI to keep tabs on your network topology.

Let’s deploy.

What You’ll Need

To deploy Atlas, you’ll need a server that supports Docker. I’ll demonstrate this on an instance of Ubuntu Server 24.04. If you’re using a different operating system, you’ll need to adjust how you install Docker, but nothing more. If you already have Docker installed, you’re good to go. For Linux, you’ll also need a user with sudo privileges.

Install Docker

Once upon a time, you could install Docker on Ubuntu with the command sudo apt-get install docker.io. Unfortunately, that will install an old, unmaintained version, so do not use that method any longer.

The correct method for installation is all about Docker CE (Community Edition). First, we’ll install the necessary dependencies with the command:

Next, we’ll add the official Docker GPG key with:

The next step is to add the necessary Docker repository with the command:

Update apt with:

Install the various Docker components with the following:

Finally, add your user to the Docker group with:

Log out and log back in, and you’re ready to go.

Deploying Atlas

It’s finally time to deploy Atlas. Are you ready? On your hosting server, issue the command:

The above command will expose the UI on port 8888, launch the backend API on port 8889 and autoscan Docker and the local subnet on startup.

Accessing Atlas

To access your Atlas deployment, fire up a web browser and point it to http:/SERVER:8888 (where SERVER is the IP address of the hosting server). You should immediately see an interactive map of your network (Figure 1).

Figure 1. As soon as I opened Atlas, I was presented with this map of my network.

And there you go: You’ve officially deployed a containerized network infrastructure visualizer. Atlas is a handy tool to have around when you need to see what’s connected to your network. If you see something that shouldn’t be there, take action before it’s too late.


Group Created with Sketch.


Continue Reading