Cómo instalar Atlas en Docker - Descubrimiento y visualización de redes autohospedada

Atlas | Network Discovery | Docker

Atlas en Docker: Descubrimiento y visualización de redes autohospedada con escaneo Docker/hosts (Go, FastAPI, React) 🗺️

Herramienta network discovery autohospedada. Escaneo Docker containers + hosts físicos. Grafo interactivo topología. Status online/offline live. Multi-interfaz multi-subnet. Autenticación opcional. Go backend ultra-fast. FastAPI API REST. React frontend moderno. Scans automáticos 30min. SQLite persistencia. MIT open source.

¿Qué es Atlas?

Atlas es una herramienta full-stack de descubrimiento y visualización de redes autohospedada que escanea automáticamente infraestructura (Docker containers, hosts físicos, múltiples subnets) y mapea la topología completa en un grafo interactivo con indicadores de estado live, siendo ideal para homelabs, SMB, y monitoreo de infraestructura compleja. Es la solución moderna para visibilidad total de redes.

Propuesta clave: Network discovery + visualization completo. Escaneo automático Docker containers (multi-network, IPs/MACs múltiples). Escaneo hosts físicos (ping, ARP, SNMP). Grafo interactivo dinámico (Vis.js based). Status indicators (online/offline real-time). Multi-interfaz support (hosts en múltiples networks aparecen separados con labels). Multi-subnet scanning (192.168.x.0/24, 10.0.0.0/24, etc). Autenticación opcional (JWT tokens). Backend Go ultra-fast. FastAPI REST API. React UI moderna. SQLite DB. Scans automáticos vía timers (fast 1h, docker 1h, deep 2h). Deployment Docker simple. MIT open source.

Características principales: Escaneo automático infraestructura: Docker container inspection (multi-network support), hosts físicos (ping + ARP scanning), subnets configurables. Grafo interactivo topología: nodos hosts/containers, edges conexiones, zoom/pan/drag. Status indicators: online/offline, última actividad. Multi-interfaz tracking: mismo host en múltiples networks con labels interfaz. Query API: busca hosts, containers, subnets. UI dashboard: network overview, host details, container logs. Authentication: JWT basado (opcional). Persistent storage: SQLite DB. Scheduled scans: fast (1h), docker (1h), deep (2h) vía Go timers. Manual scan trigger via API. Environment config: puertos UI/API, scan intervals, subnets. Docker network=host + CAP_add NET_RAW. Lightweight: low CPU/RAM. Open source MIT.

Para homelabs: Descubrimiento red automático. Visualización topología. Docker + hosts combinados. Status live. Multi-subnet.

Características principales

Escaneo Docker automático

Containers multi-network. IPs/MACs múltiples. Status live. Logs integrados.

Escaneo hosts físicos

Ping + ARP scanning. Detección automática. Status online/offline.

Grafo interactivo dinámico

Visualización topología red. Zoom, pan, drag. Vis.js based.

Multi-interfaz + multi-subnet

Escanea múltiples redes. Interfaces etiquetadas. Soporte LAN + VPN.

Status indicators real-time

Online/offline live. Última actividad. Health checks visual.

Go backend ultra-fast

Escaneos eficientes. Alto rendimiento. Baja latencia.

FastAPI REST API

Query data. Manual scan trigger. Integrable applications.

React UI moderna

Dashboard responsivo. Dark/light modes. Interfaz intuitiva.

Autenticación JWT optional

Sessions 24h (configurable). Admin password. Seguro.

Scheduled scans automáticos

Fast (1h), Docker (1h), Deep (2h). Timers integrados. Cero cron.

SQLite persistencia

Data local. Históricos. Query built-in. Backup trivial.

MIT open source

Código abierto. Community-driven. Desarrollo activo.

Requisitos del sistema

  • Docker (Docker Compose v2+ recomendado)
  • 200 MB - 1 GB RAM mínimo (backend + DB)
  • 500 MB espacio disco (imagen + SQLite DB)
  • Puerto 8888 (UI) + 8889 (API) (configurables)
  • CAP_ADD NET_RAW + NET_ADMIN (para escaneo network)
  • network=host (para acceso red completo)
  • Docker socket access (/var/run/docker.sock mounted)
  • Navegador moderno (Chrome, Firefox, Safari, Edge)
Setup simple: Docker run one-liner. Escaneo automático al inicio. No config necesaria.

Instalación con Docker

Opción 1: Docker run simple (recomendado)

docker run -d \ --name atlas \ --network=host \ --cap-add=NET_RAW \ --cap-add=NET_ADMIN \ -v /var/run/docker.sock:/var/run/docker.sock \ -e ATLAS_UI_PORT=8888 \ -e ATLAS_API_PORT=8889 \ keinstien/atlas:latest # Acceso: http://localhost:8888

Opción 2: Docker Compose completo embebido (independiente GitHub)

