Restructure Web App into server/ + web/ (GsmNode parity)

Reorganize the Web App to match the GsmNode project layout: a Go
backend-for-frontend in server/ that embeds the built SPA and reverse-proxies
/api/* to the API Server, with the Vue 3 + Vite frontend moved into web/.

- Move all frontend files into web/ (history preserved via renames)
- Point vite build output at ../server/dist for Go embedding
- Add server/ Go BFF (main.go, go.mod, .env.example, Run-WebApp.ps1)
- Drop Docker/nginx deploy (Dockerfile, docker-compose.yml, nginx.conf.template,
  .dockerignore) in favor of the BFF, matching GsmNode
- Update .claude/launch.json to run the dev server from web/
- Rewrite README.md for the new layout

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
tajniak81andClaude Opus 4.8 committed 2026-07-13 11:34:02 +02:00
1 parent ba3f227361
commit 75a2ccc226
47 files changed
+230 -161

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<rect width="256" height="256" rx="56" fill="#1E40AF"></rect>
<svg x="53" y="53" width="150" height="150" viewBox="0 0 48 48">
<g transform="translate(7 0) skewX(-13)">
<rect x="9" y="16" width="6" height="16" rx="3" fill="#ffffff" opacity="0.55"></rect>
<rect x="19" y="12" width="6" height="24" rx="3" fill="#ffffff" opacity="0.8"></rect>
<rect x="29" y="8" width="6" height="32" rx="3" fill="#ffffff"></rect>
</g>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 550 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 48 48" fill="none">
<g transform="translate(7 0) skewX(-13)">
<rect x="9" y="16" width="6" height="16" rx="3" fill="#0F1E3D"></rect>
<rect x="19" y="12" width="6" height="24" rx="3" fill="#0F1E3D"></rect>
<rect x="29" y="8" width="6" height="32" rx="3" fill="#0F1E3D"></rect>
</g>
</svg>

After

Width:  |  Height:  |  Size: 381 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 48 48" fill="none">
<g transform="translate(7 0) skewX(-13)">
<rect x="9" y="16" width="6" height="16" rx="3" fill="#ffffff"></rect>
<rect x="19" y="12" width="6" height="24" rx="3" fill="#ffffff"></rect>
<rect x="29" y="8" width="6" height="32" rx="3" fill="#ffffff"></rect>
</g>
</svg>

After

Width:  |  Height:  |  Size: 381 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 48 48" fill="none">
<g transform="translate(7 0) skewX(-13)">
<rect x="9" y="16" width="6" height="16" rx="3" fill="#1E40AF"></rect>
<rect x="19" y="12" width="6" height="24" rx="3" fill="#3B82F6"></rect>
<rect x="29" y="8" width="6" height="32" rx="3" fill="#60A5FA"></rect>
</g>
</svg>

After

Width:  |  Height:  |  Size: 381 B

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="660" height="128" viewBox="0 0 330 64">
<rect width="330" height="64" fill="#0B1730"></rect>
<svg x="4" y="8" width="48" height="48" viewBox="0 0 48 48">
<g transform="translate(7 0) skewX(-13)">
<rect x="9" y="16" width="6" height="16" rx="3" fill="#60A5FA"></rect>
<rect x="19" y="12" width="6" height="24" rx="3" fill="#93C5FD"></rect>
<rect x="29" y="8" width="6" height="32" rx="3" fill="#ffffff"></rect>
</g>
</svg>
<text x="62" y="44" font-family="Archivo, sans-serif" font-style="italic" font-weight="800" font-size="36" letter-spacing="-1"><tspan fill="#ffffff">Driver</tspan><tspan fill="#60A5FA">Vault</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 715 B

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="660" height="128" viewBox="0 0 330 64">
<svg x="4" y="8" width="48" height="48" viewBox="0 0 48 48">
<g transform="translate(7 0) skewX(-13)">
<rect x="9" y="16" width="6" height="16" rx="3" fill="#1E40AF"></rect>
<rect x="19" y="12" width="6" height="24" rx="3" fill="#3B82F6"></rect>
<rect x="29" y="8" width="6" height="32" rx="3" fill="#60A5FA"></rect>
</g>
</svg>
<text x="62" y="44" font-family="Archivo, sans-serif" font-style="italic" font-weight="800" font-size="36" letter-spacing="-1"><tspan fill="#0F1E3D">Driver</tspan><tspan fill="#1E40AF">Vault</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

+10
View File
@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
<rect width="256" height="256" rx="56" fill="#1E40AF"></rect>
<svg x="53" y="53" width="150" height="150" viewBox="0 0 48 48">
<g transform="translate(7 0) skewX(-13)">
<rect x="9" y="16" width="6" height="16" rx="3" fill="#ffffff" opacity="0.55"></rect>
<rect x="19" y="12" width="6" height="24" rx="3" fill="#ffffff" opacity="0.8"></rect>
<rect x="29" y="8" width="6" height="32" rx="3" fill="#ffffff"></rect>
</g>
</svg>
</svg>

After

Width:  |  Height:  |  Size: 550 B