Skip to content
Merged

sync #1499

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
5e46e78
DOCS: updates
jokob-sk Jan 18, 2026
ecaacec
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 19, 2026
beb101b
png cleanup
jokob-sk Jan 19, 2026
ea2c518
Refactor Dockerfile for multi-stage build and hardening
adamoutler Jan 21, 2026
319731b
Update Dockerfile.debian
adamoutler Jan 21, 2026
97bc220
Merge pull request #1442 from adamoutler/patch-11
jokob-sk Jan 21, 2026
44a7f15
Update Docker Compose capabilities for root-entrypoint
adamoutler Jan 23, 2026
9da1d2a
Merge pull request #1451 from adamoutler/patch-12
jokob-sk Jan 23, 2026
3342427
Merge pull request #1435 from netalertx/next_release
jokob-sk Jan 24, 2026
27f7bfd
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 24, 2026
96e4909
feat: authoritative plugin fields
jokob-sk Jan 25, 2026
1ec499d
internal reverse proxy from 20212 to 20211/server
adamoutler Jan 25, 2026
f8f7014
Update INSTALLATION.md
matt-shelley-IT Jan 25, 2026
e61133c
DOCS: reverse proxy
jokob-sk Jan 25, 2026
a306210
Merge pull request #1456 from matt-shelley-IT/patch-1
jokob-sk Jan 25, 2026
ff206b8
PLG: add online option only via PIHOLEAPI_GET_OFFLINE #1436
jokob-sk Jan 25, 2026
2292f90
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 25, 2026
4619a13
LANG: weblate
jokob-sk Jan 25, 2026
9ec4e26
Translated using Weblate (Portuguese (Portugal))
SantosSi Jan 25, 2026
a398b91
Translated using Weblate (Chinese (Simplified Han script))
ptsa Jan 25, 2026
c00c4f6
Translated using Weblate (Ukrainian)
Jan 25, 2026
b0a9f5f
Translated using Weblate (German)
weblate Jan 25, 2026
52a5972
Translated using Weblate (Catalan)
Jan 25, 2026
2e91e5e
Translated using Weblate (Portuguese (Brazil))
GoldBull3t Jan 25, 2026
ad3bfba
Translated using Weblate (Russian)
YoSafeguard Jan 25, 2026
7432cdd
Translated using Weblate (Turkish)
BekirKayraCigdem Jan 25, 2026
76d63de
Translated using Weblate (French)
Jan 25, 2026
a5fc490
Translated using Weblate (Japanese)
Jan 25, 2026
bb10611
Translated using Weblate (Spanish)
weblate Jan 25, 2026
d56875c
Translated using Weblate (Arabic)
bo3bdo Jan 25, 2026
3288eef
Translated using Weblate (Norwegian Bokmål)
PrinsGeryha Jan 25, 2026
4ae94f4
Translated using Weblate (Italian)
SirAfino Jan 25, 2026
858868b
Translated using Weblate (Polish)
isuckpotato Jan 25, 2026
c0f4fe9
DOCS+FE: authoritative fields + show devVlan
jokob-sk Jan 25, 2026
148bee3
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 25, 2026
5d28f49
BE: remove invalide cors entry
jokob-sk Jan 25, 2026
f173325
FE: more default icons #1448
jokob-sk Jan 25, 2026
d24411f
BE: CurrentScan table leanup - column rename
jokob-sk Jan 25, 2026
8b1fe73
Merge pull request #1450 from adamoutler/reverse-proxy-20212
jokob-sk Jan 25, 2026
cf919e6
Translated using Weblate (Italian)
mapi68 Jan 25, 2026
c162030
Translated using Weblate (Ukrainian)
maksim2005UKR Jan 25, 2026
108c264
feat: authoritative plugin fields - more options
jokob-sk Jan 25, 2026
a6a9540
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 25, 2026
a9c323b
Translated using Weblate (Russian)
Virenbar Jan 25, 2026
7324047
Translated using Weblate (French)
GitSpoon Jan 25, 2026
973de8d
Agent Skills
adamoutler Jan 25, 2026
fe6aa55
ENV Var Docs
adamoutler Jan 25, 2026
72c29a0
ENV Var test
adamoutler Jan 25, 2026
5fd789f
BE: Cursed CORS
jokob-sk Jan 25, 2026
f0960d2
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 25, 2026
67b307f
Address Coderabbit items.
adamoutler Jan 25, 2026
6cfc5ef
Merge pull request #1459 from adamoutler/skills-docs
jokob-sk Jan 25, 2026
c3d3826
PLG: add PIHOLEAPI_CONSIDER_ONLINE #1436
jokob-sk Jan 25, 2026
9d6004d
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 25, 2026
54a481f
FE+BE+DOCS: lock fields, devVlan not saveable
jokob-sk Jan 26, 2026
07b5b5c
DOCS: cleanup
jokob-sk Jan 26, 2026
46bbc6e
DOCS: cleanup
jokob-sk Jan 26, 2026
31530fb
DOCS+FE: cleanup, adding Source fields to workflows
jokob-sk Jan 26, 2026
19b40de
BE: write_notification schema fix - added interrupt
jokob-sk Jan 26, 2026
3d82af8
GIT: workflows - auto close no template
jokob-sk Jan 27, 2026
e46f556
GIT: workflows - auto close no template
jokob-sk Jan 27, 2026
f144f65
Translated using Weblate (Italian)
mapi68 Jan 26, 2026
5a11c37
Translated using Weblate (French)
GitSpoon Jan 26, 2026
bc40ecd
Translated using Weblate (Ukrainian)
maksim2005UKR Jan 27, 2026
fed621f
Disable
jokob-sk Jan 27, 2026
2bd80d1
http_sec_fetch with http_referrer fallback
adamoutler Jan 28, 2026
0b8f388
Tests and test environment
adamoutler Jan 28, 2026
f65aafa
Docs on /server policy
adamoutler Jan 28, 2026
cc55e58
Fix for docker test - exits earlier now.
adamoutler Jan 28, 2026
6916cd7
Set to /server default in UI
adamoutler Jan 28, 2026
f202b50
Add timeouts for tests per coderabbit guideline
adamoutler Jan 28, 2026
ecd0ca8
DOCS+FE+BE: cleaner versioning retrieval, ICMP, plugin debug docs
jokob-sk Jan 28, 2026
12cebbb
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 28, 2026
d9602da
GIT: workflows - auto close no template removal, docs
jokob-sk Jan 28, 2026
db95f2c
GIT: workflows - cleanup and manual test runs
jokob-sk Jan 28, 2026
1ed9082
GIT: workflows - cleanup and manual test runs
jokob-sk Jan 28, 2026
b4348c1
GIT: workflows - cleanup and manual test runs
jokob-sk Jan 28, 2026
6388afb
TEST: field locking test fixes 1
jokob-sk Jan 28, 2026
5dba6bf
Add prerequisites to test
adamoutler Jan 28, 2026
c05e7c7
Translated using Weblate (French)
GitSpoon Jan 27, 2026
c474d12
Merge branch 'origin/main' into Weblate.
weblate Jan 28, 2026
0df9759
Add nix flake
2m Jan 25, 2026
29a8cf0
Merge pull request #1466 from 2m/main
jokob-sk Jan 28, 2026
09a8099
DOCS: nix
jokob-sk Jan 28, 2026
8ac5b14
Merge pull request #1468 from adamoutler/http_sec_fetch
jokob-sk Jan 28, 2026
6eba031
TEST: field locking test fixes 2
jokob-sk Jan 28, 2026
14a92ad
LANG: csv export link fix
jokob-sk Jan 28, 2026
0fd3bd6
TEST: field locking test fixes 3
jokob-sk Jan 28, 2026
dc2a56a
BE+TEST: field locking test fixes 3, ipv4/6 handling fix
jokob-sk Jan 28, 2026
e649bcf
TEST: field locking test fixes 4
jokob-sk Jan 28, 2026
af2a89f
TEST: field locking test fixes 5
jokob-sk Jan 28, 2026
46d866b
TEST: field locking test fixes 6
jokob-sk Jan 28, 2026
7faaa63
TEST: field locking test fixes 6
jokob-sk Jan 28, 2026
2086e78
TEST: field locking test fixes 7
jokob-sk Jan 28, 2026
1f5d6f9
feat: authoritative plugin fields - fix devLastIP
jokob-sk Jan 28, 2026
d748480
TEST: field locking test fixes 8
jokob-sk Jan 28, 2026
596a30f
feat: authoritative plugin fields - fix devLastIP
jokob-sk Jan 29, 2026
e126e1f
TEST: field locking test fixes 9
jokob-sk Jan 29, 2026
928317d
TEST: field locking test fixes 10
jokob-sk Jan 29, 2026
1011652
Fix fresh install script
adamoutler Jan 29, 2026
a95b635
move docker_tests script to better name/location
adamoutler Jan 29, 2026
f54ba48
remove unused script
adamoutler Jan 29, 2026
fe6598b
Merge pull request #1470 from adamoutler/fix-fresh-install
jokob-sk Jan 29, 2026
52ac9fc
Merge pull request #1471 from adamoutler/tidy-test-scripts
jokob-sk Jan 29, 2026
229ea77
feat: authoritative plugin fields - fix devFQDN + docs + allow filter…
jokob-sk Jan 29, 2026
2211419
Translated using Weblate (Arabic)
weblate Jan 28, 2026
37d9041
Merge branch 'origin/main' into Weblate.
weblate Jan 29, 2026
17e563a
BE+FE: new fields handling in views and filters
jokob-sk Jan 29, 2026
6244dae
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 29, 2026
2d6e357
BE+FE: new fields handling in views and skipping device heuristics fo…
jokob-sk Jan 29, 2026
fa40880
heuristics fix
jokob-sk Jan 29, 2026
ed4e038
Improve OpenAPI specs
adamoutler Jan 29, 2026
a868a7e
DOCS+FE: re-adding old copyright header
jokob-sk Jan 30, 2026
1e1d4cd
better heuristics
jokob-sk Jan 30, 2026
e1059b6
DOCS: icon fix
jokob-sk Jan 30, 2026
ad6c3fe
better heuristics
jokob-sk Jan 30, 2026
405c1c3
better heuristics
jokob-sk Jan 30, 2026
8640b8c
BE: in-app notifications overwrite prevention + device huristics update
jokob-sk Jan 30, 2026
8dfc0e0
better heuristics
jokob-sk Jan 30, 2026
a6f9b56
devices view filtering fixes
jokob-sk Jan 30, 2026
cc8a695
improve MCP spec
adamoutler Jan 30, 2026
4506aa3
FE: None❌ value fixes and overrides of setting values
jokob-sk Jan 31, 2026
42be7c4
Merge netalertx/main into openapi-mcp-improvements
adamoutler Jan 31, 2026
5a49b97
Fixes for Coderabbit review
adamoutler Jan 31, 2026
7aa547e
Fix Device Up
adamoutler Jan 31, 2026
0c08659
Merge pull request #1476 from adamoutler/openapi-mcp-improvements
jokob-sk Jan 31, 2026
604bbba
DOCS: promocards + features
jokob-sk Jan 31, 2026
53f7a71
Translated using Weblate (French)
GitSpoon Jan 30, 2026
371fb04
Translated using Weblate (Italian)
mapi68 Jan 30, 2026
c201a83
DOCS: promocards + features
jokob-sk Jan 31, 2026
596f52f
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 31, 2026
a41111c
DOCS: MCP features
jokob-sk Jan 31, 2026
f52a7c1
DOCS: MCP features
jokob-sk Jan 31, 2026
7056bcb
Translated using Weblate (Chinese (Simplified Han script))
batmanpy Jan 31, 2026
53c7cea
Add api redirect from / to /docs
adamoutler Jan 31, 2026
d404c45
Add basic unit tests
adamoutler Jan 31, 2026
53962bc
Update test/api_endpoints/test_docs.py
adamoutler Jan 31, 2026
d3b3f8b
autoconfigure scan subnets
adamoutler Jan 31, 2026
77fd017
Coderabbit requested changes
adamoutler Jan 31, 2026
9d0627c
Unit tests for auto-subnet
adamoutler Jan 31, 2026
87b15fb
Merge pull request #1477 from adamoutler/redirect-to-docs
jokob-sk Jan 31, 2026
4c9c890
DOCS+FE+BE: cleanup, SSE wait for app initialization #1440
jokob-sk Jan 31, 2026
56ba886
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Jan 31, 2026
900e418
fix unrelated test not using root-entrypoint properly.
adamoutler Feb 1, 2026
d6457a5
Debian compatibility
adamoutler Feb 1, 2026
2954b92
FE+BE: timexone fixes 1 #1440
jokob-sk Feb 1, 2026
f91d897
Merge pull request #1478 from adamoutler/first-run-auto-configure-sca…
jokob-sk Feb 1, 2026
e592bda
DOCS: MCP features, css
jokob-sk Feb 1, 2026
6f64a96
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Feb 1, 2026
db8a086
DOCS: MCP features, css
jokob-sk Feb 1, 2026
d52799a
DOCS: MCP features, css
jokob-sk Feb 1, 2026
9668705
Translated using Weblate (Chinese (Simplified Han script))
batmanpy Jan 31, 2026
016e1d8
Translated using Weblate (German)
Atalanttore Jan 31, 2026
0ac0dcc
enhance agent workflow for testing
adamoutler Feb 1, 2026
0b104ca
DOCS+BE: images and store test notifications
jokob-sk Feb 1, 2026
3963735
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Feb 1, 2026
6d03d58
FE: more information density on device details
jokob-sk Feb 2, 2026
b45804f
FE: add clear sources functionality in multi-edit
jokob-sk Feb 2, 2026
f726820
PLG: fix ICMP configuration - it should not supply devName for mapping
jokob-sk Feb 2, 2026
92029ba
Merge branch 'main' of https://github.com/netalertx/NetAlertX into ag…
adamoutler Feb 2, 2026
bc46cba
FE: N/A placeholder for empty names
jokob-sk Feb 2, 2026
8a5d3b1
PLG: NAME_CLEANUP_REGEX . behavior in names
jokob-sk Feb 2, 2026
b2501d9
fix(mcp): Handle non-JSON responses and correct JSON errors
adamoutler Feb 2, 2026
dc6b57a
feat(devcontainer): Auto-configure MCP settings for VSCode and Gemini
adamoutler Feb 2, 2026
5095edd
docs(mcp): Update tool descriptions, links, and standardize path para…
adamoutler Feb 2, 2026
f43517b
chore(api): Cleanup schemas and update skills docs
adamoutler Feb 2, 2026
9ca5375
fix(schema): Enhance MAC validation for sessions and events
adamoutler Feb 2, 2026
a703549
test(mcp): Update endpoints to remove obsolete /mcp/sse prefixes
adamoutler Feb 2, 2026
36d5f5b
Fix for space after period.
adamoutler Feb 2, 2026
7b22c0a
Translated using Weblate (Italian)
mapi68 Feb 3, 2026
1a9ae62
Translated using Weblate (Ukrainian)
maksim2005UKR Feb 2, 2026
f7fa857
Translated using Weblate (French)
GitSpoon Feb 2, 2026
fe7e91c
Translated using Weblate (Chinese (Simplified Han script))
batmanpy Feb 2, 2026
034ee68
Translated using Weblate (Russian)
Virenbar Feb 2, 2026
22bb936
Merge pull request #1480 from adamoutler/agentic-workflows
jokob-sk Feb 3, 2026
81202ce
name resolution config clean up, authoritative fields fixes for none …
jokob-sk Feb 3, 2026
5081767
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Feb 3, 2026
0f0a09f
DOCS: WiFi extenders and ping vs arp-scan clarification
jokob-sk Feb 3, 2026
8211816
feat(mcp): Expose OpenAPI spec as a resource (netalertx://api/openapi…
adamoutler Feb 3, 2026
a1a6c7e
Skill: Agents can auto-configure MCP.
adamoutler Feb 3, 2026
b87a8d6
Remove logging driver from Docker Compose config
adamoutler Feb 3, 2026
7caa6a1
feat(api): Add named events totals endpoint and deprecate raw version
adamoutler Feb 3, 2026
1139e0e
docs(api): Deprecate raw events totals endpoint
adamoutler Feb 3, 2026
50e7407
Update OpenAPI spec description with detailed info
adamoutler Feb 3, 2026
250b5a3
Merge pull request #1483 from adamoutler/patch-13
jokob-sk Feb 3, 2026
433600d
Merge pull request #1485 from adamoutler/patch-14
jokob-sk Feb 3, 2026
7cb1728
Merge pull request #1484 from adamoutler/agentic-workflows
jokob-sk Feb 3, 2026
5b64c96
TEST: field locking test fixes 11
jokob-sk Feb 3, 2026
a8ec97d
DOCS: removing patreon
jokob-sk Feb 3, 2026
984b5cd
FE: devVlan added to workflows
jokob-sk Feb 4, 2026
76d37ed
jokob-sk/netalertx -> netalertx/netalertx
jokob-sk Feb 4, 2026
1b6dc94
Deleting Plugin Objects was not possible #1486
jokob-sk Feb 5, 2026
2124c2e
enhance testing resilliancy
adamoutler Feb 5, 2026
5e40ea8
Update .gitignore
adamoutler Feb 5, 2026
c074ce1
fix Potential UnboundLocalError
adamoutler Feb 5, 2026
30c004e
GIT: static code check for disabled CurrentScan cleanup - test
jokob-sk Feb 6, 2026
8e83d9b
BE: Removal of debug code taht was causing devices to appear online #…
jokob-sk Feb 6, 2026
5c23bde
TEST: scan processing 1
jokob-sk Feb 6, 2026
ac52247
TEST: scan processing 2
jokob-sk Feb 6, 2026
d38dcda
TEST: scan processing 3
jokob-sk Feb 6, 2026
c1141fc
TEST: scan processing 4
jokob-sk Feb 6, 2026
d5d1684
TEST: scan processing 5
jokob-sk Feb 6, 2026
15366a7
TEST: scan processing 6 + css fixes
jokob-sk Feb 6, 2026
5996e70
TEST: scan processing 7
jokob-sk Feb 6, 2026
dbe490a
TEST: scan processing 8
jokob-sk Feb 6, 2026
09b4216
TEST: scan processing 9
jokob-sk Feb 6, 2026
6bc2de6
TEST: scan processing - de;eted
jokob-sk Feb 6, 2026
0ce4e5f
BE+FE: work on bulk deleting devices and code cleanup #1493
jokob-sk Feb 6, 2026
3734c43
DOCS: Multiple NICs on Same Host Reporting Same IP
jokob-sk Feb 6, 2026
946ad00
FIX: lowercase MAC normalization across project v0.1
jokob-sk Feb 7, 2026
e70bbdb
Merge pull request #1490 from adamoutler/testing-resilliancy
jokob-sk Feb 7, 2026
827b5d2
FIX: lowercase MAC normalization across project v0.2
jokob-sk Feb 7, 2026
1bacb59
Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
jokob-sk Feb 7, 2026
8538c87
FIX: lowercase MAC normalization across project v0.3
jokob-sk Feb 7, 2026
d7f17c8
FIX: lowercase MAC normalization across project v0.4
jokob-sk Feb 7, 2026
30c832b
move app.
adamoutler Feb 7, 2026
ed44c68
Update scripts/db_cleanup/regenerate-database.sh
adamoutler Feb 7, 2026
3510afe
Merge pull request #1494 from adamoutler/separate-app.sql
jokob-sk Feb 7, 2026
9c4e02f
Add 403 message which describes the problem
adamoutler Feb 8, 2026
b703397
Merge pull request #1497 from adamoutler/improve-403-message
jokob-sk Feb 8, 2026
cedbd59
Translated using Weblate (Russian)
YoSafeguard Feb 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ ENV LANG=C.UTF-8
RUN apk add --no-cache bash mtr libbsd zip lsblk tzdata curl arp-scan iproute2 iproute2-ss nmap fping \
nmap-scripts traceroute nbtscan net-tools net-snmp-tools bind-tools awake ca-certificates \
sqlite php83 php83-fpm php83-cgi php83-curl php83-sqlite3 php83-session python3 envsubst \
nginx supercronic shadow su-exec && \
nginx supercronic shadow su-exec jq && \
rm -Rf /var/cache/apk/* && \
rm -Rf /etc/nginx && \
addgroup -g ${NETALERTX_GID} ${NETALERTX_GROUP} && \
Expand Down
13 changes: 13 additions & 0 deletions .devcontainer/scripts/generate-configs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,17 @@ cat "${DEVCONTAINER_DIR}/resources/devcontainer-Dockerfile"

echo "Generated $OUT_FILE using root dir $ROOT_DIR"

# Passive Gemini MCP config
TOKEN=$(grep '^API_TOKEN=' /data/config/app.conf 2>/dev/null | cut -d"'" -f2)
if [ -n "${TOKEN}" ]; then
mkdir -p "${ROOT_DIR}/.gemini"
[ -f "${ROOT_DIR}/.gemini/settings.json" ] || echo "{}" > "${ROOT_DIR}/.gemini/settings.json"
jq --arg t "$TOKEN" '.mcpServers["netalertx-devcontainer"] = {url: "http://127.0.0.1:20212/mcp/sse", headers: {Authorization: ("Bearer " + $t)}}' "${ROOT_DIR}/.gemini/settings.json" > "${ROOT_DIR}/.gemini/settings.json.tmp" && mv "${ROOT_DIR}/.gemini/settings.json.tmp" "${ROOT_DIR}/.gemini/settings.json"

# VS Code MCP config
mkdir -p "${ROOT_DIR}/.vscode"
[ -f "${ROOT_DIR}/.vscode/mcp.json" ] || echo "{}" > "${ROOT_DIR}/.vscode/mcp.json"
jq --arg t "$TOKEN" '.servers["netalertx-devcontainer"] = {type: "sse", url: "http://127.0.0.1:20212/mcp/sse", headers: {Authorization: ("Bearer " + $t)}}' "${ROOT_DIR}/.vscode/mcp.json" > "${ROOT_DIR}/.vscode/mcp.json.tmp" && mv "${ROOT_DIR}/.vscode/mcp.json.tmp" "${ROOT_DIR}/.vscode/mcp.json"
fi

echo "Done."
13 changes: 0 additions & 13 deletions .devcontainer/scripts/run-tests.sh

This file was deleted.

6 changes: 3 additions & 3 deletions .devcontainer/scripts/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ LOG_FILES=(
LOG_DB_IS_LOCKED
LOG_NGINX_ERROR
)

sudo chmod 666 /var/run/docker.sock 2>/dev/null || true
sudo chown "$(id -u)":"$(id -g)" /workspaces
sudo chmod 755 /workspaces
Expand All @@ -55,6 +54,9 @@ sudo install -d -m 777 /tmp/log/plugins
sudo rm -rf /entrypoint.d
sudo ln -s "${SOURCE_DIR}/install/production-filesystem/entrypoint.d" /entrypoint.d

sudo rm -rf /services
sudo ln -s "${SOURCE_DIR}/install/production-filesystem/services" /services

sudo rm -rf "${NETALERTX_APP}"
sudo ln -s "${SOURCE_DIR}/" "${NETALERTX_APP}"

Expand Down Expand Up @@ -88,8 +90,6 @@ sudo chmod 777 "${LOG_DB_IS_LOCKED}"

sudo pkill -f python3 2>/dev/null || true

sudo chmod -R 777 "${PY_SITE_PACKAGES}" "${NETALERTX_DATA}" 2>/dev/null || true

sudo chown -R "${NETALERTX_USER}:${NETALERTX_GROUP}" "${NETALERTX_APP}"
date +%s | sudo tee "${NETALERTX_FRONT}/buildtimestamp.txt" >/dev/null

Expand Down
59 changes: 0 additions & 59 deletions .gemini/GEMINI.md

This file was deleted.

31 changes: 31 additions & 0 deletions .gemini/skills/devcontainer-management/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: devcontainer-management
description: Guide for identifying, managing, and running commands within the NetAlertX development container. Use this when asked to run commands, testing, setup scripts, or troubleshoot container issues.
---

# Devcontainer Management

When starting a session or performing tasks requiring the runtime environment, you must identify and use the active development container.

## Finding the Container

Run `docker ps` to list running containers. Look for an image name containing `vsc-netalertx` or similar.

```bash
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}" | grep netalertx
```

- **If no container is found:** Inform the user. You cannot run integration tests or backend logic without it.
- **If multiple containers are found:** Ask the user to clarify which one to use (e.g., provide the Container ID).

## Running Commands in the Container

Prefix commands with `docker exec <CONTAINER_ID>` to run them inside the environment. Use the scripts in `/services/` to control backend and other processes.

```bash
docker exec <CONTAINER_ID> bash /workspaces/NetAlertX/.devcontainer/scripts/setup.sh
```

*Note: This script wipes `/tmp` ramdisks, resets DBs, and restarts services (python server, cron,php-fpm, nginx).*

```
52 changes: 52 additions & 0 deletions .gemini/skills/mcp-activation/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: mcp-activation
description: Enables live interaction with the NetAlertX runtime. This skill configures the Model Context Protocol (MCP) connection, granting full API access for debugging, troubleshooting, and real-time operations including database queries, network scans, and device management.
---

# MCP Activation Skill

This skill configures the NetAlertX development environment to expose the Model Context Protocol (MCP) server to AI agents.

## Why use this?

By default, agents only have access to the static codebase (files). To perform dynamic actions—such as:
- **Querying the database** (e.g., getting device lists, events)
- **Triggering actions** (e.g., network scans, Wake-on-LAN)
- **Validating runtime state** (e.g., checking if a fix actually works)

...you need access to the **MCP Server** running inside the container. This skill sets up the necessary authentication tokens and connection configs to bridge your agent to that live server.

## Prerequisites

1. **Devcontainer:** You must be connected to the NetAlertX devcontainer.
2. **Server Running:** The backend server must be running (to generate `app.conf` with the API token).

## Activation Steps

1. **Activate Devcontainer Skill:**
If you are not already inside the container, activate the management skill:
```text
activate_skill("devcontainer-management")
```

2. **Generate Configurations:**
Run the configuration generation script *inside* the container. This script extracts the API Token and creates the necessary settings files (`.gemini/settings.json` and `.vscode/mcp.json`).

```bash
# Run inside the container
/workspaces/NetAlertX/.devcontainer/scripts/generate-configs.sh
```

3. **Apply Changes:**

* **For Gemini CLI:**
The agent session must be **restarted** to load the new `.gemini/settings.json`.
> "I have generated the MCP configuration. Please **restart this session** to activate the `netalertx-devcontainer` tools."

* **For VS Code (GitHub Copilot / Cline):**
The VS Code window must be **reloaded** to pick up the new `.vscode/mcp.json`.
> "I have generated the MCP configuration. Please run **'Developer: Reload Window'** in VS Code to activate the MCP server."

## Verification

After restarting, you should see new tools available (e.g., `netalertx-devcontainer__get_devices`).
15 changes: 15 additions & 0 deletions .gemini/skills/project-navigation/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: project-navigation
description: Reference for the NetAlertX codebase structure, key file paths, and configuration locations. Use this when exploring the codebase or looking for specific components like the backend entry point, frontend files, or database location.
---

# Project Navigation & Structure

## Codebase Structure & Key Paths

- **Source Code:** `/workspaces/NetAlertX` (mapped to `/app` in container via symlink).
- **Backend Entry:** `server/api_server/api_server_start.py` (Flask) and `server/__main__.py`.
- **Frontend:** `front/` (PHP/JS).
- **Plugins:** `front/plugins/`.
- **Config:** `/data/config/app.conf` (runtime) or `back/app.conf` (default).
- **Database:** `/data/db/app.db` (SQLite).
78 changes: 78 additions & 0 deletions .gemini/skills/testing-workflow/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
name: testing-workflow
description: Read before running tests. Detailed instructions for single, standard unit tests (fast), full suites (slow), handling authentication, and obtaining the API Token. Tests must be run when a job is complete.
---

# Testing Workflow
After code is developed, tests must be run to ensure the integrity of the final result.

**Crucial:** Tests MUST be run inside the container to access the correct runtime environment (DB, Config, Dependencies).

## 0. Pre-requisites: Environment Check

Before running any tests, verify you are inside the development container:

```bash
ls -d /workspaces/NetAlertX
```

**IF** this directory does not exist, you are likely on the host machine. You **MUST** immediately activate the `devcontainer-management` skill to enter the container or run commands inside it.

```text
activate_skill("devcontainer-management")
```

## 1. Full Test Suite (MANDATORY DEFAULT)

Unless the user **explicitly** requests "fast" or "quick" tests, you **MUST** run the full test suite. **Do not** optimize for time. Comprehensive coverage is the priority over speed.

```bash
cd /workspaces/NetAlertX; pytest test/
```

## 2. Fast Unit Tests (Conditional)

**ONLY** use this if the user explicitly asks for "fast tests", "quick tests", or "unit tests only". This **excludes** slow tests marked with `docker` or `feature_complete`.

```bash
cd /workspaces/NetAlertX; pytest test/ -m 'not docker and not feature_complete'
```

## 3. Running Specific Tests

To run a specific file or folder:

```bash
cd /workspaces/NetAlertX; pytest test/<path_to_test>
```

*Example:*
```bash
cd /workspaces/NetAlertX; pytest test/api_endpoints/test_mcp_extended_endpoints.py
```

## Authentication & Environment Reset

Authentication tokens are required to perform certain operations such as manual testing or crafting expressions to work with the web APIs. After making code changes, you MUST reset the environment to ensure the new code is running and verify you have the latest `API_TOKEN`.

1. **Reset Environment:** Run the setup script inside the container.
```bash
bash /workspaces/NetAlertX/.devcontainer/scripts/setup.sh
```
2. **Wait for Stabilization:** Wait at least 5 seconds for services (nginx, python server, etc.) to start.
```bash
sleep 5
```
3. **Obtain Token:** Retrieve the current token from the container.
```bash
python3 -c "from helper import get_setting_value; print(get_setting_value('API_TOKEN'))"
```

The retrieved token MUST be used in all subsequent API or test calls requiring authentication.

### Troubleshooting

If tests fail with 403 Forbidden or empty tokens:
1. Verify server is running and use the setup script (`/workspaces/NetAlertX/.devcontainer/scripts/setup.sh`) if required.
2. Verify `app.conf` inside the container: `cat /data/config/app.conf`
3. Verify Python can read it: `python3 -c "from helper import get_setting_value; print(get_setting_value('API_TOKEN'))"`
1 change: 0 additions & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
github: jokob-sk
patreon: netalertx
buy_me_a_coffee: jokobsk
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Discussions
url: https://github.com/netalertx/NetAlertX/discussions
about: Ask questions or start discussions here.
- name: 🗯 Discord
url: https://discord.com/invite/NczTUTWyRr
about: Ask the community for help.
6 changes: 5 additions & 1 deletion .github/ISSUE_TEMPLATE/documentation-feedback.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
name: Documentation Feedback 📝
name: Documentation Feedback
description: Suggest improvements, clarify inconsistencies, or report issues related to the documentation.
labels: ['documentation 📚']
body:
- type: markdown
attributes:
value: |
<!-- NETALERTX_TEMPLATE -->
- type: checkboxes
attributes:
label: Is there an existing issue for this?
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
name: Feature Request
name: 🎁 Feature Request
description: 'Suggest an idea for NetAlertX'
labels: ['Feature request ➕']
body:
- type: markdown
attributes:
value: |
<!-- NETALERTX_TEMPLATE -->
- type: checkboxes
attributes:
label: Is there an existing issue for this?
Expand Down
6 changes: 5 additions & 1 deletion .github/ISSUE_TEMPLATE/i-have-an-issue.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
name: Bug Report
name: 🐛 Bug Report
description: 'When submitting an issue enable LOG_LEVEL="trace" and have a look at the docs.'
labels: ['bug 🐛']
body:
- type: markdown
attributes:
value: |
<!-- NETALERTX_TEMPLATE -->
- type: dropdown
id: installation_type
attributes:
Expand Down
8 changes: 6 additions & 2 deletions .github/ISSUE_TEMPLATE/security-report.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
name: Security Report 🔐
name: 🔐 Security Report
description: Report a security vulnerability or concern privately.
labels: ['security 🔐']
body:
- type: markdown
attributes:
value: |
<!-- NETALERTX_TEMPLATE -->
- type: markdown
attributes:
value: |
**Important:** For security reasons, please do **not** post sensitive security issues publicly in the issue tracker.
Instead, send details to our security contact email: [jokob@duck.com](mailto:jokob@duck.com).

We appreciate your responsible disclosure.
- type: textarea
attributes:
Expand Down
6 changes: 5 additions & 1 deletion .github/ISSUE_TEMPLATE/setup-help.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
name: Setup help
name: 📥 Setup help
description: 'When submitting an issue enable LOG_LEVEL="trace" and re-search first.'
labels: ['Setup 📥']
body:
- type: markdown
attributes:
value: |
<!-- NETALERTX_TEMPLATE -->
- type: dropdown
id: installation_type
attributes:
Expand Down
Loading