Sign inSign up

scottibyte/blastradius

By scottibyte

•Updated 4 months ago

Homelab dependency and impact mapper for Incus, Docker, NPM, UniFi, DNS, and public services.

Image
Networking
Monitoring & observability
0

197

scottibyte/blastradius repository overview

⁠ScottiBYTE BlastRadius

ScottiBYTE BlastRadius Dashboard

ScottiBYTE BlastRadius is an agentless homelab dependency and impact dashboard for mapping public services, Nginx Proxy Manager routes, Incus hosts, Incus instances, nested Docker containers, DNS, and external entry points.

BlastRadius helps answer:

If this host, container, proxy, DNS provider, or network path fails, what services are affected?


⁠Features

  • Agentless homelab dependency discovery
  • Incus remote and instance inventory
  • Nested Docker container discovery inside Incus instances
  • Nginx Proxy Manager proxy host mapping
  • Public service health and ownership mapping
  • DNS provider and nameserver discovery
  • WAN/public IP discovery
  • Broken path and issue detection
  • Expandable topology map
  • Topology zoom, fullscreen, drag-to-pan, and reset view
  • Standalone HTML topology export
  • Light and dark mode

⁠Docker Compose

Create a project folder:

mkdir -p blastradius/{data,public} && cd blastradius

Create your configuration file before starting the container:

nano data/config.json

A full example configuration is available here:

https://github.com/ScottiBYTE/BlastRadius/blob/main/data/config.example.json

Example docker-compose.yml:

services:
  blastradius:
    image: scottibyte/blastradius:latest
    container_name: blastradius
    restart: unless-stopped
    ports:
      - "3050:3050"
    volumes:
      - ./data:/app/data

Start the container:

docker compose up -d

Open the dashboard:

http://localhost:3050

⁠Required Setup Before First Run

Before running docker compose up -d, configure:

  • Incus remote trust access
  • data/config.json
  • Nginx Proxy Manager credentials, if NPM discovery is enabled
  • Local UniFi console credentials, if UniFi discovery is enabled
  • DNS/public domain settings

Do not use your UI.com cloud account for UniFi discovery. Use a local UniFi console/controller account such as:

unifi-local-account

⁠Incus Remote Access

On each Incus server, create a trust token:

incus config trust add

On the system where BlastRadius will run, add each remote:

incus remote add incus-server-1 TRUST_TOKEN_FROM_SERVER_1
incus remote add incus-server-2 TRUST_TOKEN_FROM_SERVER_2

Verify:

incus remote list
incus list incus-server-1:
incus list incus-server-2:

Copy Certificates:

mkdir -p data/incus-client
cp ~/.config/incus/client.crt data/incus-client/client.crt
cp ~/.config/incus/client.key data/incus-client/client.key
chmod 644 data/incus-client/client.crt
chmod 600 data/incus-client/client.key 

The remote names in Incus must match the names in data/config.json.


⁠Health Check

curl http://localhost:3050/api/health

Expected response:

{
  "ok": true,
  "app": "ScottiBYTE BlastRadius",
  "version": "1.0.1"
}

⁠Tags

Recommended stable tag:

scottibyte/blastradius:1.0.1

Latest tag:

scottibyte/blastradius:latest

⁠GitHub

https://github.com/ScottiBYTE/BlastRadius

⁠Community Support

Need help with Blast Radius, Docker deployment, Incus profile management, container creation, or ScottiBYTE utilities?

Join the ScottiBYTE Rocket.Chat community:

Join ScottiBYTE Rocket.Chat⁠

New users can start in #general. From there, you can find other ScottiBYTE project channels and community discussions.

For bugs and feature requests, please continue to use GitHub Issues. For quick questions and community discussion, use Rocket.Chat.

Tag summary

Content type

Image

Digest

sha256:f34d02dbd…

Size

49.9 MB

Last updated

4 months ago

docker pull scottibyte/blastradius