Compare commits

...

15 Commits

Author SHA1 Message Date
datadunia 7b102c94fb chore: update server-core submodule - fix TestDeviceCRUD panic
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-device-agent (push) Successful in 1m43s
CI / build-server-core (push) Successful in 3m17s
CI / build-dashboard (push) Successful in 56s
CI / build-docs (push) Successful in 50s
CI / release (push) Successful in 27s
2026-06-17 11:19:17 +07:00
datadunia 5fb815a3c1 fix(ci): move token+persist-credentials to test job checkout, insteadOf after checkout
CI / dashboard-test (push) Successful in 1m24s
CI / build-server-core (push) Has been skipped
CI / build-device-agent (push) Has been skipped
CI / build-dashboard (push) Has been skipped
CI / build-docs (push) Has been skipped
CI / release (push) Has been skipped
CI / server-core-test (push) Failing after 4m31s
CI / device-agent-test (push) Successful in 1m22s
Test jobs failed because actions/checkout@v4 erases global insteadOf
during 'Setting up auth for fetching submodules', replacing it with
SSH mappings that don't help with x-access-token auth.

Fix: Add token + persist-credentials to checkout (same pattern as
reusable build workflows that pass), and move insteadOf after checkout
as a safety net for subsequent git operations.
2026-06-17 10:56:27 +07:00
datadunia d9bf8d5616 fix(App): add NgToast component (toast notifications now visible)
CI / server-core-test (push) Failing after 13s
CI / device-agent-test (push) Failing after 16s
CI / build-docs (push) Has been skipped
CI / release (push) Has been skipped
CI / dashboard-test (push) Failing after 14s
CI / build-server-core (push) Has been skipped
CI / build-device-agent (push) Has been skipped
CI / build-dashboard (push) Has been skipped
2026-06-17 10:03:25 +07:00
datadunia e45b79c2a8 chore: update dashboard-ui submodule ref 2026-06-17 10:00:29 +07:00
datadunia c3177eb4e4 chore: update dashboard-ui submodule ref 2026-06-17 09:46:12 +07:00
datadunia 6141c2b556 chore: update server-core + dashboard-ui submodule refs 2026-06-17 09:27:38 +07:00
datadunia 8f589901f2 chore: update dashboard-ui submodule ref 2026-06-17 09:03:35 +07:00
datadunia 10a9ae2eac feat(port-forward): sync port forwards to nftables + update docs
- server-core: DNAT + forward rules for TCP/UDP port forwarding
- AGENTS.md: update device-agent description (systray support)
2026-06-17 06:38:04 +07:00
datadunia 53efeab1b3 chore: update device-agent (auto-download wintun.dll)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 8m16s
CI / build-device-agent (push) Successful in 2m11s
CI / build-docs (push) Successful in 1m6s
CI / build-dashboard (push) Successful in 1m32s
CI / release (push) Successful in 31s
2026-06-10 19:43:23 +07:00
datadunia cc0f01b6ae chore: update device-agent (Windows HWID + provisioning debug)
CI / build-server-core (push) Successful in 5m15s
CI / build-device-agent (push) Successful in 2m53s
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-dashboard (push) Successful in 1m10s
CI / build-docs (push) Successful in 1m14s
CI / release (push) Successful in 39s
2026-06-10 19:10:32 +07:00
datadunia 00a0bf661c chore: update device-agent (debug log, platform icons, hide console)
CI / build-server-core (push) Successful in 3m43s
CI / build-device-agent (push) Successful in 1m45s
CI / build-dashboard (push) Successful in 59s
CI / build-docs (push) Successful in 52s
CI / release (push) Successful in 25s
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
2026-06-10 18:44:18 +07:00
datadunia 6a27007b53 chore: update device-agent submodule (tray icons + strip build)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-server-core (push) Successful in 4m6s
CI / build-device-agent (push) Successful in 1m44s
CI / build-dashboard (push) Successful in 58s
CI / build-docs (push) Successful in 55s
CI / release (push) Successful in 25s
2026-06-10 16:58:44 +07:00
datadunia 2944ca0947 chore: update server-core submodule ref (regenerate-token HWID reset)
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / build-server-core (push) Successful in 6m36s
CI / build-device-agent (push) Successful in 4m20s
CI / dashboard-test (push) Has been skipped
CI / build-dashboard (push) Successful in 1m2s
CI / build-docs (push) Successful in 51s
CI / release (push) Successful in 28s
2026-06-10 15:26:33 +07:00
datadunia 2cfc7408a4 ci: add v*-dev* tag pattern to trigger builds
CI / build-server-core (push) Successful in 4m29s
CI / server-core-test (push) Has been skipped
CI / device-agent-test (push) Has been skipped
CI / dashboard-test (push) Has been skipped
CI / build-device-agent (push) Successful in 1m49s
CI / build-dashboard (push) Successful in 1m11s
CI / build-docs (push) Successful in 58s
CI / release (push) Successful in 27s
2026-06-10 15:01:34 +07:00
datadunia 4c8fe3c8d6 fix: token-derived provisioning encryption (no SERVER_SALT on client) 2026-06-10 14:56:04 +07:00
5 changed files with 21 additions and 11 deletions
+13 -6
View File
@@ -4,6 +4,7 @@ on:
push: push:
tags: tags:
- 'dev-*' - 'dev-*'
- 'v*-dev*'
- 'v*-beta*' - 'v*-beta*'
- 'v*-test*' - 'v*-test*'
- 'v[0-9]*.[0-9]*.[0-9]' - 'v[0-9]*.[0-9]*.[0-9]'
@@ -14,12 +15,14 @@ jobs:
if: contains(gitea.ref_name, 'test') if: contains(gitea.ref_name, 'test')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
submodules: true submodules: true
fetch-depth: 0 fetch-depth: 0
token: ${{ secrets.BUILD_TOKEN }}
persist-credentials: true
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
- uses: actions/setup-go@v5 - uses: actions/setup-go@v5
with: with:
go-version: '1.26' go-version: '1.26'
@@ -36,12 +39,14 @@ jobs:
if: contains(gitea.ref_name, 'test') if: contains(gitea.ref_name, 'test')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
submodules: true submodules: true
fetch-depth: 0 fetch-depth: 0
token: ${{ secrets.BUILD_TOKEN }}
persist-credentials: true
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
- uses: actions/setup-go@v5 - uses: actions/setup-go@v5
with: with:
go-version: '1.26' go-version: '1.26'
@@ -53,12 +58,14 @@ jobs:
if: contains(gitea.ref_name, 'test') if: contains(gitea.ref_name, 'test')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
submodules: true submodules: true
fetch-depth: 0 fetch-depth: 0
token: ${{ secrets.BUILD_TOKEN }}
persist-credentials: true
- name: Configure git auth for submodules
run: git config --global url."https://x-access-token:${{ secrets.BUILD_TOKEN }}@git.datadunia.com/".insteadOf "https://git.datadunia.com/"
- uses: actions/setup-node@v4 - uses: actions/setup-node@v4
with: with:
node-version: '24' node-version: '24'
+5 -2
View File
@@ -13,7 +13,7 @@ NexusGuard SD-WAN Suite — Enterprise Zero-Trust SD-WAN with WireGuard tunnelin
├── apps/ ├── apps/
│ ├── server-core/ # Go/Gin API backend (submodule) │ ├── server-core/ # Go/Gin API backend (submodule)
│ ├── dashboard-ui/ # Vue 3 + Vite frontend (submodule) │ ├── dashboard-ui/ # Vue 3 + Vite frontend (submodule)
│ └── device-agent/ # Go stealth daemon (submodule) │ └── device-agent/ # Go stealth daemon + system tray (submodule)
├── docker-compose.yml # Production orchestration ├── docker-compose.yml # Production orchestration
├── docker-compose.dev.yml # Dev (air hot-reload) ├── docker-compose.dev.yml # Dev (air hot-reload)
├── Makefile # up/down/dev/migrate/reset-db ├── Makefile # up/down/dev/migrate/reset-db
@@ -50,7 +50,10 @@ NexusGuard SD-WAN Suite — Enterprise Zero-Trust SD-WAN with WireGuard tunnelin
| Symbol | Type | Location | Role | | Symbol | Type | Location | Role |
|--------|------|----------|------| |--------|------|----------|------|
| `main()` (server-core) | func | `apps/server-core/main.go` | Entry: CLI flags + Gin init | | `main()` (server-core) | func | `apps/server-core/main.go` | Entry: CLI flags + Gin init |
| `main()` (device-agent) | func | `apps/device-agent/main.go` | Entry: agent daemon lifecycle | | `main()` (device-agent) | func | `apps/device-agent/main.go` | Entry: systray + agent daemon lifecycle |
| `onReady()` / `onExit()` | func | `apps/device-agent/main.go` | System tray setup and cleanup |
| `startAgent()` / `stopAgent()` | func | `apps/device-agent/main.go` | Agent connect/disconnect lifecycle |
| `generateIcon()` | func | `apps/device-agent/icon.go` | 16x16 shield icon for tray |
| `config.Load()` | func | `apps/server-core/internal/config/` | Env-based config loader | | `config.Load()` | func | `apps/server-core/internal/config/` | Env-based config loader |
| `config.LoadConfFile()` | func | `apps/server-core/internal/config/config_loader.go` | Config file parser (.env / nexusguard.conf) | | `config.LoadConfFile()` | func | `apps/server-core/internal/config/config_loader.go` | Config file parser (.env / nexusguard.conf) |
| `auth.Init()` | func | `apps/server-core/internal/auth/` | JWT sign/verify init | | `auth.Init()` | func | `apps/server-core/internal/auth/` | JWT sign/verify init |