Add website monitoring plugin and update workflows configuration

- Introduced a new plugin for monitoring website health, including functionality to check URLs and log results.
- Created README and configuration files for the workflows plugin, detailing its purpose and settings.
- Updated import paths in various test files to reflect the new directory structure.
- Ensured compatibility of test cases with the updated plugin architecture.
This commit is contained in:
Jokob @NetAlertX committed 2026-08-10 02:32:49 +00:00
1 parent c7ecbefbaa
commit 9e38cfd8b4
251 files changed
+290 -281

No files matched your search

+1 -1
View File
@@ -68,8 +68,8 @@ ENV NETALERTX_APP=${INSTALL_DIR}
ENV NETALERTX_DATA=/data
ENV NETALERTX_CONFIG=${NETALERTX_DATA}/config
ENV NETALERTX_FRONT=${NETALERTX_APP}/front
ENV NETALERTX_PLUGINS=${NETALERTX_FRONT}/plugins
ENV NETALERTX_SERVER=${NETALERTX_APP}/server
ENV NETALERTX_PLUGINS=${NETALERTX_SERVER}/plugins
ENV NETALERTX_API=/tmp/api
ENV NETALERTX_DB=${NETALERTX_DATA}/db
ENV NETALERTX_DB_FILE=${NETALERTX_DB}/app.db
File renamed without changes.
@@ -8,23 +8,23 @@ description: Create and run NetAlertX plugins. Use this when asked to create plu
## Expected Workflow
1. Read this skill and `docs/PLUGINS_DEV.md` for full context.
2. Find or create the plugin in `front/plugins/<code_name>/`.
2. Find or create the plugin in `server/plugins/<code_name>/`.
3. Read the plugin's `config.json` and `script.py` to understand its functionality.
4. Run: `python3 front/plugins/<code_name>/script.py`
4. Run: `python3 server/plugins/<code_name>/script.py`
5. Retrieve the result from `/tmp/log/plugins/last_result.<PREF>.log` quickly — the backend deletes it after processing.
## Run a Plugin Manually
```bash
python3 front/plugins/<code_name>/script.py
python3 server/plugins/<code_name>/script.py
```
Ensure `sys.path` includes `/app/front/plugins` and `/app/server` (as in the template).
Ensure `sys.path` includes `/app/server/plugins` and `/app/server` (as in the template).
## Plugin Structure
```text
front/plugins/<code_name>/
server/plugins/<code_name>/
├── config.json # Manifest with settings
├── script.py # Main script
└── ...
@@ -81,6 +81,6 @@ plugin_objects.write_result_file() # Exactly once at end
## Starting Point
Copy from `front/plugins/__template` and customize. Read `docs/PLUGINS_DEV.md` for the full development guide.
Copy from `server/plugins/__template` and customize. Read `docs/PLUGINS_DEV.md` for the full development guide.
+2 -2
View File
@@ -17,8 +17,8 @@ description: Reference for the NetAlertX codebase structure, key file paths, and
| Frontend | `front/` |
| Frontend JS | `front/js/common.js` |
| Frontend PHP | `front/php/server/*.php` |
| Plugins | `front/plugins/` |
| Plugin template | `front/plugins/__template` |
| Plugins | `server/plugins/` |
| Plugin template | `server/plugins/__template` |
| Database helpers | `server/db/db_helper.py` |
| Device model | `server/models/device_instance.py` |
| Messaging | `server/messaging/` |
+1 -1
View File
@@ -91,7 +91,7 @@ Do not fix pre-existing failures unless that is the explicit goal.
The test environment is pre-configured with:
- `/app` — primary location where Python runs in production
- `/app/server` — symlink to `/workspaces/NetAlertX/server`
- `/app/front/plugins` — symlink to `/workspaces/NetAlertX/front/plugins`
- `/app/server/plugins` — symlink to `/workspaces/NetAlertX/server/plugins`
- `/workspaces/NetAlertX/test`
- `/workspaces/NetAlertX/server`
- `/workspaces/NetAlertX`
+1 -1
View File
@@ -19,7 +19,7 @@ Network monitoring & alerting. Provides inventory, awareness, insight, categoriz
- **Backend Config:** `/data/config/app.conf`
- **Data (SQLite):** `/data/db/app.db`; helpers in `server/db/*`
- **Frontend (Nginx + PHP + JS):** `front/`
- **Plugins (Python):** `front/plugins/*` with `config.json` manifests
- **Plugins (Python):** `server/plugins/*` with `config.json` manifests
## Skills
+1 -1
View File
@@ -28,7 +28,7 @@ Before implementing any feature that reads or writes the `Devices` table, audit
| `server/db/authoritative_handler.py` | `enforce_source_on_user_update()` | `*Source` columns |
| `server/db/authoritative_handler.py` | `lock_field()` / `unlock_field()` | `*Source` columns |
| `server/models/notification_instance.py` | `clearPendingEmailFlag()` | `devLastNotification` |
| `front/plugins/db_cleanup/script.py` | `cleanup_database()` | DELETE operations |
| `server/plugins/db_cleanup/script.py` | `cleanup_database()` | DELETE operations |
**Key insight:** Most scan functions use `sql.executemany()` — there is no per-row Python state available. Python hooks before/after executemany require a pre-fetch+diff pattern that is expensive and error-prone.
@@ -8,23 +8,23 @@ description: Create and run NetAlertX plugins. Use this when asked to create plu
## Expected Workflow for Running Plugins
1. Read this skill document for context and instructions.
2. Find the plugin in `front/plugins/<code_name>/`.
2. Find the plugin in `server/plugins/<code_name>/`.
3. Read the plugin's `config.json` and `script.py` to understand its functionality and settings.
4. Formulate and run the command: `python3 front/plugins/<code_name>/script.py`.
4. Formulate and run the command: `python3 server/plugins/<code_name>/script.py`.
5. Retrieve the result from the plugin log folder (`/tmp/log/plugins/last_result.<PREF>.log`) quickly, as the backend may delete it after processing.
## Run a Plugin Manually
```bash
python3 front/plugins/<code_name>/script.py
python3 server/plugins/<code_name>/script.py
```
Ensure `sys.path` includes `/app/front/plugins` and `/app/server` (as in the template).
Ensure `sys.path` includes `/app/server/plugins` and `/app/server` (as in the template).
## Plugin Structure
```text
front/plugins/<code_name>/
server/plugins/<code_name>/
├── config.json # Manifest with settings
├── script.py # Main script
└── ...
@@ -32,7 +32,7 @@ front/plugins/<code_name>/
## Manifest Location
`front/plugins/<code_name>/config.json`
`server/plugins/<code_name>/config.json`
- `code_name` == folder name
- `unique_prefix` drives settings and filenames (e.g., `ARPSCAN`)
@@ -51,7 +51,7 @@ Scripts write to `/tmp/log/plugins/last_result.<PREF>.log`
**Important:** The backend will almost immediately process this result file and delete it after ingestion. If you need to inspect the output, run the plugin and immediately retrieve the result file before the backend processes it.
Use `front/plugins/plugin_helper.py`:
Use `server/plugins/plugin_helper.py`:
```python
from plugin_helper import Plugin_Objects
@@ -82,4 +82,4 @@ plugin_objects.write_result_file() # Exactly once at end
## Starting Point
Copy from `front/plugins/__template` and customize.
Copy from `server/plugins/__template` and customize.
+2 -2
View File
@@ -17,8 +17,8 @@ description: Navigate the NetAlertX codebase structure. Use this when asked abou
| Frontend | `front/` |
| Frontend JS | `front/js/common.js` |
| Frontend PHP | `front/php/server/*.php` |
| Plugins | `front/plugins/` |
| Plugin template | `front/plugins/__template` |
| Plugins | `server/plugins/` |
| Plugin template | `server/plugins/__template` |
| Database helpers | `server/db/db_helper.py` |
| Device model | `server/models/device_instance.py` |
| Messaging | `server/messaging/` |
+1 -1
View File
@@ -28,7 +28,7 @@ Tests live in `test/` directory. App code is under `server/`.
PYTHONPATH is preconfigured to include the following which should meet all needs:
- `/app` # the primary location where python runs in the production system
- `/app/server` # symbolic link to /wprkspaces/NetAlertX/server
- `/app/front/plugins` # symbolic link to /workspaces/NetAlertX/front/plugins
- `/app/server/plugins` # symbolic link to /workspaces/NetAlertX/server/plugins
- `/opt/venv/lib/pythonX.Y/site-packages`
- `/workspaces/NetAlertX/test`
- `/workspaces/NetAlertX/server`
+1
View File
@@ -20,6 +20,7 @@ db/app.db
front/log/*
/log/*
.gemini/internal-docs/PRDs/*
!.gemini/internal-docs/PRDs/.gitkeep
/log/plugins/*
front/api/*
/api/*
+7 -1
View File
@@ -12,7 +12,7 @@
"python.testing.autoTestDiscoverOnSaveEnabled": true,
// Let the Python extension invoke pytest via the interpreter; avoid hardcoded paths
// Removed python.testing.pytestPath and legacy pytest.command overrides
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.profiles.linux": {
"zsh": {
@@ -32,5 +32,11 @@
"--line-length=180"
],
"chat.useAgentSkills": true,
"chat.tools.terminal.autoApprove": {
"test": true,
"git check-ignore": true,
"mkdir": true,
"cp": true
},
}
+1 -1
View File
@@ -65,8 +65,8 @@ ENV NETALERTX_APP=${INSTALL_DIR}
ENV NETALERTX_DATA=/data
ENV NETALERTX_CONFIG=${NETALERTX_DATA}/config
ENV NETALERTX_FRONT=${NETALERTX_APP}/front
ENV NETALERTX_PLUGINS=${NETALERTX_FRONT}/plugins
ENV NETALERTX_SERVER=${NETALERTX_APP}/server
ENV NETALERTX_PLUGINS=${NETALERTX_SERVER}/plugins
ENV NETALERTX_API=/tmp/api
ENV NETALERTX_DB=${NETALERTX_DATA}/db
ENV NETALERTX_DB_FILE=${NETALERTX_DB}/app.db
+1 -1
View File
@@ -46,7 +46,7 @@ services:
# - /custom-enterprise.conf:/tmp/nginx/active-config/netalertx.conf:ro
# Test your plugin on the production container
# - /path/on/host:/app/front/plugins/custom
# - /path/on/host:/app/server/plugins/custom
# Retain logs - comment out tmpfs /tmp/log if you want to retain logs between container restarts
# - /path/on/host/log:/tmp/log
+1 -1
View File
@@ -8,7 +8,7 @@ Effective multi-network monitoring starts with understanding how NetAlertX "sees
* **B. Plan Subnet & Scan Interfaces:** Explicitly configure each accessible segment in `SCAN_SUBNETS` with the corresponding interfaces.
* **C. Remote & Inaccessible Networks:** For networks unreachable via ARP, use these strategies:
* **Alternate Plugins:** Supplement discovery with [SNMPDSC](https://docs.netalertx.com/PLUGINS/?h=SNMPDSC#available-plugins) or [DHCP lease imports](https://docs.netalertx.com/PLUGINS/?h=DHCPLSS#available-plugins).
* **Sync Hub for MSP & Multi-Site Deployments:** Run secondary NetAlertX instances on isolated networks and aggregate data using the **SYNC plugin**. Use the [`SYNC_BEHAVIOR`](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/sync/README.md#hub-device-write-behavior-sync_behavior) setting on the hub to control whether the hub inherits device config from nodes or manages it independently.
* **Sync Hub for MSP & Multi-Site Deployments:** Run secondary NetAlertX instances on isolated networks and aggregate data using the **SYNC plugin**. Use the [`SYNC_BEHAVIOR`](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/sync/README.md#hub-device-write-behavior-sync_behavior) setting on the hub to control whether the hub inherits device config from nodes or manages it independently.
* **Manual Entry:** For static assets where only ICMP (ping) status is needed.
> [!TIP]
+2 -2
View File
@@ -4,7 +4,7 @@ NetAlertX supports centralized monitoring across remote sites, customer environm
Deploy lightweight NetAlertX instances inside remote or segmented networks, then securely aggregate device inventory and network visibility data into a central hub for unified monitoring, alerting, and asset management.
![Sync Hub Setup Diagram](https://raw.githubusercontent.com/netalertx/NetAlertX/refs/heads/main/front/plugins/sync/sync_hub.png)
![Sync Hub Setup Diagram](https://raw.githubusercontent.com/netalertx/NetAlertX/refs/heads/main/server/plugins/sync/sync_hub.png)
---
@@ -127,7 +127,7 @@ For best results in multi-site environments:
## Related Documentation
* [Remote Networks](./REMOTE_NETWORKS.md)
* [Sync Hub Plugin](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/sync/README.md)
* [Sync Hub Plugin](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/sync/README.md)
* [Workflows](./WORKFLOWS.md)
* [Metrics API](./API_METRICS.md)
* [Eyes on Glass / NOC Dashboard](./ADVISORY_EYES_ON_GLASS.md)
+1 -1
View File
@@ -135,5 +135,5 @@ The `SYNC_BEHAVIOR` setting controls how the hub writes devices received from no
| `carbon-copy` | | All MACs every sync (UPSERT) |
| `hub-defaults` | | None — hub pipeline handles it |
For full details and per-mode behaviour, see [SYNC plugin README — Hub Device-Write Behavior](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/sync/README.md#hub-device-write-behavior-sync_behavior).
For full details and per-mode behaviour, see [SYNC plugin README — Hub Device-Write Behavior](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/sync/README.md#hub-device-write-behavior-sync_behavior).
+1 -1
View File
@@ -37,7 +37,7 @@ This includes settings for:
### Device Data
Stored in `/data/config/devices_<timestamp>.csv` or `/data/config/devices.csv`, created by the [CSV Backup `CSVBCKP` Plugin](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/csv_backup).
Stored in `/data/config/devices_<timestamp>.csv` or `/data/config/devices.csv`, created by the [CSV Backup `CSVBCKP` Plugin](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/csv_backup).
Contains:
* Device names, icons, and categories
+1 -1
View File
@@ -117,7 +117,7 @@ Slowness can be caused by:
With `ARPSCAN` scans some devices might flip IP addresses after each scan triggering false notifications. This is because some devices respond to broadcast calls and thus different IPs after scans are logged.
See how to prevent IP flipping in the [ARPSCAN plugin guide](/front/plugins/arp_scan/README.md).
See how to prevent IP flipping in the [ARPSCAN plugin guide](/server/plugins/arp_scan/README.md).
Alternatively adjust your [notification settings](./NOTIFICATIONS.md) to prevent false positives by filtering out events or devices.
+1 -1
View File
@@ -74,7 +74,7 @@ See alternative [docker-compose examples](https://docs.netalertx.com/DOCKER_COMP
| ✅ | `/etc/localtime:/etc/localtime:ro` | Ensuring the timezone is the same as on the server. |
| | `:/tmp/log` | Logs folder useful for debugging if you have issues setting up the container |
| | `:/tmp/api` | The [API endpoint](https://docs.netalertx.com/API) containing static (but regularly updated) json and other files. Path configurable via `NETALERTX_API` environment variable. |
| | `:/app/front/plugins/<plugin>/ignore_plugin` | Map a file `ignore_plugin` to ignore a plugin. Plugins can be soft-disabled via settings. More in the [Plugin docs](https://docs.netalertx.com/PLUGINS). |
| | `:/app/server/plugins/<plugin>/ignore_plugin` | Map a file `ignore_plugin` to ignore a plugin. Plugins can be soft-disabled via settings. More in the [Plugin docs](https://docs.netalertx.com/PLUGINS). |
| | `:/etc/resolv.conf` | Use a custom `resolv.conf` file for [better name resolution](https://docs.netalertx.com/REVERSE_DNS). |
### Folder structure
+1 -1
View File
@@ -9,7 +9,7 @@ NetAlertX includes MQTT support, allowing detected devices to appear as devices
>
> * Device discovery in Home Assistant takes approximately 10 seconds **per device**.
> * Devices removed from NetAlertX are not automatically removed from Home Assistant. Use [MQTT Explorer](https://mqtt-explorer.com/) to delete them from the MQTT broker if required.
> * For performance reasons, device definitions are not always fully synchronized. To force a complete synchronization, delete the MQTT Plugin Objects as described in the [MQTT plugin](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_mqtt#forcing-an-update) documentation.
> * For performance reasons, device definitions are not always fully synchronized. To force a complete synchronization, delete the MQTT Plugin Objects as described in the [MQTT plugin](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_mqtt#forcing-an-update) documentation.
## Mosquitto MQTT setup
+1 -1
View File
@@ -25,7 +25,7 @@ Get **NetAlertX** up and running in a few simple steps.
> [!NOTE]
> Configure your SMTP settings or enable additional `▶️ publisher` plugins to send alerts.
> For more flexibility, try [📚 `_publisher_apprise`](/front/plugins/_publisher_apprise/), which supports over 80 notification services.
> For more flexibility, try [📚 `_publisher_apprise`](/server/plugins/_publisher_apprise/), which supports over 80 notification services.
---
+3 -3
View File
@@ -27,7 +27,7 @@ The following device properties influence notifications. You can:
5. **Require NICs Online** - Determines whether this device is considered online only when **all associated NICs** are online. To configure this, navigate to the child devices, assign the `nic` relationship, and set this device as the **Parent node**. If enabled, every associated NIC must be online for the device to be considered online. If disabled, the device is considered online when **any NIC** is online. Database column name: `devReqNicsOnline`.
> [!NOTE]
> Please read through the [NTFPRCS plugin](https://github.com/netalertx/NetAlertX/blob/main/front/plugins/notification_processing/README.md) documentation to understand how device and global settings influence the notification processing.
> Please read through the [NTFPRCS plugin](https://github.com/netalertx/NetAlertX/blob/main/server/plugins/notification_processing/README.md) documentation to understand how device and global settings influence the notification processing.
## Plugin settings 🔌
@@ -46,11 +46,11 @@ Click the **Read more in the docs.** Link at the top of each plugin to get more
In Notification Processing settings, you can specify blanket rules. These allow you to specify exceptions to the Plugin and Device settings and will override those.
1. Notify on (`NTFPRCS_INCLUDED_SECTIONS`) allows you to specify which events trigger notifications. Usual setups will have `new_devices`, `down_devices`, and possibly `down_reconnected` set. Including `plugin` (dependenton the Plugin `<plugin>_WATCH` and `<plugin>_REPORT_ON` settings) and `events` (dependent on the on-device **Alert Events** setting) might be too noisy for most setups. More info in the [NTFPRCS plugin](https://github.com/netalertx/NetAlertX/blob/main/front/plugins/notification_processing/README.md) on what events these selections include.
1. Notify on (`NTFPRCS_INCLUDED_SECTIONS`) allows you to specify which events trigger notifications. Usual setups will have `new_devices`, `down_devices`, and possibly `down_reconnected` set. Including `plugin` (dependenton the Plugin `<plugin>_WATCH` and `<plugin>_REPORT_ON` settings) and `events` (dependent on the on-device **Alert Events** setting) might be too noisy for most setups. More info in the [NTFPRCS plugin](https://github.com/netalertx/NetAlertX/blob/main/server/plugins/notification_processing/README.md) on what events these selections include.
2. Alert down after (`NTFPRCS_alert_down_time`) is useful if you want to wait for some time before the system sends out a down notification for a device. This is related to the on-device **Alert down** setting and only devices with this checked will trigger a down notification.
3. Alert down after (sleep) (`NTFPRCS_sleep_time`) sets the **sleep window** in minutes. If a device has **Can Sleep** enabled and goes offline, it is shown as **Sleeping** (aqua 🌙 badge) for this many minutes before down-alert logic kicks in. Default is `30` minutes. Changing this setting takes effect after saving — no restart required.
You can filter out unwanted notifications globally. This could be because of a misbehaving device (GoogleNest/GoogleHub (See also [ARPSAN docs and the `--exclude-broadcast` flag](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/arp_scan#ip-flipping-on-google-nest-devices))) which flips between IP addresses, or because you want to ignore new device notifications of a certain pattern.
You can filter out unwanted notifications globally. This could be because of a misbehaving device (GoogleNest/GoogleHub (See also [ARPSAN docs and the `--exclude-broadcast` flag](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/arp_scan#ip-flipping-on-google-nest-devices))) which flips between IP addresses, or because you want to ignore new device notifications of a certain pattern.
1. Events Filter (`NTFPRCS_event_condition`) - Filter out Events from notifications.
2. New Devices Filter (`NTFPRCS_new_dev_condition`) - Filter out New Devices from notifications, but log and keep a new device in the system.
+2 -2
View File
@@ -39,14 +39,14 @@ Two plugins help maintain the systems performance:
### **1. Database Cleanup (DBCLNP)**
* Handles database maintenance and cleanup.
* See the [DB Cleanup Plugin Docs](/front/plugins/db_cleanup/README.md).
* See the [DB Cleanup Plugin Docs](/server/plugins/db_cleanup/README.md).
* Ensure its not failing by checking logs.
* Adjust the schedule (`DBCLNP_RUN_SCHD`) and timeout (`DBCLNP_RUN_TIMEOUT`) if necessary.
### **2. Maintenance (MAINT)**
* Cleans logs and performs general maintenance tasks.
* See the [Maintenance Plugin Docs](/front/plugins/maintenance/README.md).
* See the [Maintenance Plugin Docs](/server/plugins/maintenance/README.md).
* Verify proper operation via logs.
* Adjust the schedule (`MAINT_RUN_SCHD`) and timeout (`MAINT_RUN_TIMEOUT`) if needed.
+3 -3
View File
@@ -19,7 +19,7 @@ To use this approach, make sure a Web UI password is configured in **Pi-hole**.
| `PIHOLEAPI_API_MAXCLIENTS` | Maximum number of devices to request from Pi-hole. The default value is usually sufficient. | `500` |
| `PIHOLEAPI_FAKE_MAC` | Generate a deterministic fake MAC address from the IP address. | `False` |
Check the [PIHOLEAPI plugin README](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/pihole_api_scan/) for additional details and troubleshooting.
Check the [PIHOLEAPI plugin README](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/pihole_api_scan/) for additional details and troubleshooting.
### docker-compose changes
@@ -41,7 +41,7 @@ This approach requires mounting the Pi-hole DHCP leases file (`dhcp.leases`) int
| `DHCPLSS_RUN_SCHD` | If you run multiple device scanner plugins, configure them to use the same schedule. | `*/5 * * * *` |
| `DHCPLSS_paths_to_check` | Path to the mapped `dhcp.leases` file inside the container. The path must include `pihole` so the plugin can identify it as a Pi-hole leases file. | `['/etc/pihole/dhcp.leases']` |
Check the [DHCPLSS plugin README](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/dhcp_leases#overview) for additional details.
Check the [DHCPLSS plugin README](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/dhcp_leases#overview) for additional details.
### docker-compose changes
@@ -65,7 +65,7 @@ This approach requires mounting the Pi-hole database file into the NetAlertX con
| `PIHOLE_RUN_SCHD` | If you run multiple device scanner plugins, configure them to use the same schedule. | `*/5 * * * *` |
| `PIHOLE_DB_PATH` | Path to the mapped Pi-hole database file inside the container. | `/etc/pihole/pihole-FTL.db` |
Check the [PIHOLE plugin README](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/pihole_scan) for additional details.
Check the [PIHOLE plugin README](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/pihole_scan) for additional details.
### docker-compose changes
+48 -48
View File
@@ -45,54 +45,54 @@ Device-detecting plugins insert values into the `CurrentScan` database table. T
| ID | Plugin docs | Type | Description | Features | Required |
| --------------- | ------------------------------------------------------------------------------------------------------------------ | -------- | ----------------------------------------- | -------- | -------- |
| `APPRISE` | [_publisher_apprise](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_apprise/) | ▶️ | Apprise notification proxy | | |
| `ARPSCAN` | [arp_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/arp_scan/) | 🔍 | ARP-scan on current network | | |
| `AVAHISCAN` | [avahi_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/avahi_scan/) | 🆎 | Avahi (mDNS-based) name resolution | | |
| `ASUSWRT` | [asuswrt_import](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/asuswrt_import/) | 📥 | Import connected devices from AsusWRT | | |
| `CSVBCKP` | [csv_backup](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/csv_backup/) | ⚙ | CSV devices backup | | |
| `CUSTPROP` | [custom_props](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/custom_props/) | ⚙ | Managing custom device properties values | | Yes |
| `DBCLNP` | [db_cleanup](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/db_cleanup/) | ⚙ | Database cleanup | | Yes\* |
| `DDNS` | [ddns_update](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/ddns_update/) | ⚙ | DDNS update | | |
| `DHCPLSS` | [dhcp_leases](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/dhcp_leases/) | 📥/🆎 | Import devices from DHCP leases | | |
| `DHCPSRVS` | [dhcp_servers](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/dhcp_servers/) | ♻ | DHCP servers | | |
| `DIGSCAN` | [dig_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/dig_scan/) | 🆎 | Dig (DNS) Name resolution | | |
| `FREEBOX` | [freebox](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/freebox/) |📥/♻/🆎 | Pull data and names from Freebox/Iliadbox | | |
| `FRITZBOX` | [fritzbox](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/fritzbox/) | 📥 | Fritz!Box device scanner via TR-064 | | |
| `ICMP` | [icmp_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/icmp_scan/) | ♻ | ICMP (ping) status checker | | |
| `INTRNT` | [internet_ip](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/internet_ip/) | 🔍 | Internet IP scanner | | |
| `INTRSPD` | [internet_speedtest](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/internet_speedtest/) | ♻ | Internet speed test | | |
| `IPNEIGH` | [ipneigh](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/ipneigh/) | 🔍 | Scan ARP (IPv4) and NDP (IPv6) tables | | |
| `KEALSS` | [kea_api](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/kea_api/) | 📥/🆎 | Pull lease data from the Kea DHCP API | | |
| `LUCIRPC` | [luci_import](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/luci_import/) | 📥 | Import connected devices from OpenWRT | | |
| `MAINT` | [maintenance](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/maintenance/) | ⚙ | Maintenance of logs, etc. | | |
| `MQTT` | [_publisher_mqtt](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_mqtt/) | ▶️ | MQTT for syncing to Home Assistant | | |
| `MTSCAN` | [mikrotik_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/mikrotik_scan/) | 🔍 | Mikrotik device import & sync | | |
| `NBTSCAN` | [nbtscan_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nbtscan_scan/) | 🆎 | Nbtscan (NetBIOS-based) name resolution | | |
| `NEWDEV` | [newdev_template](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/newdev_template/) | ⚙ | New device template | | Yes |
| `NMAP` | [nmap_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan/) | ♻ | Nmap port scanning & discovery | | |
| `NMAPDEV` | [nmap_dev_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_dev_scan/) | 🔍 | Nmap dev scan on current network | | |
| `NSLOOKUP` | [nslookup_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nslookup_scan/) | 🆎 | NSLookup (DNS-based) name resolution | | |
| `NTFPRCS` | [notification_processing](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/notification_processing/) | ⚙ | Notification processing | | Yes |
| `NTFY` | [_publisher_ntfy](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_ntfy/) | ▶️ | NTFY notifications | | |
| `OMDSDN` | [omada_sdn_imp](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/omada_sdn_imp/) | 📥/🆎 ❌ | UNMAINTAINED use `OMDSDNOPENAPI` | 🖧 🔄 | |
| `OMDSDNOPENAPI` | [omada_sdn_openapi](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/omada_sdn_openapi/) | 📥/🆎 | OMADA TP-Link import via OpenAPI | 🖧 | |
| `PIHOLE` | [pihole_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/pihole_scan/) | 🆎/📥 | Pi-hole device import & sync | | |
| `PIHOLEAPI` | [pihole_api_scan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/pihole_api_scan/) | 🆎/📥 | Pi-hole device import & sync via API v6+ | | |
| `PUSHSAFER` | [_publisher_pushsafer](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_pushsafer/) | ▶️ | Pushsafer notifications | | |
| `PUSHOVER` | [_publisher_pushover](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_pushover/) | ▶️ | Pushover notifications | | |
| `RSTIMPRT` | [rest_import](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/rest_import/) | 📥/🆎 | Import via a REST API endpoint | 🖧 | |
| `SETPWD` | [set_password](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password/) | ⚙ | Set password | | Yes |
| `SMTP` | [_publisher_email](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_email/) | ▶️ | Email notifications | | |
| `SNMPDSC` | [snmp_discovery](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/snmp_discovery/) | 🔍/📥 | SNMP device import & sync | | |
| `SYNC` | [sync](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/sync/) | ⚙/📥 | Sync & import from NetAlertX instances | 🖧 🔄 | Yes |
| `TELEGRAM` | [_publisher_telegram](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_telegram/) | ▶️ | Telegram notifications | | |
| `UI` | [ui_settings](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/ui_settings/) | ♻ | UI specific settings | | Yes |
| `UNFIMP` | [unifi_import](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/unifi_import/) | 📥/🆎 | UniFi device import & sync | 🖧 | |
| `UNIFIAPI` | [unifi_api_import](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/unifi_api_import/) | 📥/🆎 | UniFi device import (SM API, multi-site) | | |
| `VNDRPDT` | [vendor_update](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/vendor_update/) | ⚙ | Vendor database update | | |
| `WEBHOOK` | [_publisher_webhook](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/_publisher_webhook/) | ▶️ | Webhook notifications | | |
| `WEBMON` | [website_monitor](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/website_monitor/) | ♻ | Website down monitoring | | |
| `WOL` | [wake_on_lan](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/wake_on_lan/) | ♻ | Automatic wake-on-lan | | |
| `APPRISE` | [_publisher_apprise](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_apprise/) | ▶️ | Apprise notification proxy | | |
| `ARPSCAN` | [arp_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/arp_scan/) | 🔍 | ARP-scan on current network | | |
| `AVAHISCAN` | [avahi_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/avahi_scan/) | 🆎 | Avahi (mDNS-based) name resolution | | |
| `ASUSWRT` | [asuswrt_import](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/asuswrt_import/) | 📥 | Import connected devices from AsusWRT | | |
| `CSVBCKP` | [csv_backup](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/csv_backup/) | ⚙ | CSV devices backup | | |
| `CUSTPROP` | [custom_props](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/custom_props/) | ⚙ | Managing custom device properties values | | Yes |
| `DBCLNP` | [db_cleanup](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/db_cleanup/) | ⚙ | Database cleanup | | Yes\* |
| `DDNS` | [ddns_update](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/ddns_update/) | ⚙ | DDNS update | | |
| `DHCPLSS` | [dhcp_leases](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/dhcp_leases/) | 📥/🆎 | Import devices from DHCP leases | | |
| `DHCPSRVS` | [dhcp_servers](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/dhcp_servers/) | ♻ | DHCP servers | | |
| `DIGSCAN` | [dig_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/dig_scan/) | 🆎 | Dig (DNS) Name resolution | | |
| `FREEBOX` | [freebox](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/freebox/) |📥/♻/🆎 | Pull data and names from Freebox/Iliadbox | | |
| `FRITZBOX` | [fritzbox](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/fritzbox/) | 📥 | Fritz!Box device scanner via TR-064 | | |
| `ICMP` | [icmp_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/icmp_scan/) | ♻ | ICMP (ping) status checker | | |
| `INTRNT` | [internet_ip](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/internet_ip/) | 🔍 | Internet IP scanner | | |
| `INTRSPD` | [internet_speedtest](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/internet_speedtest/) | ♻ | Internet speed test | | |
| `IPNEIGH` | [ipneigh](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/ipneigh/) | 🔍 | Scan ARP (IPv4) and NDP (IPv6) tables | | |
| `KEALSS` | [kea_api](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/kea_api/) | 📥/🆎 | Pull lease data from the Kea DHCP API | | |
| `LUCIRPC` | [luci_import](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/luci_import/) | 📥 | Import connected devices from OpenWRT | | |
| `MAINT` | [maintenance](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/maintenance/) | ⚙ | Maintenance of logs, etc. | | |
| `MQTT` | [_publisher_mqtt](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_mqtt/) | ▶️ | MQTT for syncing to Home Assistant | | |
| `MTSCAN` | [mikrotik_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/mikrotik_scan/) | 🔍 | Mikrotik device import & sync | | |
| `NBTSCAN` | [nbtscan_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nbtscan_scan/) | 🆎 | Nbtscan (NetBIOS-based) name resolution | | |
| `NEWDEV` | [newdev_template](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/newdev_template/) | ⚙ | New device template | | Yes |
| `NMAP` | [nmap_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan/) | ♻ | Nmap port scanning & discovery | | |
| `NMAPDEV` | [nmap_dev_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_dev_scan/) | 🔍 | Nmap dev scan on current network | | |
| `NSLOOKUP` | [nslookup_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nslookup_scan/) | 🆎 | NSLookup (DNS-based) name resolution | | |
| `NTFPRCS` | [notification_processing](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/notification_processing/) | ⚙ | Notification processing | | Yes |
| `NTFY` | [_publisher_ntfy](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_ntfy/) | ▶️ | NTFY notifications | | |
| `OMDSDN` | [omada_sdn_imp](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/omada_sdn_imp/) | 📥/🆎 ❌ | UNMAINTAINED use `OMDSDNOPENAPI` | 🖧 🔄 | |
| `OMDSDNOPENAPI` | [omada_sdn_openapi](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/omada_sdn_openapi/) | 📥/🆎 | OMADA TP-Link import via OpenAPI | 🖧 | |
| `PIHOLE` | [pihole_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/pihole_scan/) | 🆎/📥 | Pi-hole device import & sync | | |
| `PIHOLEAPI` | [pihole_api_scan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/pihole_api_scan/) | 🆎/📥 | Pi-hole device import & sync via API v6+ | | |
| `PUSHSAFER` | [_publisher_pushsafer](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_pushsafer/) | ▶️ | Pushsafer notifications | | |
| `PUSHOVER` | [_publisher_pushover](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_pushover/) | ▶️ | Pushover notifications | | |
| `RSTIMPRT` | [rest_import](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/rest_import/) | 📥/🆎 | Import via a REST API endpoint | 🖧 | |
| `SETPWD` | [set_password](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password/) | ⚙ | Set password | | Yes |
| `SMTP` | [_publisher_email](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_email/) | ▶️ | Email notifications | | |
| `SNMPDSC` | [snmp_discovery](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/snmp_discovery/) | 🔍/📥 | SNMP device import & sync | | |
| `SYNC` | [sync](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/sync/) | ⚙/📥 | Sync & import from NetAlertX instances | 🖧 🔄 | Yes |
| `TELEGRAM` | [_publisher_telegram](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_telegram/) | ▶️ | Telegram notifications | | |
| `UI` | [ui_settings](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/ui_settings/) | ♻ | UI specific settings | | Yes |
| `UNFIMP` | [unifi_import](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/unifi_import/) | 📥/🆎 | UniFi device import & sync | 🖧 | |
| `UNIFIAPI` | [unifi_api_import](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/unifi_api_import/) | 📥/🆎 | UniFi device import (SM API, multi-site) | | |
| `VNDRPDT` | [vendor_update](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/vendor_update/) | ⚙ | Vendor database update | | |
| `WEBHOOK` | [_publisher_webhook](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/_publisher_webhook/) | ▶️ | Webhook notifications | | |
| `WEBMON` | [website_monitor](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/website_monitor/) | ♻ | Website down monitoring | | |
| `WOL` | [wake_on_lan](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/wake_on_lan/) | ♻ | Automatic wake-on-lan | | |
> \* The database cleanup plugin (`DBCLNP`) is not _required_ but the app will become unusable after a while if not executed.
+7 -7
View File
@@ -34,7 +34,7 @@ NetAlertX comes with a plugin system to feed events from third-party scripts int
### 🐛 Troubleshooting
- **[Debugging Plugins](DEBUG_PLUGINS.md)** - Troubleshoot plugin issues
- **[Plugin Examples](https://github.com/netalertx/NetAlertX/tree/main/front/plugins)** - Study existing plugins as reference implementations
- **[Plugin Examples](https://github.com/netalertx/NetAlertX/tree/main/server/plugins)** - Study existing plugins as reference implementations
### 🎥 Video Tutorial
@@ -96,12 +96,12 @@ See [Quick Start Guide](PLUGINS_DEV_QUICK_START.md) for detailed step-by-step in
## Plugin File Structure
Every plugin lives in its own folder under `/app/front/plugins/`.
Every plugin lives in its own folder under `/app/server/plugins/`.
> **Important:** Folder name must match the `"code_name"` value in `config.json`
```
/app/front/plugins/
/app/server/plugins/
├── __template/ # Copy this as a starting point
│ ├── config.json # Plugin manifest (configuration)
│ ├── script.py # Your plugin logic (optional, depends on data_source)
@@ -146,7 +146,7 @@ The `config.json` file is the **plugin manifest** - it tells NetAlertX everythin
{
"function": "CMD",
"type": {"dataType": "string", "elements": [{"elementType": "input", "elementOptions": [], "transformers": []}]},
"default_value": "python3 /app/front/plugins/my_plugin/script.py",
"default_value": "python3 /app/server/plugins/my_plugin/script.py",
"localized": ["name"],
"name": [{"language_code": "en_us", "string": "Command"}]
}
@@ -347,10 +347,10 @@ See: [UI Components](PLUGINS_DEV_UI_COMPONENTS.md)
## Tools & References
- **Template Plugin:** `/app/front/plugins/__template/` - Start here!
- **Helper Library:** `/app/front/plugins/plugin_helper.py` - Use for output formatting
- **Template Plugin:** `/app/server/plugins/__template/` - Start here!
- **Helper Library:** `/app/server/plugins/plugin_helper.py` - Use for output formatting
- **Settings Helper:** `/app/server/helper.py` - Use `get_setting_value()` in scripts
- **Example Plugins:** `/app/front/plugins/*/` - Study working implementations
- **Example Plugins:** `/app/server/plugins/*/` - Study working implementations
- **Logs:** `/tmp/log/plugins/` - Plugin output and execution logs
- **Backend Logs:** `/tmp/log/app.log` - Core system logs
+4 -4
View File
@@ -40,7 +40,7 @@ Execute any Linux command or Python script and capture its output.
{
"function": "CMD",
"type": {"dataType": "string", "elements": [{"elementType": "input", "elementOptions": [], "transformers": []}]},
"default_value": "python3 /app/front/plugins/my_plugin/script.py",
"default_value": "python3 /app/server/plugins/my_plugin/script.py",
"localized": ["name"],
"name": [{"language_code": "en_us", "string": "Command"}]
}
@@ -51,7 +51,7 @@ Execute any Linux command or Python script and capture its output.
```json
{
"function": "CMD",
"default_value": "bash /app/front/plugins/my_plugin/script.sh",
"default_value": "bash /app/server/plugins/my_plugin/script.sh",
"localized": ["name"],
"name": [{"language_code": "en_us", "string": "Command"}]
}
@@ -59,7 +59,7 @@ Execute any Linux command or Python script and capture its output.
### Best Practices
- **Always use absolute paths** (e.g., `/app/front/plugins/...`)
- **Always use absolute paths** (e.g., `/app/server/plugins/...`)
- **Use `plugin_helper.py`** for output formatting
- **Add timeouts** via `RUN_TIMEOUT` setting (default: 60s)
- **Log errors** to `/tmp/log/plugins/<PREFIX>.log`
@@ -344,7 +344,7 @@ Control plugin execution priority. Higher priority plugins run first.
```bash
# Run script manually
python3 /app/front/plugins/my_plugin/script.py
python3 /app/server/plugins/my_plugin/script.py
# Check result file
cat /tmp/log/plugins/last_result.MYPREFIX.log
+1 -1
View File
@@ -18,7 +18,7 @@ Plugins communicate with NetAlertX by writing results to a **pipe-delimited log
## Using `plugin_helper.py`
The easiest way to ensure correct output is to use the [`plugin_helper.py`](../front/plugins/plugin_helper.py) library:
The easiest way to ensure correct output is to use the [`plugin_helper.py`](../server/plugins/plugin_helper.py) library:
```python
from plugin_helper import Plugin_Objects
+5 -5
View File
@@ -14,7 +14,7 @@ Get a working plugin up and running in 5 minutes.
Start from the template to get the basic structure:
```bash
cd /workspaces/NetAlertX/front/plugins
cd /workspaces/NetAlertX/server/plugins
cp -r __template my_plugin
cd my_plugin
```
@@ -104,7 +104,7 @@ Edit the `RUN` and `CMD` settings in `config.json`:
{
"function": "CMD",
"type": {"dataType":"string", "elements": [{"elementType": "input", "elementOptions": [], "transformers": []}]},
"default_value": "python3 /app/front/plugins/my_plugin/script.py",
"default_value": "python3 /app/server/plugins/my_plugin/script.py",
"localized": ["name", "description"],
"name": [{"language_code":"en_us", "string": "Command"}],
"description": [{"language_code":"en_us", "string": "Command to execute"}]
@@ -117,7 +117,7 @@ Edit the `RUN` and `CMD` settings in `config.json`:
```bash
# Test the script directly
python3 /workspaces/NetAlertX/front/plugins/my_plugin/script.py
python3 /workspaces/NetAlertX/server/plugins/my_plugin/script.py
# Check the results
cat /tmp/log/plugins/last_result.MYPLN.log
@@ -160,10 +160,10 @@ Now that you have a working basic plugin:
| Issue | Solution |
|-------|----------|
| "Module not found" errors | Ensure `sys.path` includes `/app/server` and `/app/front/plugins` |
| "Module not found" errors | Ensure `sys.path` includes `/app/server` and `/app/server/plugins` |
| Settings not appearing | Restart backend and clear browser cache |
| Results not showing up | Check `/tmp/log/plugins/*.log` and `/tmp/log/app.log` for errors |
| Permission denied | Plugin runs in container, use absolute paths like `/app/front/plugins/...` |
| Permission denied | Plugin runs in container, use absolute paths like `/app/server/plugins/...` |
## Resources
+2 -2
View File
@@ -316,7 +316,7 @@ Update your `CMD` setting:
```json
{
"function": "CMD",
"default_value": "python3 /app/front/plugins/my_plugin/script.py --url={api_url} --timeout={timeout}"
"default_value": "python3 /app/server/plugins/my_plugin/script.py --url={api_url} --timeout={timeout}"
}
```
@@ -408,7 +408,7 @@ Settings and UI text support multiple languages. Define translations in the `nam
{
"function": "CMD",
"type": {"dataType": "string", "elements": [{"elementType": "input", "elementOptions": [], "transformers": []}]},
"default_value": "python3 /app/front/plugins/website_monitor/script.py urls={urls}",
"default_value": "python3 /app/server/plugins/website_monitor/script.py urls={urls}",
"localized": ["name", "description"],
"name": [{"language_code": "en_us", "string": "Command"}],
"description": [{"language_code": "en_us", "string": "Command to execute"}]
+4 -4
View File
@@ -58,14 +58,14 @@ Using supplementing plugins that employ alternate discovery methods is one of th
### Workaround: Multiple NetAlertX Instances if you have servers in all networks
If you have servers in different networks, you can set up separate NetAlertX instances on those subnets and synchronize the results into one instance using the [`SYNC` plugin](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/sync).
If you have servers in different networks, you can set up separate NetAlertX instances on those subnets and synchronize the results into one instance using the [`SYNC` plugin](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/sync).
> [!TIP]
> The [`SYNC_BEHAVIOR`](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/sync/README.md#hub-device-write-behavior-sync_behavior) setting controls how the hub handles newly discovered devices from nodes - whether it inherits node config, overwrites on every sync, or applies its own `NEWDEV` defaults.
> The [`SYNC_BEHAVIOR`](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/sync/README.md#hub-device-write-behavior-sync_behavior) setting controls how the hub handles newly discovered devices from nodes - whether it inherits node config, overwrites on every sync, or applies its own `NEWDEV` defaults.
### Workaround: Manual Entry for devices you can `ping`
If you don't need to discover new devices in unreachable networks, and only need to report on their status (`online`, `offline`, `down`), you can manually enter devices, with their actual IP address, and check their status using the [`ICMP` plugin](https://github.com/netalertx/NetAlertX/blob/main/front/plugins/icmp_scan/), which uses the `ping` command internally.
If you don't need to discover new devices in unreachable networks, and only need to report on their status (`online`, `offline`, `down`), you can manually enter devices, with their actual IP address, and check their status using the [`ICMP` plugin](https://github.com/netalertx/NetAlertX/blob/main/server/plugins/icmp_scan/), which uses the `ping` command internally.
> [!TIP]
> For more information on how to add devices manually (or dummy devices), refer to the [Device Management](./DEVICE_MANAGEMENT.md) documentation.
@@ -78,4 +78,4 @@ Scanning remote networks with NMAP is possible (via the `NMAPDEV` plugin), but s
Because the generated MAC address is derived from the IP address, changing the IP can cause the device to appear as a new device or create duplicate records. If this setting is disabled, devices with a missing MAC addresses will be skipped.
Check the [NMAPDEV plugin](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_dev_scan) for details.
Check the [NMAPDEV plugin](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_dev_scan) for details.
+1 -1
View File
@@ -3,7 +3,7 @@
This guide shows you how to configure **OPNsense/Dnsmasq** in the **RSTIMPRT** plugin.
> [!NOTE]
> See the [detailed documentation for the REST import plugin](https://github.com/netalertx/NetAlertX/tree/main/front/plugins/rest_import/) for additional details.
> See the [detailed documentation for the REST import plugin](https://github.com/netalertx/NetAlertX/tree/main/server/plugins/rest_import/) for additional details.
## 1. Create an OPNsense user
1. In OPNsense, navigate to **System****Access****Users**
+1 -1
View File
@@ -7,7 +7,7 @@
// 3. NUMERIC_DEFAULTS — add fieldName if its default value is 0 not ""
// 4. GRAPHQL_EXTRA_FIELDS — add fieldName ONLY if it is NOT a display column
// (i.e. fetched for logic but not shown in table)
// 5. front/plugins/ui_settings/config.json options[]
// 5. server/plugins/ui_settings/config.json options[]
// 6. front/php/templates/language/en_us.json Device_TableHead_X
// then run merge_translations.py for other languages
// 7. Backend: DB view + GraphQL type
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Seleccioneu el dispositiu de xarxa al qual aquest dispositiu està connectat, per poder omplir l'arbre de xarxa.",
"DevDetail_Network_Port_hover": "El port on el dispositiu està connectat al dispositiu de xarxa del pare. Si es deixa buit, sortirà una icona wifi a la representació de la Xarxa.",
"DevDetail_Nmap_Scans": "Escaneig manual Nmap",
"DevDetail_Nmap_Scans_desc": "Aquí podeu executar les exploracions NMAP manuals. També podeu programar les exploracions NMAP automàtiques a través del connector Serveis i Ports (NMAP). Ves a <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target='_blank'>Docs</a> per saber-ne més",
"DevDetail_Nmap_Scans_desc": "Aquí podeu executar les exploracions NMAP manuals. També podeu programar les exploracions NMAP automàtiques a través del connector Serveis i Ports (NMAP). Ves a <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target='_blank'>Docs</a> per saber-ne més",
"DevDetail_Nmap_buttonDefault": "Escaneig predeterminat",
"DevDetail_Nmap_buttonDefault_text": "Escaneig predeterminat: Nmap escaneja els 1000 ports superiors per a cada protocol d'exploració sol·licitat. El 93% dels ports TCP i el 49% dels ports UDP. (uns 5 segons)",
"DevDetail_Nmap_buttonDetail": "Escaneig Detallat",
@@ -393,7 +393,7 @@
"Loading": "Carregant…",
"Login_Box": "Introduïu la vostra contrasenya",
"Login_Default_PWD": "Contrasenya per defecte \"123456\" encara és activa.",
"Login_Info": "Les contrasenyes es canvien al connector(plugin) Configurar Contrasenya. Comprova el <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">SETPWD docs</a> si tens dubtes fent logging.",
"Login_Info": "Les contrasenyes es canvien al connector(plugin) Configurar Contrasenya. Comprova el <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">SETPWD docs</a> si tens dubtes fent logging.",
"Login_Psw-box": "Contrasenya",
"Login_Psw_alert": "Alerta de contrasenya!",
"Login_Psw_folder": "a la carpeta config.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Aby bylo možné sestavit Síťový strom, vyberte nadřazené síťové zařízení, ke kterému je toto zařízení připojeno.",
"DevDetail_Network_Port_hover": "Port nadřazeného síťového zařízení, ke kterému je toto zařízení připojeno. Pokud nevyplněno, v Síťovém stromu se u zařízení zobrazí ikona WiFi.",
"DevDetail_Nmap_Scans": "Ruční NMAP skeny",
"DevDetail_Nmap_Scans_desc": "Zde je možné ručně spouštět NMAP skeny. Je také možné naplánovat pravidelné automatické a to přes modul „Služby a porty (NMAP)“. Více zjistíte v <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">dokumentaci</a>",
"DevDetail_Nmap_Scans_desc": "Zde je možné ručně spouštět NMAP skeny. Je také možné naplánovat pravidelné automatické a to přes modul „Služby a porty (NMAP)“. Více zjistíte v <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">dokumentaci</a>",
"DevDetail_Nmap_buttonDefault": "Výchozí sken",
"DevDetail_Nmap_buttonDefault_text": "Výchozí sken: NAMP skenuje nej 1000 portů pro každý požadovaný protokol. Toto pokrývá 93 % TCP a 49 % UDP portů. (přibližně 5 sekund)",
"DevDetail_Nmap_buttonDetail": "Podrobný sken",
@@ -393,7 +393,7 @@
"Loading": "Načítání…",
"Login_Box": "Zadejte své heslo",
"Login_Default_PWD": "Výchozí heslo „123456“ jste stále ještě nezměnili.",
"Login_Info": "Hesla jsou nastavována přes zásuvný modul Nastavit heslo. Pokud máte potíže s přihlášením, podívejte se <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">dokumentaci k SETPWD</a>.",
"Login_Info": "Hesla jsou nastavována přes zásuvný modul Nastavit heslo. Pokud máte potíže s přihlášením, podívejte se <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">dokumentaci k SETPWD</a>.",
"Login_Psw-box": "Heslo",
"Login_Psw_alert": "Upozornění na heslo!",
"Login_Psw_folder": "ve složce s nastaveními.",
+2 -2
View File
@@ -119,7 +119,7 @@
"DevDetail_Network_Node_hover": "Wählen Sie das Elternnetzgerät aus, an das das aktuelle Gerät angeschlossen ist, um den Netzwerkbaum zu erstellen.",
"DevDetail_Network_Port_hover": "Der Port, mit dem dieses Gerät am übergeordneten Netzwerkgerät verbunden ist. Bleibt er leer, wird ein WLAN-Symbol in der Netzwerkstruktur angezeigt.",
"DevDetail_Nmap_Scans": "Nmap Scans",
"DevDetail_Nmap_Scans_desc": "Hier kannst du manuelle NMAP Scans starten. Reguläre automatische NMAP Scans können mit dem Services & Ports (NMAP) Plugin geplant werden. Gehe zu den <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Docs</a> um mehr erfahren",
"DevDetail_Nmap_Scans_desc": "Hier kannst du manuelle NMAP Scans starten. Reguläre automatische NMAP Scans können mit dem Services & Ports (NMAP) Plugin geplant werden. Gehe zu den <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Docs</a> um mehr erfahren",
"DevDetail_Nmap_buttonDefault": "Standard Scan",
"DevDetail_Nmap_buttonDefault_text": "Standard Scan: Nmap scannt die ersten 1.000 Ports für jedes angeforderte Scan-Protokoll. Damit werden etwa 93 % der TCP-Ports und 49 % der UDP-Ports erfasst. (ca. 5-10 Sekunden)",
"DevDetail_Nmap_buttonDetail": "Detailierter Scan",
@@ -397,7 +397,7 @@
"Loading": "Laden …",
"Login_Box": "Passwort eingeben",
"Login_Default_PWD": "Standardpasswort \"123456\" noch immer aktiv.",
"Login_Info": "Passwörter werden über das Set Password Plugin gesetzt. Siehe <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">SETPWD docs</a>, falls Sie Probleme mit dem Log In haben.",
"Login_Info": "Passwörter werden über das Set Password Plugin gesetzt. Siehe <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">SETPWD docs</a>, falls Sie Probleme mit dem Log In haben.",
"Login_Psw-box": "Passwort",
"Login_Psw_alert": "Sicherheitshinweis!",
"Login_Psw_folder": "im Konfigurationsordner.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Select the parent network device the current device is connected to, to populate the Network tree.",
"DevDetail_Network_Port_hover": "The port this device is connected to on the parent network device. If left empty a wifi icon is displayed in the Network tree.",
"DevDetail_Nmap_Scans": "Manual Nmap Scans",
"DevDetail_Nmap_Scans_desc": "Here you can execute manual NMAP scans. You can also schedule regular automatic NMAP scans via the Services & Ports (NMAP) plugin. Head to <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Docs</a> to find out more",
"DevDetail_Nmap_Scans_desc": "Here you can execute manual NMAP scans. You can also schedule regular automatic NMAP scans via the Services & Ports (NMAP) plugin. Head to <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Docs</a> to find out more",
"DevDetail_Nmap_buttonDefault": "Default Scan",
"DevDetail_Nmap_buttonDefault_text": "Default Scan: Nmap scans the top 1,000 ports for each scan protocol requested. This catches roughly 93% of the TCP ports and 49% of the UDP ports. (about 5 seconds)",
"DevDetail_Nmap_buttonDetail": "Detailed Scan",
@@ -393,7 +393,7 @@
"Loading": "Loading…",
"Login_Box": "Enter your password",
"Login_Default_PWD": "Default password \"123456\" is still active.",
"Login_Info": "Passwords are set via the Set Password plugin. Check the <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">SETPWD docs</a> if you have issues logging in.",
"Login_Info": "Passwords are set via the Set Password plugin. Check the <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">SETPWD docs</a> if you have issues logging in.",
"Login_Psw-box": "Password",
"Login_Psw_alert": "Password Alert!",
"Login_Psw_folder": "in the config folder.",
+2 -2
View File
@@ -117,7 +117,7 @@
"DevDetail_Network_Node_hover": "Seleccione el dispositivo de red principal al que está conectado el dispositivo actual para completar el árbol de Red.",
"DevDetail_Network_Port_hover": "El puerto al que está conectado este dispositivo en el dispositivo de red principal. Si se deja vacío, se muestra un icono de wifi en el árbol de Red.",
"DevDetail_Nmap_Scans": "Escaneos de Nmap",
"DevDetail_Nmap_Scans_desc": "Aquí puede ejecutar escaneos NMAP manuales. También puede programar escaneos NMAP automáticos regulares a través del complemento Servicios y puertos (NMAP). Dirígete a <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Documentación</a> para obtener más información",
"DevDetail_Nmap_Scans_desc": "Aquí puede ejecutar escaneos NMAP manuales. También puede programar escaneos NMAP automáticos regulares a través del complemento Servicios y puertos (NMAP). Dirígete a <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Documentación</a> para obtener más información",
"DevDetail_Nmap_buttonDefault": "Escaneado predeterminado",
"DevDetail_Nmap_buttonDefault_text": "Escaneo predeterminado: NMAP escanea los 1,000 puertos principales para cada protocolo de escaneo solicitado. Esto atrapa aproximadamente el 93% de los puertos TCP y el 49% de los puertos UDP. (aproximadamente 5 segundos)",
"DevDetail_Nmap_buttonDetail": "Escaneo detallado",
@@ -395,7 +395,7 @@
"Loading": "Cargando…",
"Login_Box": "Ingrese su contraseña",
"Login_Default_PWD": "La contraseña por defecto \"123456\" sigue activa.",
"Login_Info": "Las contraseñas se establecen a través del plugin Establecer contraseña. Compruebe la <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">documentación SETPWD</a> si tiene problemas para iniciar sesión.",
"Login_Info": "Las contraseñas se establecen a través del plugin Establecer contraseña. Compruebe la <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">documentación SETPWD</a> si tiene problemas para iniciar sesión.",
"Login_Psw-box": "Contraseña",
"Login_Psw_alert": "¡Alerta de Contraseña!",
"Login_Psw_folder": "en la carpeta config.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Sélectionner l'appareil du réseau principal auquel cet appareil est connecté afin de compléter l'arborescence du Réseau.",
"DevDetail_Network_Port_hover": "Le port auquel cet appareil est connecté sur l'appareil du réseau principal. Si vide, une icône Wifi est affichée dans l'arborescence du Réseau.",
"DevDetail_Nmap_Scans": "Scans manuels via Nmap",
"DevDetail_Nmap_Scans_desc": "Vous pouvez lancer des scans NMAP manuels. Vous pouvez aussi programmer des sans réguliers via le plugin Services & Ports (NMAP). Aller dans les <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Docs</a> pour plus de details",
"DevDetail_Nmap_Scans_desc": "Vous pouvez lancer des scans NMAP manuels. Vous pouvez aussi programmer des sans réguliers via le plugin Services & Ports (NMAP). Aller dans les <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Docs</a> pour plus de details",
"DevDetail_Nmap_buttonDefault": "Scan par défaut",
"DevDetail_Nmap_buttonDefault_text": "Scan par défaut : NMAP scanne les 1 000 premiers ports pour chaque demande de scan de protocole. Cela couvre environ 93% des ports TCP et 49% des ports UDP (environ 5 secondes)",
"DevDetail_Nmap_buttonDetail": "Scan détaillé",
@@ -393,7 +393,7 @@
"Loading": "Chargement…",
"Login_Box": "Saisir votre mot de passe",
"Login_Default_PWD": "Le mot de passe par défaut \"123456\" est encore actif.",
"Login_Info": "Les mots de passe sont définis via le plugin Set Password. Vérifiez la <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">documentation de SETPWD</a> si vous rencontrez des difficultés à vous identifier.",
"Login_Info": "Les mots de passe sont définis via le plugin Set Password. Vérifiez la <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">documentation de SETPWD</a> si vous rencontrez des difficultés à vous identifier.",
"Login_Psw-box": "Mot de passe",
"Login_Psw_alert": "Alerte de mot de passe!",
"Login_Psw_folder": "dans le dossier de configuration.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Seleziona il dispositivo di rete principale a cui è connesso il dispositivo corrente per popolare la struttura di rete.",
"DevDetail_Network_Port_hover": "La porta a cui è connesso questo dispositivo sul dispositivo di rete principale. Se lasciato vuoto, verrà visualizzata un'icona Wi-Fi nella struttura di rete.",
"DevDetail_Nmap_Scans": "Scansioni Nmap manuali",
"DevDetail_Nmap_Scans_desc": "Qui puoi eseguire scansioni manuali NMAP. Puoi anche pianificare scansioni automatiche NMAP attraverso il plugin Servizi e porte (NMAP). Vai alla <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Documentazione</a> per saperne di più",
"DevDetail_Nmap_Scans_desc": "Qui puoi eseguire scansioni manuali NMAP. Puoi anche pianificare scansioni automatiche NMAP attraverso il plugin Servizi e porte (NMAP). Vai alla <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Documentazione</a> per saperne di più",
"DevDetail_Nmap_buttonDefault": "Scansione predefinita",
"DevDetail_Nmap_buttonDefault_text": "Scansione predefinita: Nmap scansiona 1000 porte per ogni protocollo richiesto. Questo dovrebbe coprire circa il 93% delle porte TCP e il 49% delle porte UDP (circa 5 secondi)",
"DevDetail_Nmap_buttonDetail": "Scansione dettagliata",
@@ -393,7 +393,7 @@
"Loading": "Caricamento…",
"Login_Box": "Inserisci la tua password",
"Login_Default_PWD": "La password predefinita \"123456\" è ancora attiva.",
"Login_Info": "Le password vengono impostate tramite il plugin Set Password. Controlla la <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">documentazione SETPWD</a> se riscontri problemi di accesso.",
"Login_Info": "Le password vengono impostate tramite il plugin Set Password. Controlla la <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">documentazione SETPWD</a> se riscontri problemi di accesso.",
"Login_Psw-box": "Password",
"Login_Psw_alert": "Avviso password!",
"Login_Psw_folder": "nella cartella di configurazione.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "現在のデバイスが接続されている上位のネットワーク機器を選択し、ネットワークツリーを構築します。",
"DevDetail_Network_Port_hover": "上位のネットワーク機器上で本デバイスが接続されているポート。空欄のままにすると、ネットワークツリーにWi-Fiアイコンが表示されます。",
"DevDetail_Nmap_Scans": "手動Nmapスキャン",
"DevDetail_Nmap_Scans_desc": "ここでは手動のNMAPスキャンを実行できます。また、サービスとポート(NMAP)プラグインを通じて定期的な自動NMAPスキャンをスケジュールすることも可能です。詳細は<a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">ドキュメント</a>をご覧ください",
"DevDetail_Nmap_Scans_desc": "ここでは手動のNMAPスキャンを実行できます。また、サービスとポート(NMAP)プラグインを通じて定期的な自動NMAPスキャンをスケジュールすることも可能です。詳細は<a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">ドキュメント</a>をご覧ください",
"DevDetail_Nmap_buttonDefault": "デフォルトスキャン",
"DevDetail_Nmap_buttonDefault_text": "デフォルトスキャン: Nmapは、要求された各スキャンプロトコルに対して上位1,000ポートをスキャンします。これにより、TCPポートの約93%、UDPポートの約49%を捕捉します。(約5秒)",
"DevDetail_Nmap_buttonDetail": "詳細スキャン",
@@ -393,7 +393,7 @@
"Loading": "読み込み中…",
"Login_Box": "パスワードを入力してください",
"Login_Default_PWD": "デフォルトパスワード「123456」は有効なままです。",
"Login_Info": "パスワードはSet Passwordプラグインで設定されます。ログインに問題がある場合は <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">SETPWDのドキュメント</a> を確認してください。",
"Login_Info": "パスワードはSet Passwordプラグインで設定されます。ログインに問題がある場合は <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">SETPWDのドキュメント</a> を確認してください。",
"Login_Psw-box": "パスワード",
"Login_Psw_alert": "パスワードアラート!",
"Login_Psw_folder": "config フォルダ内。",
+1 -1
View File
@@ -393,7 +393,7 @@
"Loading": "Ładowanie…",
"Login_Box": "Wprowadź swoje hasło",
"Login_Default_PWD": "Domyślne hasło „123456” nadal jest aktywne.",
"Login_Info": "Hasła są ustawiane za pomocą wtyczki Set Password. Jeśli masz problemy z logowaniem, sprawdź <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">dokumentację SETPWD</a>.",
"Login_Info": "Hasła są ustawiane za pomocą wtyczki Set Password. Jeśli masz problemy z logowaniem, sprawdź <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">dokumentację SETPWD</a>.",
"Login_Psw-box": "Hasło",
"Login_Psw_alert": "Alert hasła!",
"Login_Psw_folder": "w folderze konfiguracyjnym.",
+1 -1
View File
@@ -393,7 +393,7 @@
"Loading": "Carregando...",
"Login_Box": "Introduza a sua palavra-passe",
"Login_Default_PWD": "A palavra-passe predefinida “123456” ainda está ativa.",
"Login_Info": "As palavra-passes são definidas por meio do plugin Definir palavra-passe. Verifique a <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">documentação do SETPWD</a> se tiver problemas para fazer login.",
"Login_Info": "As palavra-passes são definidas por meio do plugin Definir palavra-passe. Verifique a <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">documentação do SETPWD</a> se tiver problemas para fazer login.",
"Login_Psw-box": "Palavra-passe",
"Login_Psw_alert": "Alerta de palavra-passe!",
"Login_Psw_folder": "na pasta de configuração.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Selecione o dispositivo de rede principal ao qual o dispositivo atual está conectado, para preencher a árvore Rede.",
"DevDetail_Network_Port_hover": "A porta a que este dispositivo está ligado no dispositivo de rede principal. Se for deixado vazio, é apresentado um ícone wifi na árvore Rede.",
"DevDetail_Nmap_Scans": "Varreduras manuais do Nmap",
"DevDetail_Nmap_Scans_desc": "Aqui pode executar análises NMAP manuais. Também pode agendar análises NMAP automáticas regulares através do plugin Serviços & Portos (NMAP). Aceda à https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan para saber mais",
"DevDetail_Nmap_Scans_desc": "Aqui pode executar análises NMAP manuais. Também pode agendar análises NMAP automáticas regulares através do plugin Serviços & Portos (NMAP). Aceda à https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan para saber mais",
"DevDetail_Nmap_buttonDefault": "Verificação predefinida",
"DevDetail_Nmap_buttonDefault_text": "Scan padrão: Nmap verifica as 1.000 portas superiores para cada protocolo de digitalização solicitado. Isto atinge cerca de 93% das portas TCP e 49% das portas UDP. (cerca de 5 segundos)",
"DevDetail_Nmap_buttonDetail": "Verificação Detalhada",
@@ -393,7 +393,7 @@
"Loading": "A carregar…",
"Login_Box": "Introduza a sua palavra-passe",
"Login_Default_PWD": "A palavra-passe predefinida “123456” ainda está ativa.",
"Login_Info": "As palavra-passes são definidas por meio do plugin Definir palavra-passe. Verifique a <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">documentação do SETPWD</a> se tiver problemas para fazer login.",
"Login_Info": "As palavra-passes são definidas por meio do plugin Definir palavra-passe. Verifique a <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">documentação do SETPWD</a> se tiver problemas para fazer login.",
"Login_Psw-box": "Palavra-passe",
"Login_Psw_alert": "Alerta de palavra-passe!",
"Login_Psw_folder": "na pasta de configuração.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Выберите родительское сетевое устройство, к которому подключено текущее устройство, чтобы заполнить дерево сети.",
"DevDetail_Network_Port_hover": "Порт, к которому подключено это устройство на родительском сетевом устройстве. Если оставить пустым, в дереве сети отобразится значок Wi-Fi.",
"DevDetail_Nmap_Scans": "Ручные сканеры Nmap",
"DevDetail_Nmap_Scans_desc": "Здесь вы можете выполнить сканирование NMAP вручную. Вы также можете запланировать регулярное автоматическое сканирование NMAP с помощью плагина «Службы и порты» (NMAP). Чтобы узнать больше, перейдите в <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Документацию</a>",
"DevDetail_Nmap_Scans_desc": "Здесь вы можете выполнить сканирование NMAP вручную. Вы также можете запланировать регулярное автоматическое сканирование NMAP с помощью плагина «Службы и порты» (NMAP). Чтобы узнать больше, перейдите в <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Документацию</a>",
"DevDetail_Nmap_buttonDefault": "Сканирование по умолчанию",
"DevDetail_Nmap_buttonDefault_text": "Сканирование по умолчанию: Nmap сканирует 1000 верхних портов для каждого запрошенного протокола сканирования. Это перехватывает примерно 93% портов TCP и 49% портов UDP. (около 5 секунд)",
"DevDetail_Nmap_buttonDetail": "Детальное сканирование",
@@ -393,7 +393,7 @@
"Loading": "Загрузка…",
"Login_Box": "Введите пароль",
"Login_Default_PWD": "Пароль по умолчанию «123456» все еще активен.",
"Login_Info": "Пароли устанавливаются через плагин Set Password. Если у вас возникли проблемы со входом в систему, проверьте <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">SEPWD документацию</a>.",
"Login_Info": "Пароли устанавливаются через плагин Set Password. Если у вас возникли проблемы со входом в систему, проверьте <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">SEPWD документацию</a>.",
"Login_Psw-box": "Пароль",
"Login_Psw_alert": "Предупреждение о пароле!",
"Login_Psw_folder": "в папке конфигурации.",
+1 -1
View File
@@ -393,7 +393,7 @@
"Loading": "Yükleniyor...",
"Login_Box": "Şifrenizi giriniz",
"Login_Default_PWD": "Varsayılan şifre \"123456\" hâlâ aktif.",
"Login_Info": "Parolalar, Set Password eklentisi aracılığıyla ayarlanır. Giriş yapmakta sorun yaşıyorsanız, <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">SETPWD belgelerini</a> kontrol edin.",
"Login_Info": "Parolalar, Set Password eklentisi aracılığıyla ayarlanır. Giriş yapmakta sorun yaşıyorsanız, <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">SETPWD belgelerini</a> kontrol edin.",
"Login_Psw-box": "Şİfre",
"Login_Psw_alert": "Parola Uyarısı!",
"Login_Psw_folder": "Konfigürasyon klasöründe.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "Виберіть батьківський мережевий пристрій, до якого підключено поточний пристрій, щоб заповнити дерево мережі.",
"DevDetail_Network_Port_hover": "Порт, до якого підключено цей пристрій на батьківському мережевому пристрої. Якщо залишити пустим, у дереві мережі відобразиться значок Wi-Fi.",
"DevDetail_Nmap_Scans": "Сканування Nmap вручну",
"DevDetail_Nmap_Scans_desc": "Тут ви можете виконувати ручні сканування NMAP. Ви також можете запланувати регулярні автоматичні сканування NMAP за допомогою плагіна Services & Ports (NMAP). Щоб дізнатися більше, перейдіть до <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Документації</a>",
"DevDetail_Nmap_Scans_desc": "Тут ви можете виконувати ручні сканування NMAP. Ви також можете запланувати регулярні автоматичні сканування NMAP за допомогою плагіна Services & Ports (NMAP). Щоб дізнатися більше, перейдіть до <a href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Документації</a>",
"DevDetail_Nmap_buttonDefault": "Сканування за замовчуванням",
"DevDetail_Nmap_buttonDefault_text": "Сканування за замовчуванням: Nmap сканує 1000 найпопулярніших портів для кожного запитуваного протоколу сканування. Це перехоплює приблизно 93% портів TCP і 49% портів UDP. (приблизно 5 секунд)",
"DevDetail_Nmap_buttonDetail": "Детальне сканування",
@@ -393,7 +393,7 @@
"Loading": "Завантаження…",
"Login_Box": "Введіть свій пароль",
"Login_Default_PWD": "Стандартний пароль \"123456\" все ще активний.",
"Login_Info": "Паролі встановлюються за допомогою плагіна Set Password. Перегляньте <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">документи SETPWD</a>, якщо у вас виникли проблеми з входом.",
"Login_Info": "Паролі встановлюються за допомогою плагіна Set Password. Перегляньте <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">документи SETPWD</a>, якщо у вас виникли проблеми з входом.",
"Login_Psw-box": "Пароль",
"Login_Psw_alert": "Захист пароля!",
"Login_Psw_folder": "в папці config.",
+2 -2
View File
@@ -115,7 +115,7 @@
"DevDetail_Network_Node_hover": "选择当前设备连接到的父网络设备,以填充网络树。",
"DevDetail_Network_Port_hover": "此设备连接到父网络设备上的端口。如果留空,则网络树中会显示一个 wifi 图标。",
"DevDetail_Nmap_Scans": "手动 Nmap 扫描",
"DevDetail_Nmap_Scans_desc": "您可以在此处执行手动 NMAP 扫描。您还可以通过服务和端口 (NMAP) 插件安排定期自动 NMAP 扫描。前往<a href= \"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Docs</a>了解更多信息",
"DevDetail_Nmap_Scans_desc": "您可以在此处执行手动 NMAP 扫描。您还可以通过服务和端口 (NMAP) 插件安排定期自动 NMAP 扫描。前往<a href= \"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/nmap_scan\" target=\"_blank\">Docs</a>了解更多信息",
"DevDetail_Nmap_buttonDefault": "默认扫描",
"DevDetail_Nmap_buttonDefault_text": "默认扫描:Nmap 会扫描请求的每个扫描协议的前 1,000 个端口。这将捕获大约 93% 的 TCP 端口和 49% 的 UDP 端口。(大约 5 秒)",
"DevDetail_Nmap_buttonDetail": "详细扫描",
@@ -393,7 +393,7 @@
"Loading": "加载中…",
"Login_Box": "输入密码",
"Login_Default_PWD": "默认密码“123456”仍然有效。",
"Login_Info": "密码通过 Set Password 插件设置。如果有登录问题,请查看 <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/set_password\">SETPWD 文档</a> 。",
"Login_Info": "密码通过 Set Password 插件设置。如果有登录问题,请查看 <a target=\"_blank\" href=\"https://github.com/netalertx/NetAlertX/tree/main/server/plugins/set_password\">SETPWD 文档</a> 。",
"Login_Psw-box": "密码",
"Login_Psw_alert": "密码警报!",
"Login_Psw_folder": "在配置文件夹中。",
+1 -1
View File
@@ -596,7 +596,7 @@ function createTabContent(pluginObj, assignActive, counts) {
</div>
<div class='plugins-description'>
${getString(`${prefix}_description`)} <!-- Display the plugin description -->
<span><a href="https://github.com/netalertx/NetAlertX/tree/main/front/plugins/${pluginObj.code_name}" target="_blank">${getString('Gen_ReadDocs')}</a></span> <!-- Link to documentation -->
<span><a href="https://github.com/netalertx/NetAlertX/tree/main/server/plugins/${pluginObj.code_name}" target="_blank">${getString('Gen_ReadDocs')}</a></span> <!-- Link to documentation -->
</div>
</div>
`);
+1 -1
View File
@@ -383,7 +383,7 @@ $settingsJSON_DB = json_encode($settings, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX
<div class="table_cell bold">
<i class="fa fa-book fa-sm"></i>
${getString(prefix+'_description')}
<a href="https://github.com/netalertx/NetAlertX/tree/main/front/plugins/${getPluginCodeName(pluginsData, prefix)}" target="_blank">
<a href="https://github.com/netalertx/NetAlertX/tree/main/server/plugins/${getPluginCodeName(pluginsData, prefix)}" target="_blank">
${getString('Gen_ReadDocs')}
</a>
</div>
+1 -1
View File
@@ -9,7 +9,7 @@ db_path = os.path.join(
# Register NetAlertX directories
INSTALL_PATH = os.getenv("NETALERTX_APP", "/app")
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from database import get_temp_db_connection # noqa: E402 [flake8 lint suppression]
+1 -1
View File
@@ -7,7 +7,7 @@ The original pilaert.py code is now moved to this new folder and split into diff
|```__main__.py```| The MAIN program of NetAlertX|
|```__init__.py```| an empty init file|
|```README.md```| this readme file|
|```../front/plugins ```| a folder containing all [plugins](/front/plugins/) that publish notifications or scan for devices|
|```../server/plugins ```| a folder containing all [plugins](/server/plugins/) that publish notifications or scan for devices|
|```api.py```| updating the API endpoints with the relevant data. |
|```appevent.py```| TBC |
|```const.py```| A place to define the constants for NetAlertX like log path or config path.|
+1 -1
View File
@@ -12,7 +12,7 @@ from werkzeug.exceptions import HTTPException
# Register NetAlertX directories
INSTALL_PATH = os.getenv("NETALERTX_APP", "/app")
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from logger import mylog # noqa: E402 [flake8 lint suppression]
from helper import get_setting_value, get_env_setting_value, getBuildTimeStampAndVersion # noqa: E402 [flake8 lint suppression]
+1 -1
View File
@@ -8,7 +8,7 @@ from flask import jsonify
# Register NetAlertX directories
INSTALL_PATH = os.getenv("NETALERTX_APP", "/app")
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from database import get_temp_db_connection # noqa: E402 [flake8 lint suppression]
from logger import mylog # noqa: E402 [flake8 lint suppression]
+1 -1
View File
@@ -6,7 +6,7 @@ from flask import jsonify
# Register NetAlertX directories
INSTALL_PATH = os.getenv("NETALERTX_APP", "/app")
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from database import get_temp_db_connection # noqa: E402 [flake8 lint suppression]
+1 -1
View File
@@ -4,7 +4,7 @@ from flask import jsonify
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from const import logPath # noqa: E402 [flake8 lint suppression]
from logger import mylog, Logger # noqa: E402 [flake8 lint suppression]
+1 -1
View File
@@ -7,7 +7,7 @@ from flask import jsonify
# Register NetAlertX directories
INSTALL_PATH = os.getenv("NETALERTX_APP", "/app")
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from database import get_temp_db_connection # noqa: E402 [flake8 lint suppression]
from helper import get_setting_value, format_ip_long # noqa: E402 [flake8 lint suppression]
+1 -1
View File
@@ -77,7 +77,7 @@ LOG_PATH = _resolve_env_path("NETALERTX_LOG", TMP_PATH / "log")
FRONT_PATH = APP_PATH / "front"
SERVER_PATH = APP_PATH / "server"
BACK_PATH = APP_PATH / "back"
PLUGINS_PATH = FRONT_PATH / "plugins"
PLUGINS_PATH = SERVER_PATH / "plugins"
REPORT_TEMPLATES_PATH = FRONT_PATH / "report_templates"
API_PATH_WITH_TRAILING_SEP = ensure_trailing_sep(API_PATH)
+2
View File
@@ -857,6 +857,8 @@ replacements = {
r"\bSYNC_node_name=\'\'": f"SYNC_node_name='NAX-{str(uuid.uuid4()).split('-')[0]}'",
# Detect SMTP_PASS='anything' BUT not starting with base64:
r"SMTP_PASS='(?!base64:)([^']*)'": r"SMTP_PASS='base64:\1'",
# Migrate plugin paths from /app/front/plugins to /app/server/plugins
r"/app/front/plugins/": "/app/server/plugins/",
}
+1 -1
View File
@@ -5,7 +5,7 @@ import sqlite3
import csv
import uuid
from io import StringIO
from front.plugins.plugin_helper import is_mac, normalize_mac
from server.plugins.plugin_helper import is_mac, normalize_mac
from logger import mylog
from models.plugin_object_instance import PluginObjectInstance
from database import get_temp_db_connection
+2 -2
View File
@@ -397,8 +397,8 @@ def execute_plugin(db, all_plugins, plugin):
set_CMD = set["value"]
# Replace hardcoded /app paths with environment-aware path
if "/app/front/plugins" in set_CMD:
set_CMD = set_CMD.replace("/app/front/plugins", str(pluginsPath))
if "/app/server/plugins" in set_CMD:
set_CMD = set_CMD.replace("/app/server/plugins", str(pluginsPath))
if "/app/" in set_CMD:
set_CMD = set_CMD.replace("/app/", f"{applicationPath}/")
File renamed without changes.
File renamed without changes.
@@ -290,7 +290,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/<plugin folder>/rename_me.py",
"default_value": "python3 /app/server/plugins/<plugin folder>/rename_me.py",
"options": [],
"localized": ["name", "description"],
"name": [
View File
Whitespace-only changes.
@@ -6,7 +6,7 @@ from pytz import timezone
# Define the installation path and extend the system path for plugin imports
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from const import logPath # noqa: E402, E261 [flake8 lint suppression]
from plugin_helper import Plugin_Objects # noqa: E402, E261 [flake8 lint suppression]
@@ -8,7 +8,7 @@ import hashlib
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
# NetAlertX modules
from const import logPath # noqa: E402 [flake8 lint suppression]
@@ -7,7 +7,7 @@ import sys
# Register NetAlertX directories
INSTALL_PATH = os.getenv("NETALERTX_APP", "/app")
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
import conf # noqa: E402 [flake8 lint suppression]
from const import confFileName, logPath # noqa: E402 [flake8 lint suppression]
@@ -326,7 +326,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_apprise/apprise.py",
"default_value": "python3 /app/server/plugins/_publisher_apprise/apprise.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -326,7 +326,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_email/email_smtp.py",
"default_value": "python3 /app/server/plugins/_publisher_email/email_smtp.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -13,7 +13,7 @@ import ssl
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
# NetAlertX modules
import conf # noqa: E402 [flake8 lint suppression]
@@ -332,7 +332,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_mqtt/mqtt.py",
"default_value": "python3 /app/server/plugins/_publisher_mqtt/mqtt.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -14,7 +14,7 @@ from pytz import timezone
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
# NetAlertX modules
import conf # noqa: E402 [flake8 lint suppression]
@@ -280,7 +280,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_ntfy/ntfy.py",
"default_value": "python3 /app/server/plugins/_publisher_ntfy/ntfy.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -8,7 +8,7 @@ from base64 import b64encode
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
import conf # noqa: E402 [flake8 lint suppression]
from const import confFileName, logPath # noqa: E402 [flake8 lint suppression]
@@ -280,7 +280,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_pushover/pushover.py",
"default_value": "python3 /app/server/plugins/_publisher_pushover/pushover.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -10,7 +10,7 @@ import requests
# Register NetAlertX directories
INSTALL_PATH = os.getenv("NETALERTX_APP", "/app")
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from plugin_helper import Plugin_Objects, handleEmpty # noqa: E402 [flake8 lint suppression]
from logger import mylog, Logger # noqa: E402 [flake8 lint suppression]
@@ -280,7 +280,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_pushsafer/pushsafer.py",
"default_value": "python3 /app/server/plugins/_publisher_pushsafer/pushsafer.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -6,7 +6,7 @@ import requests
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
import conf # noqa: E402 [flake8 lint suppression]
from const import confFileName, logPath # noqa: E402 [flake8 lint suppression]
@@ -318,7 +318,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_telegram/tg.py",
"default_value": "python3 /app/server/plugins/_publisher_telegram/tg.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -7,7 +7,7 @@ import json
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
import conf # noqa: E402 [flake8 lint suppression]
from const import confFileName, logPath # noqa: E402 [flake8 lint suppression]
@@ -280,7 +280,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/_publisher_webhook/webhook.py",
"default_value": "python3 /app/server/plugins/_publisher_webhook/webhook.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -9,7 +9,7 @@ import hmac
# Register NetAlertX directories
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
import conf # noqa: E402 [flake8 lint suppression]
@@ -31,7 +31,7 @@ Device types set in NetAlertX (e.g. `Smartphone`, `Laptop`, `NAS`) are automatic
## Installation
1. Copy the `adguard_export/` folder into `/app/front/plugins/` inside your NetAlertX container (or mount it as a volume).
1. Copy the `adguard_export/` folder into `/app/server/plugins/` inside your NetAlertX container (or mount it as a volume).
2. Restart NetAlertX so the plugin is discovered.
3. Open **Settings → Plugins → AdGuard (Device Export)** and configure the settings below.
@@ -95,7 +95,7 @@
}
]
},
"default_value": "python3 /app/front/plugins/adguard_export/script.py",
"default_value": "python3 /app/server/plugins/adguard_export/script.py",
"options": [],
"localized": ["name", "description"],
"name": [
@@ -20,7 +20,7 @@ from typing import Dict, List, Optional, Set, Tuple
# Define the installation path and extend the system path for plugin imports
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from const import dataPath, logPath # noqa: E402, E261
from plugin_helper import Plugin_Objects # noqa: E402, E261
@@ -7,7 +7,7 @@ from pytz import timezone
# Define the installation path and extend the system path for plugin imports
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
sys.path.extend([f"{INSTALL_PATH}/server/plugins", f"{INSTALL_PATH}/server"])
from const import logPath # noqa: E402, E261
from plugin_helper import Plugin_Objects # noqa: E402, E261
Loaded 100 of 251 files, more files were not shown because too many files have changed in this diff. Show more