Document current product capabilities (multi-server CRUD, per-server access control, confirmed gaps)
This commit is contained in:
@@ -830,3 +830,515 @@ Keine Commits in dieser Session.
|
|||||||
- scripts/install.sh | 5 +++--
|
- scripts/install.sh | 5 +++--
|
||||||
|
|
||||||
---
|
---
|
||||||
|
## 2026-07-10 18:31 – 18:34 (3m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- 94f0e69 Remove stray tool-generated tmp file accidentally committed
|
||||||
|
- 867dc77 Replace from-scratch rewrite with real ngoduykhanh/wireguard-ui fork
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- .claude/settings.local.json.tmp.2113725.efbfaa50a5c4 | 10 ----------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-10 18:35 – 18:38 (2m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- e5c0a58 Adapt installers to upstream wireguard-ui build (Go+embed, yarn assets)
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-10 18:48 – 18:48 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-10 19:03 – 19:03 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-10 19:04 – 19:05 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-10 19:06 – 19:07 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 22:08 – 22:08 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 22:16 – 22:16 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 22:17 – 22:17 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 22:18 – 22:18 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 +++++++++++++++++++++++++--------------
|
||||||
|
- scripts/install.sh | 70 ++++++++++++++++++++++++++++++++++------------------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 ++++++----
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 +++++++++++++++++++++
|
||||||
|
- update.sh | 19 ++++++++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 22:26 – 22:26 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 55 ++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
- bootstrap.sh | 39 ++++++++++++++++++-----------
|
||||||
|
- scripts/install.sh | 70 +++++++++++++++++++++++++---------------------------
|
||||||
|
- scripts/proxmox-install.sh | 10 +++++---
|
||||||
|
- systemd/wireguard-ui-multi.service | 21 ++++++++++++++++
|
||||||
|
- update.sh | 19 +++++++++++---
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 22:28 – 22:41 (12m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- a946c05 Add read-only multi-server API (step 2) + dedupe serverID validation
|
||||||
|
- 7eca2d0 Add server-registry store methods with record-ID validation (step 1)
|
||||||
|
- 40d7862 Add multi-server data model + legacy DB migration (step 0)
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- store/jsondb/jsondb.go | 37 +++++++++++++++++++++++--------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 22:41 – 22:41 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- store/jsondb/jsondb.go | 37 +++++++++++++++++++++++--------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:07 – 23:08 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- store/jsondb/jsondb.go | 37 +++++++++++++++++++++++--------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:13 – 23:13 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- store/jsondb/jsondb.go | 37 +++++++++++++++++++++++--------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:13 – 23:15 (1m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- store/jsondb/jsondb.go | 37 +++++++++++++++++++++++--------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:16 – 23:16 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- store/jsondb/jsondb.go | 37 +++++++++++++++++++++++--------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:18 – 23:21 (2m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- 5b72a7c Add per-server access control (User.ServerIDs)
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 20 ++++++++++++++++++++
|
||||||
|
- handler/session.go | 29 +++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 +-
|
||||||
|
- model/user.go | 4 ++++
|
||||||
|
- store/jsondb/jsondb.go | 21 +++++++++++++++++++++
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:21 – 23:24 (2m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- 3842c7a Add server creation UI + user-server access assignment (step 3)
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- router/router.go | 6 ++++
|
||||||
|
- templates/base.html | 8 ++++++
|
||||||
|
- templates/servers.html | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
- templates/users_settings.html | 41 ++++++++++++++++++++++++++-
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:24 – 23:24 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- c7df129 Escape server name before HTML interpolation in servers.html
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- templates/servers.html | 6 +++++-
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:25 – 23:26 (1m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- templates/servers.html | 6 +++++-
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:30 – 23:31 (1m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- bb72a0a Rewrite README to be fork-only, drop all Docker/upstream content
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- README.md | 322 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:35 – 23:36 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- e353462 Remove Docker files (Dockerfile, docker-compose.yaml, examples/docker-compose)
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- Dockerfile | 77 -----------------------------------------------------------------------------
|
||||||
|
- docker-compose.yaml | 27 ---------------------------
|
||||||
|
- examples/docker-compose/README.md | 30 ------------------------------
|
||||||
|
- examples/docker-compose/boringtun.yml | 43 -------------------------------------------
|
||||||
|
- examples/docker-compose/linuxserver.yml | 42 ------------------------------------------
|
||||||
|
- examples/docker-compose/system.yml | 27 ---------------------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:36 – 23:44 (7m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- Dockerfile | 77 -----------------------------------------------------------------------------
|
||||||
|
- docker-compose.yaml | 27 ---------------------------
|
||||||
|
- examples/docker-compose/README.md | 30 ------------------------------
|
||||||
|
- examples/docker-compose/boringtun.yml | 43 -------------------------------------------
|
||||||
|
- examples/docker-compose/linuxserver.yml | 42 ------------------------------------------
|
||||||
|
- examples/docker-compose/system.yml | 27 ---------------------------
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:45 – 23:51 (6m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
- 3fe3dc8 Add per-server settings editor (step 5)
|
||||||
|
- 74389a9 Scope client management and config-apply per server (step 4)
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 39 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- templates/servers.html | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:52 – 23:52 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 39 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- templates/servers.html | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2026-07-11 – Status: What Works Today
|
||||||
|
|
||||||
|
Diese Session hat keinen Code geändert, sondern den aktuellen Stand des
|
||||||
|
Multi-Server-Umbaus gegen das committete `HEAD` verifiziert (`handler/routes.go`,
|
||||||
|
`main.go`, `model/server.go`, `model/setting.go`, `model/user.go`,
|
||||||
|
`store/jsondb/jsondb.go`, `templates/*.html`). Ziel: eine ehrliche
|
||||||
|
Bestandsaufnahme, keine Ankündigung geplanter Features.
|
||||||
|
|
||||||
|
### Datenmodell (verifiziert)
|
||||||
|
|
||||||
|
- `model/server.go`: `Server{ID, Name, KeyPair *ServerKeypair, Interface *ServerInterface}`.
|
||||||
|
- `model/setting.go`: `GlobalSetting` (app-weit: DNS, MTU, PersistentKeepalive,
|
||||||
|
FirewallMark, Table, EndpointAddress, ConfigFilePath — Legacy-Struktur) und
|
||||||
|
`ServerSetting` (pro Server: EndpointAddress, FirewallMark, Table,
|
||||||
|
ConfigFilePath). Der Kommentar über `ServerSetting` im Quelltext sagt
|
||||||
|
"not yet wired into store/handler layers" — das ist **veraltet**: die Methoden
|
||||||
|
`GetServerSettings`/`SaveServerSettings` in `store/jsondb/jsondb.go` (Zeile
|
||||||
|
~674–690) sind sehr wohl verdrahtet und werden von
|
||||||
|
`handler.GetServerSettings`/`handler.SaveServerSettingsHandler` sowie von
|
||||||
|
`buildEffectiveSettings()` (`handler/routes.go:50`) genutzt.
|
||||||
|
- `model/client.go`: `Client` trägt `ServerID`.
|
||||||
|
- `model/user.go`: `User.ServerIDs []string` — leer/nil heißt "kein Zugriff",
|
||||||
|
Admins sind davon ausgenommen.
|
||||||
|
|
||||||
|
### Migration von Single-Server-Installationen
|
||||||
|
|
||||||
|
- Beim ersten Start nach dem Upgrade migriert `store/jsondb/jsondb.go`
|
||||||
|
automatisch: die bestehende Legacy-Server-Konfiguration wird unter der
|
||||||
|
synthetischen ID `util.DefaultServerID` (= `"wg0"`) in `db/servers/wg0.json`,
|
||||||
|
`db/server_settings/wg0.json` angelegt (Konstante `legacyDefaultServerID`,
|
||||||
|
`store/jsondb/jsondb.go:22-24`). Bestehende Clients bekommen `ServerID = "wg0"`
|
||||||
|
rückwirkend zugewiesen, bestehende User bekommen `ServerIDs` entsprechend
|
||||||
|
befüllt. Die alte Legacy-Collection bleibt erhalten (wird nicht gelöscht).
|
||||||
|
Der Interface-Name des migrierten Default-Servers wird aus dem Dateinamen von
|
||||||
|
`ConfigFilePath` abgeleitet, falls gesetzt.
|
||||||
|
|
||||||
|
### Routen — Legacy (bare, operieren immer auf `wg0`)
|
||||||
|
|
||||||
|
Registriert in `main.go` (Zeilen ~211–275), unverändert nutzbar:
|
||||||
|
|
||||||
|
- `GET /` – Client-Liste (Dashboard des Default-Servers)
|
||||||
|
- `GET/POST /login`, `GET /logout`, `GET /profile`
|
||||||
|
- `GET /users-settings`, `POST /update-user`, `POST /create-user`,
|
||||||
|
`POST /remove-user`, `GET /get-users`, `GET /api/user/:username`
|
||||||
|
- `POST /new-client`, `POST /update-client`, `POST /email-client`,
|
||||||
|
`POST /send-telegram-client`, `POST /client/set-status`,
|
||||||
|
`POST /remove-client`, `GET /download`
|
||||||
|
- `GET /wg-server`, `POST /wg-server/interfaces`, `POST /wg-server/keypair`
|
||||||
|
— einzige Stelle, an der Interface-Adressen/Port und das Schlüsselpaar
|
||||||
|
eines Servers editierbar sind (siehe Lücke unten)
|
||||||
|
- `GET/POST /global-settings`
|
||||||
|
- `GET /status`, `GET /test-hash`, `GET /about`, `GET /_health`, `GET /favicon`
|
||||||
|
- `GET /api/clients`, `GET /api/client/:id`, `GET /api/machine-ips`,
|
||||||
|
`GET /api/subnet-ranges`, `GET /api/suggest-client-ips`,
|
||||||
|
`POST /api/apply-wg-config`
|
||||||
|
- `GET /wake_on_lan_hosts`, `POST /wake_on_lan_host`
|
||||||
|
|
||||||
|
### Routen — neu, `/servers/...` Namespace
|
||||||
|
|
||||||
|
- `GET /servers-settings` – Admin-Übersichtsseite (`servers.html`), nur Admin
|
||||||
|
- `GET /servers` – Serverliste; für Nicht-Admins gefiltert auf
|
||||||
|
`User.ServerIDs` (`handler.ListServers`, `handler/routes.go:530`)
|
||||||
|
- `POST /servers` – neuen Server anlegen (nur Admin), validiert die ID gegen
|
||||||
|
`util.ValidateRecordID` (nur Buchstaben/Ziffern/`-`/`_`)
|
||||||
|
- `GET /servers/:id/clients` – Client-Verwaltungsseite pro Server
|
||||||
|
(`server_clients.html`)
|
||||||
|
- `GET /servers/:id/api/clients`, `GET /servers/:id/api/client/:cid`
|
||||||
|
- `POST /servers/:id/new-client`, `POST /servers/:id/update-client`,
|
||||||
|
`POST /servers/:id/client/set-status`, `POST /servers/:id/remove-client`
|
||||||
|
- `GET /servers/:id/download`
|
||||||
|
- `POST /servers/:id/api/apply-wg-config` – schreibt die Config-Datei dieses
|
||||||
|
Servers, siehe Bugfix unten
|
||||||
|
- `GET /servers/:id/settings`, `POST /servers/:id/settings` (POST nur Admin)
|
||||||
|
|
||||||
|
Alle `/servers/:id/...`-Routen außer der reinen Admin-Erstellung laufen durch
|
||||||
|
`handler.RequireServerAccess(db)` (`handler/session.go:53`): Admins und
|
||||||
|
`DisableLogin` passieren immer, sonst wird geprüft, ob `serverID` in
|
||||||
|
`User.ServerIDs` enthalten ist.
|
||||||
|
|
||||||
|
### Bugfix bestätigt: Peer-Leak zwischen Servern behoben
|
||||||
|
|
||||||
|
`handler.ApplyServerConfig` (`handler/routes.go:1504`) filtert Clients jetzt
|
||||||
|
korrekt nach `Client.ServerID == serverID`, bevor sie als Peers in die Config
|
||||||
|
geschrieben werden (Zeilen 1528–1539). Für die Legacy-Route (`serverID ==
|
||||||
|
"wg0"`) wird weiterhin `db.GetServer()` (Legacy-Collection) statt
|
||||||
|
`db.GetServerByID` gelesen, um mit gerade über `/wg-server` vorgenommenen
|
||||||
|
Änderungen konsistent zu bleiben.
|
||||||
|
|
||||||
|
### Bestätigte Lücken (nicht gebaut, keine Ankündigung, sondern Fakt)
|
||||||
|
|
||||||
|
- **Keine UI zum Bearbeiten von Interface/KeyPair für Nicht-Default-Server.**
|
||||||
|
`store.UpdateServerInterface` und `store.UpdateServerKeyPair`
|
||||||
|
(`store/jsondb/jsondb.go:561`, `:577`) existieren, werden aber im gesamten
|
||||||
|
Code nur mit `util.DefaultServerID` aufgerufen (`handler/routes.go:1211`,
|
||||||
|
`:1242`, innerhalb von `WireGuardServerInterfaces`/`WireGuardServerKeyPair`,
|
||||||
|
den Handlern hinter `/wg-server/...`). Für über `/servers` neu angelegte
|
||||||
|
Server gibt es keine Route, die Adressen/Port oder das Schlüsselpaar danach
|
||||||
|
ändert.
|
||||||
|
- **Kein wg-quick/systemd-Exec.** Es gibt keinen `exec.Command`-Aufruf von
|
||||||
|
`wg-quick` oder `systemctl` irgendwo im Repo (verifiziert per Grep über
|
||||||
|
`internal/`, `handler/`, `util/`). Die Anwendung schreibt ausschließlich
|
||||||
|
`.conf`-Dateien; das Hoch-/Runterfahren der Interfaces bleibt Aufgabe des
|
||||||
|
Betreibers (z. B. manuell oder per eigenem systemd-Unit/Hook).
|
||||||
|
- **Keine Security-Härtung über das bereits vorhandene Session-/CSRF-Maß
|
||||||
|
hinaus.** Themen wie Cookie-Flags (Secure/SameSite), CSP-Header oder
|
||||||
|
Rate-Limiting wurden in Planungsgesprächen erwähnt, sind aber im
|
||||||
|
aktuellen Code nicht umgesetzt.
|
||||||
|
- Die alte Legacy-Collection (Pre-Migrations-Daten) wird beim Auto-Migrate
|
||||||
|
nicht gelöscht — kein Rollback-Mechanismus, aber auch kein Cleanup.
|
||||||
|
|
||||||
|
### Fazit
|
||||||
|
|
||||||
|
Multi-Server-CRUD (Anlage, Auflistung, gefilterte Sicht), pro-Server
|
||||||
|
Client-Verwaltung (Anlegen/Bearbeiten/Löschen/Status/Download), pro-Server
|
||||||
|
Zugriffskontrolle über `User.ServerIDs`, und die automatische Migration einer
|
||||||
|
bestehenden Single-Server-Installation sind lauffähig und durch Code bestätigt.
|
||||||
|
Was fehlt, um "produktiv nutzbar" im Sinne des ursprünglichen Lastenhefts zu
|
||||||
|
sein: Interface/Keypair-Verwaltung für neu angelegte Server, tatsächliches
|
||||||
|
Hoch-/Runterfahren der wg-Interfaces, und die in CLAUDE.md geplante
|
||||||
|
Security-/Firewall-Integration (nftables-Hooks, Audit-Log) — davon ist nichts
|
||||||
|
im aktuellen Code vorhanden.
|
||||||
|
|
||||||
|
---
|
||||||
|
## 2026-07-11 23:53 – 23:53 (0m)
|
||||||
|
**Beschreibung:** Claude Code Session
|
||||||
|
**Projekt:** wireguard-ui-multi
|
||||||
|
|
||||||
|
### Commits
|
||||||
|
Keine Commits in dieser Session.
|
||||||
|
|
||||||
|
### Geänderte Dateien
|
||||||
|
- handler/routes.go | 39 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
- main.go | 2 ++
|
||||||
|
- templates/servers.html | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
---
|
||||||
|
|||||||
Reference in New Issue
Block a user