jokobsk/netalertx

By jokobsk

โ€ขUpdated 8 days ago

Centralized network visibility and asset discovery. Monitor devices, detect change, get notified.

Image
Networking
Security
Monitoring & observability
35

1M+

jokobsk/netalertx repository overview

Docker Size Docker Pulls GitHub Release Discord Home Assistant

โ NetAlertX - Network Visibility & Asset Intelligence Framework


โ || Docker guideโ  || Releasesโ  || Docsโ  || Pluginsโ  || Websiteโ 

โ 

Head to https://netalertx.com/โ  for more gifs and screenshots ๐Ÿ“ท.

Note

There is also an experimental ๐Ÿงช [bare-metal install](https://docs.netalertx.com/HW_INSTALL) method available.

โ ๐Ÿ“• Basic Usage

Warning

You will have to run the container on the `host` network and specify `SCAN_SUBNETS` unless you use other [plugin scanners](https://docs.netalertx.com/PLUGINS). The initial scan can take a few minutes, so please wait 5-10 minutes for the initial discovery to finish.
docker run -d --rm --network=host \
  -v /local_data_dir:/data \
  -v /etc/localtime:/etc/localtime \
  --tmpfs /tmp:uid=${NETALERTX_UID:-20211},gid=${NETALERTX_GID:-20211},mode=1700 \
  -e PORT=20211 \
  -e APP_CONF_OVERRIDE={"GRAPHQL_PORT":"20214"} \
  ghcr.io/netalertx/netalertx:latest

Runtime UID/GID: The image defaults to a service user netalertx (UID/GID 20211). A separate readonly lock owner also uses UID/GID 20211 for 004/005 immutability. You can override the runtime UID/GID at build (ARG) or run (--user / compose user:) but must align writable mounts (/data, /tmp*) and tmpfs uid/gid to that choice.

See alternative docked-compose examplesโ .

โ Default ports
DefaultDescriptionHow to override
20211Port of the web interface-e PORT=20222
20212Port of the backend API server-e APP_CONF_OVERRIDE={"GRAPHQL_PORT":"20214"} or via the GRAPHQL_PORT Setting
โ Docker environment variables
VariableDescriptionExample/Default Value
PUIDRuntime UID override, set to 0 to run as root.20211
PGIDRuntime GID override20211
PORTPort of the web interface20211
LISTEN_ADDRSet the specific IP Address for the listener address for the nginx webserver (web interface). This could be useful when using multiple subnets to hide the web interface from all untrusted networks.0.0.0.0
LOADED_PLUGINSDefault pluginsโ  to load. Plugins cannot be loaded with APP_CONF_OVERRIDE, you need to use this variable instead and then specify the plugins settings with APP_CONF_OVERRIDE.["PIHOLE","ASUSWRT"]
APP_CONF_OVERRIDEJSON override for settings (except LOADED_PLUGINS).{"SCAN_SUBNETS":"['192.168.1.0/24 --interface=eth1']","GRAPHQL_PORT":"20212"}
ALWAYS_FRESH_INSTALLโš  If true will delete the content of the /db & /config folders. For testing purposes. Can be coupled with watchtowerโ  to have an always freshly installed netalertx/netalertx-dev image.true

You can override the default GraphQL port setting GRAPHQL_PORT (set to 20212) by using the APP_CONF_OVERRIDE env variable. LOADED_PLUGINS and settings in APP_CONF_OVERRIDE can be specified via the UI as well.

โ Docker paths

Note

See also [Backup strategies](https://docs.netalertx.com/BACKUPS).
RequiredPathDescription
โœ…:/dataFolder which needs to contain a /db and /config sub-folders.
โœ…/etc/localtime:/etc/localtime:roEnsuring the timezone is the same as on the server.
:/tmp/logLogs folder useful for debugging if you have issues setting up the container
:/tmp/apiThe API endpointโ  containing static (but regularly updated) json and other files. Path configurable via NETALERTX_API environment variable.
:/app/front/plugins/<plugin>/ignore_pluginMap a file ignore_plugin to ignore a plugin. Plugins can be soft-disabled via settings. More in the Plugin docsโ .
:/etc/resolv.confUse a custom resolv.conf file for better name resolutionโ .
โ Folder structure

Use separate db and config directories, do not nest them:

data
โ”œโ”€โ”€ config
โ””โ”€โ”€ db
โ Permissions

If you are facing permissions issues run the following commands on your server. This will change the owner and assure sufficient access to the database and config files that are stored in the /local_data_dir/db and /local_data_dir/config folders (replace local_data_dir with the location where your /db and /config folders are located).

# Use the runtime UID/GID you intend to run with (default 20211:20211)
sudo chown -R ${NETALERTX_UID:-20211}:${NETALERTX_GID:-20211} /local_data_dir
sudo chmod -R a+rwx /local_data_dir
โ Initial setup
  • If unavailable, the app generates a default app.conf and app.db file on the first run.
  • The preferred way is to manage the configuration via the Settings section in the UI, if UI is inaccessible you can modify app.confโ  in the /data/config/ folder directly
โ Setting up scanners

You have to specify which network(s) should be scanned. This is done by entering subnets that are accessible from the host. If you use the default ARPSCAN plugin, you have to specify at least one valid subnet and interface in the SCAN_SUBNETS setting. See the documentation on How to set up multiple SUBNETS, VLANs and what are limitationsโ  for troubleshooting and more advanced scenarios.

If you are running PiHole you can synchronize devices directly. Check the PiHole configuration guideโ  for details.

Note

You can bulk-import devices via the [CSV import method](https://docs.netalertx.com/DEVICES_BULK_EDITING).
โ Community guides

You can read or watch several community configuration guidesโ  in Chinese, Korean, German, or French.

Please note these might be outdated. Rely on official documentation first.

โ Common issues

โ ๐Ÿ’™ Support me

GitHubBuy Me A Coffee
  • Bitcoin: 1N8tupjeCK12qRVU2XrV17WvKK7LCawyZM
  • Ethereum: 0x6e2749Cb42F4411bc98501406BdcD82244e3f9C7

๐Ÿ“ง Email me at [[email protected]โ ](mailto:[email protected]โ ?subject=NetAlertX Donations) if you want to get in touch or if I should add other sponsorship platforms.

Tag summary

Content type

Image

Digest

sha256:e8d800176โ€ฆ

Size

104.1 MB

Last updated

8 days ago

docker pull jokobsk/netalertx