# Blast Radius - Homelab Dependency and Impact Mapper

**URL:** https://discussion.scottibyte.com/t/blast-radius-homelab-dependency-and-impact-mapper/1515
**Category:** Uncategorized
**Created:** [June 6, 2026, 5:32am UTC](https://discussion.scottibyte.com/t/blast-radius-homelab-dependency-and-impact-mapper/1515 "2026-06-06T05:32:27Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![scott](https://discussion.scottibyte.com/letter_avatar_proxy/v4/letter/s/3e96dc/32.png) [@scott](https://discussion.scottibyte.com/u/scott)
#### Post date: [June 6, 2026, 5:32am UTC](https://discussion.scottibyte.com/t/blast-radius-homelab-dependency-and-impact-mapper/1515/1 "2026-06-06T05:32:27Z")

</div>

**ScottiBYTE BlastRadius** is an agent-less 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.

 ![image](https://discussion.scottibyte.com/uploads/default/original/2X/f/f96504b521ce86be5f04bec19a68c48977c7c230.jpeg)

Start by creating an Incus container to host Blast Radius:

```auto
incus launch images:ubuntu/26.04 BlastRadius -p default -p bridgeprofile -c boot.autostart=true -c security.nesting=true

```

Move inside the container.

```auto
incus shell BlastRadius

```

Accept the updates.

```auto
apt update
apt modernize-sources -y
apt upgrade -y

```

Install some dependencies.

```auto
apt install net-tools nano curl openssh-server incus-client -y

```

Install docker from the script on the docker website.

```auto
curl https://get.docker.com | sh

```

Add a user account and put it in the sudo and docker groups.

```auto
adduser scott
usermod -aG sudo,docker scott

```

Login to the user account.

```auto
su - scott

```

Edit the host file to add your incus server names and addresses as shown in the video.

```auto
sudo nano /etc/hosts

```

 ![image](https://discussion.scottibyte.com/uploads/default/original/2X/f/ff50a9b3d8f84031e45543d2c135fe755ae4eede.png)

Once you have added your Incus servers CTRL O and enter to save the file and CTRL X to exit the nano editor.

Create trusts for each server as follows using your server names you just entered.

```auto
ssh vmsmist "incus config trust add BlastRadius"

```

 ![image](https://discussion.scottibyte.com/uploads/default/original/2X/7/779aa54161e06760cf3c2aee35ea596329287fbc.jpeg)

Then enter the command to complete the trust.

```auto
incus remote add vmsmist https://vmsmist:8443 --accept-certificate

```

Paste the token from above when prompted.

 ![image](https://discussion.scottibyte.com/uploads/default/original/2X/4/4245c3925be920f758c549e35fc85f4c4b534162.jpeg)

You can list your remote servers.

```auto
incus remote list

```

 ![image](https://discussion.scottibyte.com/uploads/default/original/2X/2/2b0f0128557a65d2368767de41393778fdecb2db.jpeg)

Add a trust for each Incus server that you want Blast Radius to examine.

You can test your trust by having it list the containers on the remote you added.

```auto
incus list vmsmist:

```

Create the required file structure.

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

```

Edit a configuration file.

```auto
nano data/config.json

```

Put the following data in the file.

```auto
{
  "npm": {
    "enabled": true,
    "url": "http://NginX-IP:81",
    "email": "admin@example.com",
    "password": "changeme",
    "timeoutMs": 5000,
    "defaultCheckMode": "tcp",
    "domainOverrides": {
      "example-service.example.com": {
        "checkMode": "skip",
        "note": "Optional example: skip direct checks for a service that should not be checked directly."
      }
    }
  },
  "incus": {
    "enabled": true,
    "timeoutMs": 8000,
    "cert": "./data/incus-client/client.crt",
    "key": "./data/incus-client/client.key",
    "verifyTls": false,
    "remotes": [
      {
        "name": "vmsmist",
        "url": "https://172.16.1.50:8443",
        "enabled": true,
        "project": "default"
      }
    ]
  },
  "dockerDiscovery": {
    "enabled": true,
    "timeoutMs": 5000,
    "cacheSeconds": 900,
    "maxInstances": 150
  },
  "liveModelCache": {
    "cacheSeconds": 45
  },
  "certificateDiscovery": {
    "enabled": true,
    "highDays": 7,
    "mediumDays": 21,
    "lowDays": 60,
    "externalUseCertificates": {
      "mydomain.com": {
        "note": "Optional example: certificate is used outside NPM, such as by another web server."
      }
    }
  }
}

```

Change your NginX Proxy Manager address, username, and password in the file about and make the other changes detailed in the tutorial. Save the file with CTRL O and enter and CTRL X to exit the editor.

Create a folder for the Incus client certificate and copy the the certificate and key into it.

```auto
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

```

Edit a docker compose file.

```auto
nano compose.yml

```

Insert the following into the editor.

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

```

Save the file with a CTRL O and enter and then CTRL X to exit the editor.

Start the application.

```auto
docker compose up -d

```

 ![image](https://discussion.scottibyte.com/uploads/default/original/2X/d/d8fb4b94d693d1c0a41b92db6707897b7f7eb734.jpeg)

Find out the address of eth0 in your incus container.

```auto
ifconfig

```

Go to your web browser at the address you just found at port 3050.

```auto
http://a.b.c.d:3050

```

If all goes well…

 ![image](https://discussion.scottibyte.com/uploads/default/original/2X/3/3753731f6c395f60401c9158ab9f801876873ca0.jpeg)

After a few seconds you will have your very own Blast Radius utility.

Enjoy!