mkdir -p atlas && cd atlas cat > docker-compose.yml << 'EOF' version: '3.8' services: atlas: image: keinstien/atlas:latest container_name: atlas restart: unless-stopped network_mode: host cap_add: - NET_RAW - NET_ADMIN volumes: - /var/run/docker.sock:/var/run/docker.sock - atlas_data:/config environment: # Puertos (UI + API) - ATLAS_UI_PORT=8888 - ATLAS_API_PORT=8889 # Autenticación (opcional) - ATLAS_ADMIN_USER=admin - ATLAS_ADMIN_PASSWORD=cambiar_despues_a_fuerte - ATLAS_AUTH_TTL_SECONDS=86400 # Intervalos scans (segundos) - FASTSCAN_INTERVAL=3600 - DOCKERSCAN_INTERVAL=3600 - DEEPSCAN_INTERVAL=7200 # Subnets a escanear (auto-detect si no especificado) - SCAN_SUBNETS=192.168.1.0/24,10.0.0.0/24 - TZ=Europe/Madrid healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8888"] interval: 30s timeout: 5s retries: 3 volumes: atlas_data: EOF docker compose up -d

Opción 3: Con Caddy HTTPS reverse proxy

cat >> docker-compose.yml << 'EOF' caddy: image: caddy:latest container_name: atlas-caddy restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - caddy_config:/config volumes: caddy_data: caddy_config: EOF cat > Caddyfile << 'EOF' atlas.tudominio.com { reverse_proxy localhost:8888 } EOF docker compose up -d

Acceder a Atlas

http://localhost:8888 - Local UI

http://localhost:8889 - Local API

https://atlas.tudominio.com - HTTPS remoto (si Caddy)

Primeros pasos

1. Acceder a la web UI

  1. Abre http://localhost:8888
  2. Si auth habilitado: ingresa usuario/contraseña
  3. Dashboard con grafo red aparece (escaneo en progreso)

2. Ver topología de red en vivo

  1. Grafo interactivo muestra: hosts, containers, subnets
  2. Nodos: azul (online), gris (offline)
  3. Zoom/pan con mouse
  4. Click nodo → detalles host/container

3. Ver status hosts + containers

  1. Dashboard panel: lista hosts y Docker containers
  2. Status: online/offline, última actividad
  3. IP, MAC, interfaces listadas
  4. Container logs integrados (si Docker)

4. Ver detalles multi-interfaz

  1. Host conectado a múltiples redes aparece como nodos separados
  2. Labels muestran nombre interfaz (eth0, vlan1, etc)
  3. Perfecto para visualizar VLANs, VPNs, multi-homed hosts

5. Triggear escaneo manual

  1. Dashboard → "Scan Now" o "Refresh"
  2. API: POST http://localhost:8889/api/scan
  3. Escaneo inicia (fast + docker + deep secuencial)

6. Query API (integración externa)

# Lista todos hosts curl http://localhost:8889/api/hosts # Lista containers Docker curl http://localhost:8889/api/containers # Trigger escaneo curl -X POST http://localhost:8889/api/scan

7. Configurar autenticación

  1. Editar .env: ATLAS_ADMIN_PASSWORD=contraseña_fuerte
  2. Restart container
  3. Login gate aparece antes dashboard
  4. Sessiones TTL 24h (configurable ATLAS_AUTH_TTL_SECONDS)

8. Configurar subnets a escanear

SCAN_SUBNETS=192.168.1.0/24,10.0.0.0/24,172.16.0.0/16 # Si no especificado, auto-detecta subnet local

9. Ver logs escaneo

docker logs -f atlas # Muestra: scanning subnets, hosts found, containers detected

10. Backup DB (importante)

docker cp atlas:/config/db/atlas.db ./atlas-backup-$(date +%Y%m%d).db

Casos de uso

  • Homelabs: Visibilidad total red + containers. Topología en un vistazo.
  • SMB networks: Descubrimiento automático infraestructura. Monitoring distribuido.
  • Multi-sitio: Escanea redes remotas vía subnets configurables. Agregación central.
  • Troubleshooting: Ver topología conectividad. Identificar hosts sin red.
  • Dashboards centralizados: API integrable en Grafana, Home Assistant, Dashboards.
  • Container orchestration: Monitor Docker containers + hosts físicos unificado.

Gestión y mantenimiento

Ver logs en tiempo real

docker logs -f atlas

Restart container

docker compose restart atlas

Actualizar imagen a versión más reciente

docker pull keinstien/atlas:latest docker compose up -d

Monitorear consumo (ultra-ligero)

docker stats atlas # Típicamente: 150-300MB RAM, <5% CPU

Acceder a SQLite DB directamente

docker exec atlas sqlite3 /config/db/atlas.db # SQL queries directo SELECT ip, name, interface_name FROM hosts ORDER BY ip;

Resetear base de datos

docker exec atlas rm /config/db/atlas.db docker compose restart atlas # Próximo escaneo recrea DB

Ver versión instalada

docker inspect keinstien/atlas:latest | grep -i version

Comparativa con alternativas

vs Nmap

Atlas gana: UI moderna, Docker nativo, visualización interactiva, scheduled scans. Nmap gana: Más opciones scanning, CLI power, histórico maduro.

vs Netbox

Atlas gana: Setup simple, escaneo automático, UI ligera. Netbox gana: Más features, IPAM robusto, documentación extensa.

vs Zabbix network

Atlas gana: Ligero, escaneo Docker específico, setup trivial. Zabbix gana: Enterprise-ready, alertas, históricos long-term.

Mejor para: Homelabs, SMB. Descubrimiento automático. Docker + hosts. Topología visual. Setup simple.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.