---
name: Atlas Network
description: "Self-hosted network infrastructure visualizer. Docker. Go + FastAPI + React. karam-ajaj/atlas. Auto-scan Docker containers and subnet hosts, interactive network graph, circular/hierarchical layouts, table view, OS fingerprinting."
---

# Atlas Network

**Full-stack containerized tool to scan, analyze, and visualize network infrastructure.** Atlas automatically scans running Docker containers and local subnet hosts, extracts IPs/MACs/ports/networks, and presents everything in an interactive React network graph dashboard. Multiple layout options (circular, hierarchical, force-directed), table view, mobile-friendly, and a live demo.

Built + maintained by **karam-ajaj**. See repo license.

- Upstream repo: <https://github.com/karam-ajaj/atlas>
- Live demo: <https://atlasdemo.vnerd.nl> (admin / change-me)
- Docker Hub: `kajaj/atlas` (check repo for current image names)

## Architecture in one minute

- **Go** scanner backend (Docker container scanning)
- **FastAPI** (Python) backend for REST API + data access
- **Nginx** + **React** frontend for the dashboard
- Multi-container Docker Compose stack
- Accesses Docker socket for container scanning + `nmap`-style subnet scanning
- Resource: **low-medium** — Go + Python + React; scan intensity varies

## Compatible install methods

| Infra              | Runtime                   | Notes                                              |
| ------------------ | ------------------------- | -------------------------------------------------- |
| **Docker Compose** | builds from repo          | `git clone` + `docker compose up`                  |

## Install

```bash
git clone https://github.com/karam-ajaj/atlas.git
cd atlas
docker compose up -d
```

Visit the URL shown in the compose output (check `docker compose ps` for the port).

Demo: <https://atlasdemo.vnerd.nl> — login: `admin` / `change-me`

Full setup: <https://github.com/karam-ajaj/atlas>

## What Atlas scans

### Docker Containers

For each running container, Atlas extracts:
- IP addresses (all network interfaces; supports multiple IPs per container)
- MAC addresses (all interfaces)
- Open ports (mapped + container ports)
- Docker network names
- OS type (inferred from image metadata)
- Each network interface tracked separately

### Local Subnet Hosts

For each reachable host on the local subnet:
- Reachability (ping)
- OS fingerprint
- MAC address
- Open ports

## Features overview

| Feature | Details |
|---------|---------|
| Circular layout | Network graph with circular topology |
| Hierarchical layout | Tree-based topology view |
| Force-directed layout | Physics-based automatic node placement |
| Table view | Flat table of all hosts and containers |
| Logs panel | View scanner logs in real-time |
| Mobile view | Responsive; works on small screens |
| Auto-scan | Scans on schedule; data refreshed automatically |
| REST API | FastAPI backend with OpenAPI docs |

## Gotchas

- **Docker socket access required for container scanning.** The Go scanner needs the Docker socket to read container metadata. Mount `/var/run/docker.sock` in the compose.
- **Subnet scanning may require `NET_ADMIN`.** For full ICMP and MAC discovery on the subnet, the scanner container may need elevated network capabilities. Check the compose file.
- **This is read-only discovery.** Atlas scans and visualizes — it doesn't manage or modify containers or network config.
- **Building from source.** No pre-built Docker Hub image is used in the default compose — it builds from the repo. First `docker compose up` will build the images (takes a few minutes).
- **Demo credentials are `admin` / `change-me`.** The demo is open — don't deploy with default credentials if exposing Atlas externally.
- **Nmap-style scanning may alert network security tools.** Subnet scanning generates probe traffic. On corporate or monitored networks, this could trigger security alerts. Use only on networks you own or have permission to scan.

## Backup

Atlas state is regenerated by scanning — no persistent user data to back up beyond configuration.

## Upgrade

```sh
cd atlas && git pull && docker compose build && docker compose up -d
```

## Project health

Active Go + FastAPI + React development, live demo, mobile UI, multiple graph layouts. Solo-maintained by karam-ajaj.

## Network-visualization-family comparison

- **Atlas** — Go+FastAPI+React, Docker+subnet scan, interactive graph, table view, MIT-like
- **Netdata** — deep per-host metrics; no topology graph
- **Netbox** — full DCIM/IPAM; manual inventory; no auto-scan
- **Nmap** — CLI network scanner; no graph UI
- **Angry IP Scanner** — desktop app; no self-hosted server
- **Rackula** — rack diagram tool; no auto-scan

**Choose Atlas if:** you want a self-hosted dashboard that automatically discovers and visualizes your Docker containers and subnet hosts in an interactive network graph.

## Links

- Repo: <https://github.com/karam-ajaj/atlas>
- Demo: <https://atlasdemo.vnerd.nl>
