mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-04-06 02:01:37 -07:00
Compare commits
9 Commits
v25.2.8
...
cd8124a912
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd8124a912 | ||
|
|
7867700856 | ||
|
|
3be39f6508 | ||
|
|
b69b76aa9f | ||
|
|
8b7431eae9 | ||
|
|
079a1b3954 | ||
|
|
ef8bfbb59e | ||
|
|
c30d98dd77 | ||
|
|
57ccdf0b0c |
24
.github/workflows/mkdocs.yml
vendored
Executable file
24
.github/workflows/mkdocs.yml
vendored
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
name: Deploy MkDocs
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main # Change if your default branch is different
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.9'
|
||||||
|
|
||||||
|
- name: Install MkDocs
|
||||||
|
run: pip install mkdocs mkdocs-material
|
||||||
|
|
||||||
|
- name: Deploy MkDocs
|
||||||
|
run: mkdocs gh-deploy --force
|
||||||
39
.github/workflows/social_post_on_release.yml
vendored
39
.github/workflows/social_post_on_release.yml
vendored
@@ -4,14 +4,36 @@ on:
|
|||||||
types: [published]
|
types: [published]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
post-release:
|
post-discord:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Wait for 15 minutes
|
- name: Wait for 15 minutes
|
||||||
run: sleep 900 # 15 minutes delay
|
run: sleep 900 # 15 minutes delay
|
||||||
|
|
||||||
# Post to Twitter
|
- name: Post to Discord
|
||||||
- name: Post to Twitter
|
run: |
|
||||||
|
curl -X POST -H "Content-Type: application/json" \
|
||||||
|
-d '{"content": "🎉 New release: **${{ github.event.release.name }}** is live! 🚀\nCheck it out here: ${{ github.event.release.html_url }}"}' \
|
||||||
|
${{ secrets.DISCORD_WEBHOOK_URL }}
|
||||||
|
|
||||||
|
post-twitter:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Wait for 15 minutes
|
||||||
|
run: sleep 900 # 15 minutes delay
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Create tweet file
|
||||||
|
run: |
|
||||||
|
echo "🎉 New release: **${{ github.event.release.name }}** is live! 🚀" > .github/tweet.md
|
||||||
|
echo "Check it out here: ${{ github.event.release.html_url }}" >> .github/tweet.md
|
||||||
|
git add .github/tweet.md
|
||||||
|
git commit -m "Add release tweet for ${{ github.event.release.name }}"
|
||||||
|
git push
|
||||||
|
|
||||||
|
- name: Tweet
|
||||||
uses: twitter-together/action@v3
|
uses: twitter-together/action@v3
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -19,14 +41,3 @@ jobs:
|
|||||||
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
|
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
|
||||||
TWITTER_API_KEY: ${{ secrets.TWITTER_API_KEY }}
|
TWITTER_API_KEY: ${{ secrets.TWITTER_API_KEY }}
|
||||||
TWITTER_API_SECRET_KEY: ${{ secrets.TWITTER_API_SECRET_KEY }}
|
TWITTER_API_SECRET_KEY: ${{ secrets.TWITTER_API_SECRET_KEY }}
|
||||||
with:
|
|
||||||
tweet: |
|
|
||||||
🎉 New release: **${{ github.event.release.name }}** is live! 🚀
|
|
||||||
Check it out here: ${{ github.event.release.html_url }}
|
|
||||||
|
|
||||||
# Post to Discord
|
|
||||||
- name: Post to Discord
|
|
||||||
run: |
|
|
||||||
curl -X POST -H "Content-Type: application/json" \
|
|
||||||
-d '{"content": "🎉 New release: **${{ github.event.release.name }}** is live! 🚀\nCheck it out here: ${{ github.event.release.html_url }}"}' \
|
|
||||||
${{ secrets.DISCORD_WEBHOOK_URL }}
|
|
||||||
|
|||||||
@@ -3,6 +3,24 @@
|
|||||||
>[!NOTE]
|
>[!NOTE]
|
||||||
> Replace `/development` with the path where your code files will be stored. The default container name is `netalertx` so there might be a conflict with your running containers.
|
> Replace `/development` with the path where your code files will be stored. The default container name is `netalertx` so there might be a conflict with your running containers.
|
||||||
|
|
||||||
|
### Development Guidelines
|
||||||
|
|
||||||
|
**Priority Order (Highest to Lowest):**
|
||||||
|
1. 🔼 Fixing core bugs that lack workarounds.
|
||||||
|
2. 🔵 Adding core functionality that unlocks other features (e.g., plugins).
|
||||||
|
3. 🔵 Refactoring to enable faster development.
|
||||||
|
4. 🔽 UI improvements (PRs welcome).
|
||||||
|
|
||||||
|
💡 **Design Philosophy:**
|
||||||
|
Focus on core functionality and integrate with existing tools rather than reinventing the wheel.
|
||||||
|
Examples:
|
||||||
|
- Using **Apprise** for notifications instead of implementing multiple separate gateways.
|
||||||
|
- Implementing **regex-based validation** instead of one-off validation for each setting.
|
||||||
|
|
||||||
|
📌 **Note on UI requests:**
|
||||||
|
UI changes have lower priority due to framework limitations and mobile support constraints.
|
||||||
|
PRs are welcome, but **keep them small & focused**.
|
||||||
|
|
||||||
## 1. Download the code:
|
## 1. Download the code:
|
||||||
|
|
||||||
- `mkdir /development`
|
- `mkdir /development`
|
||||||
@@ -67,4 +85,24 @@ Most code changes can be tetsed without rebuilding the container. When working o
|
|||||||
|
|
||||||
3. If none of the above work, restart the docker image. This is usually the last resort as sometimes the Docker engine becomes unresponsive and the whole engine needs to be restarted.
|
3. If none of the above work, restart the docker image. This is usually the last resort as sometimes the Docker engine becomes unresponsive and the whole engine needs to be restarted.
|
||||||
|
|
||||||
|
## ➕ Contributing & Pull Requests
|
||||||
|
|
||||||
|
**Before submitting a PR, please ensure:**
|
||||||
|
✔ Changes are **backward-compatible** with existing installs.
|
||||||
|
✔ No unnecessary changes are made.
|
||||||
|
✔ New features are **reusable**, not narrowly scoped.
|
||||||
|
✔ Features are implemented via **plugins** if possible.
|
||||||
|
|
||||||
|
### ✅ Suggested Test Cases
|
||||||
|
|
||||||
|
- Fresh install (no DB/config).
|
||||||
|
- Existing DB/config compatibility.
|
||||||
|
- Notification testing:
|
||||||
|
- Email
|
||||||
|
- Apprise (e.g., Telegram)
|
||||||
|
- Webhook (e.g., Discord)
|
||||||
|
- MQTT (e.g., Home Assistant)
|
||||||
|
- Settings persistence.
|
||||||
|
- Updating a Device
|
||||||
|
- Plugin functionality.
|
||||||
|
- Error log inspection.
|
||||||
|
|||||||
40
docs/INITIAL_SETUP.md
Executable file
40
docs/INITIAL_SETUP.md
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
# ⚙ Initial Setup
|
||||||
|
|
||||||
|
## 📁 Configuration Files
|
||||||
|
|
||||||
|
- On first run, the app generates a default `app.conf` and `app.db` if unavailable.
|
||||||
|
- Preferred method: Use the **Settings UI**.
|
||||||
|
- If the UI is inaccessible, manually edit [`app.conf`](https://github.com/jokob-sk/NetAlertX/tree/main/back) in `/app/config/`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🖥️ Setting Up Scanners
|
||||||
|
|
||||||
|
- Define networks to scan by entering accessible subnets.
|
||||||
|
- Default plugin: **ARPSCAN** → Requires at least one valid subnet + interface in `SCAN_SUBNETS`.
|
||||||
|
- 📖 [Subnet & VLAN setup guide](https://github.com/jokob-sk/NetAlertX/blob/main/docs/SUBNETS.md) (for troubleshooting and advanced scenarios).
|
||||||
|
|
||||||
|
### 🔄 PiHole Sync
|
||||||
|
- If using **PiHole**, devices can be synced automatically.
|
||||||
|
- 📖 [PiHole configuration guide](https://github.com/jokob-sk/NetAlertX/blob/main/docs/PIHOLE_GUIDE.md).
|
||||||
|
|
||||||
|
### 📦 Bulk Import
|
||||||
|
> [!NOTE]
|
||||||
|
> You can bulk-import devices via the [CSV import method](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEVICES_BULK_EDITING.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌍 Community Guides
|
||||||
|
|
||||||
|
- Various community-written configuration guides in **Chinese, Korean, German, French**.
|
||||||
|
- 📖 [Community Guides](https://github.com/jokob-sk/NetAlertX/blob/main/docs/COMMUNITY_GUIDES.md)
|
||||||
|
|
||||||
|
> ⚠️ **Note:** These guides may be outdated. Always refer to the official documentation first.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Common Issues
|
||||||
|
|
||||||
|
Before creating a new issue:
|
||||||
|
- Check if a similar issue was [already resolved](https://github.com/jokob-sk/NetAlertX/issues?q=is%3Aissue+is%3Aclosed).
|
||||||
|
- Review [common debugging tips](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEBUG_TIPS.md).
|
||||||
40
docs/index.md
Executable file
40
docs/index.md
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
# NetAlertX documentation
|
||||||
|
|
||||||
|
## ℹ️ In-App Help
|
||||||
|
|
||||||
|
- Hover over settings, fields, or labels.
|
||||||
|
- Click the blue ❔ (question-mark) icons.
|
||||||
|
- Access the in-app **Help / FAQ** section for frequently asked questions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📚 Table of Contents
|
||||||
|
|
||||||
|
{% include "_toc.md" %}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📥 Installation
|
||||||
|
|
||||||
|
### 🐳 Docker (Fully Supported)
|
||||||
|
The recommended installation method is via Docker.
|
||||||
|
👉 [Follow the official installation guide](https://github.com/jokob-sk/NetAlertX/blob/main/dockerfiles/README.md).
|
||||||
|
|
||||||
|
### 💻 Bare-Metal / On-Server (Experimental - looking ofr maintainers)
|
||||||
|
- 🧪 [(Experimental) On-hardware installation](https://github.com/jokob-sk/NetAlertX/blob/main/docs/HW_INSTALL.md)
|
||||||
|
- Alternative bare-metal forks:
|
||||||
|
- ✅ [leiweibau's fork](https://github.com/leiweibau/Pi.Alert/) (maintained)
|
||||||
|
- ❌ [pucherot's original code](https://github.com/pucherot/Pi.Alert/) (unmaintained)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Help and Support
|
||||||
|
|
||||||
|
Before opening an issue:
|
||||||
|
- 🔍 [Check common issues](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEBUG_TIPS.md#common-issues).
|
||||||
|
- 📌 [Look at closed issues](https://github.com/jokob-sk/NetAlertX/issues?q=is%3Aissue+is%3Aclosed).
|
||||||
|
- ⚠ **Enable debugging** before reporting: [Debug Guide](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEBUG_TIPS.md).
|
||||||
|
|
||||||
|
❗ **Follow the issue template** for faster resolution.
|
||||||
@@ -181,7 +181,6 @@ function validateRegex(elem) {
|
|||||||
const inputElem = $(elem);
|
const inputElem = $(elem);
|
||||||
const regexTmp = atob($(inputElem).attr("my-base64Regex")); // Decode base64 regex
|
const regexTmp = atob($(inputElem).attr("my-base64Regex")); // Decode base64 regex
|
||||||
|
|
||||||
console.log(regexTmp);
|
|
||||||
const regex = new RegExp(regexTmp); // Convert to a valid RegExp object
|
const regex = new RegExp(regexTmp); // Convert to a valid RegExp object
|
||||||
|
|
||||||
let attempts = 0;
|
let attempts = 0;
|
||||||
|
|||||||
@@ -328,7 +328,7 @@
|
|||||||
"Gen_Upd_Fail": "Échec de la mise à jour",
|
"Gen_Upd_Fail": "Échec de la mise à jour",
|
||||||
"Gen_Update": "Mise à jour",
|
"Gen_Update": "Mise à jour",
|
||||||
"Gen_Update_Value": "Valeur à mettre à jour",
|
"Gen_Update_Value": "Valeur à mettre à jour",
|
||||||
"Gen_ValidIcon": "",
|
"Gen_ValidIcon": "<i class=\"fa-solid fa-chevron-right \"></i>",
|
||||||
"Gen_Warning": "Avertissement",
|
"Gen_Warning": "Avertissement",
|
||||||
"Gen_Work_In_Progress": "Travaux en cours, c'est le bon moment pour faire un retour via la liste d'anomalies sur Github https://github.com/jokob-sk/NetAlertX/issues",
|
"Gen_Work_In_Progress": "Travaux en cours, c'est le bon moment pour faire un retour via la liste d'anomalies sur Github https://github.com/jokob-sk/NetAlertX/issues",
|
||||||
"Gen_create_new_device": "Nouvel appareil",
|
"Gen_create_new_device": "Nouvel appareil",
|
||||||
|
|||||||
@@ -328,7 +328,7 @@
|
|||||||
"Gen_Upd_Fail": "Aggiornamento fallito",
|
"Gen_Upd_Fail": "Aggiornamento fallito",
|
||||||
"Gen_Update": "Aggiorna",
|
"Gen_Update": "Aggiorna",
|
||||||
"Gen_Update_Value": "Aggiorna valore",
|
"Gen_Update_Value": "Aggiorna valore",
|
||||||
"Gen_ValidIcon": "",
|
"Gen_ValidIcon": "<i class=\"fa-solid fa-chevron-right \"></i>",
|
||||||
"Gen_Warning": "Avviso",
|
"Gen_Warning": "Avviso",
|
||||||
"Gen_Work_In_Progress": "Lavori in corso, è quindi un buon momento per un feedback su https://github.com/jokob-sk/NetAlertX/issues",
|
"Gen_Work_In_Progress": "Lavori in corso, è quindi un buon momento per un feedback su https://github.com/jokob-sk/NetAlertX/issues",
|
||||||
"Gen_create_new_device": "Nuovo dispositivo",
|
"Gen_create_new_device": "Nuovo dispositivo",
|
||||||
|
|||||||
0
front/php/templates/language/pl_pl.json
Normal file → Executable file
0
front/php/templates/language/pl_pl.json
Normal file → Executable file
0
front/php/templates/language/pt_br.json
Normal file → Executable file
0
front/php/templates/language/pt_br.json
Normal file → Executable file
@@ -328,7 +328,7 @@
|
|||||||
"Gen_Upd_Fail": "Не вдалося оновити",
|
"Gen_Upd_Fail": "Не вдалося оновити",
|
||||||
"Gen_Update": "оновлення",
|
"Gen_Update": "оновлення",
|
||||||
"Gen_Update_Value": "Оновити значення",
|
"Gen_Update_Value": "Оновити значення",
|
||||||
"Gen_ValidIcon": "",
|
"Gen_ValidIcon": "<i class=\"fa-solid fa-chevron-right \"></i>",
|
||||||
"Gen_Warning": "УВАГА",
|
"Gen_Warning": "УВАГА",
|
||||||
"Gen_Work_In_Progress": "Робота триває, час залишити відгук на https://github.com/jokob-sk/NetAlertX/issues",
|
"Gen_Work_In_Progress": "Робота триває, час залишити відгук на https://github.com/jokob-sk/NetAlertX/issues",
|
||||||
"Gen_create_new_device": "новий пристрій",
|
"Gen_create_new_device": "новий пристрій",
|
||||||
|
|||||||
48
mkdocs.yml
Executable file
48
mkdocs.yml
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
site_name: NetAlertX Docs
|
||||||
|
site_url: https://jokob-sk.github.io/NetAlertX/
|
||||||
|
nav:
|
||||||
|
- Home: index.md
|
||||||
|
- Installation:
|
||||||
|
- Installation: HW_INSTALL.md
|
||||||
|
- Migration Guide: MIGRATION.md
|
||||||
|
- Docker Compose: DOCKER_COMPOSE.md
|
||||||
|
- Docker File Permissions: FILE_PERMISSIONS.md
|
||||||
|
- Synology Guide: SYNOLOGY_GUIDE.md
|
||||||
|
- Community Guides: COMMUNITY_GUIDES.md
|
||||||
|
- Setup:
|
||||||
|
- Subnets: SUBNETS.md
|
||||||
|
- Remote Networks: REMOTE_NETWORKS.md
|
||||||
|
- Notifications Guide: NOTIFICATIONS.md
|
||||||
|
- Emails: SMTP.md
|
||||||
|
- Authelia: AUTHELIA.md
|
||||||
|
- Backups: BACKUPS.md
|
||||||
|
- Performance: PERFORMANCE.md
|
||||||
|
- Home Assistant: HOME_ASSISTANT.md
|
||||||
|
- Reverse DNS: REVERSE_DNS.md
|
||||||
|
- Pi-hole Guide: PIHOLE_GUIDE.md
|
||||||
|
- Reverse Proxy: REVERSE_PROXY.md
|
||||||
|
- Webhooks (n8n): WEBHOOK_N8N.md
|
||||||
|
- Device guides:
|
||||||
|
- Management: DEVICE_MANAGEMENT.md
|
||||||
|
- Bulk Editing: DEVICES_BULK_EDITING.md
|
||||||
|
- Random MAC: RANDOM_MAC.md
|
||||||
|
- Custom Properties: CUSTOM_PROPERTIES.md
|
||||||
|
- Device Display Settings: DEVICE_DISPLAY_SETTINGS.md
|
||||||
|
- Session Info: SESSION_INFO.md
|
||||||
|
- Icons: ICONS.md
|
||||||
|
- Network Topology: NETWORK_TREE.md
|
||||||
|
- Troubleshooting:
|
||||||
|
- Debugging Tips: DEBUG_TIPS.md
|
||||||
|
- Debugging Invalid JSON: DEBUG_INVALID_JSON.md
|
||||||
|
- Debugging Plugins: DEBUG_PLUGINS.md
|
||||||
|
- Debugging Web UI Port: WEB_UI_PORT_DEBUG.md
|
||||||
|
- Development:
|
||||||
|
- Environment Setup: DEV_ENV_SETUP.md
|
||||||
|
- Frontend Development: FRONTEND_DEVELOPMENT.md
|
||||||
|
- Development: PLUGINS_DEV.md
|
||||||
|
- Webhook Secret: WEBHOOK_SECRET.md
|
||||||
|
- API: API.md
|
||||||
|
- Database: DATABASE.md
|
||||||
|
- Settings: SETTINGS_SYSTEM.md
|
||||||
|
- Updates: UPDATES.md
|
||||||
|
- Versions: VERSIONS.md
|
||||||
Reference in New Issue
Block a user