Added Webwizard

This commit is contained in:
2026-06-23 18:44:29 -04:00
parent 4414dce4e4
commit 6c7632707f
21 changed files with 1046 additions and 7 deletions
+55
View File
@@ -22,6 +22,7 @@ The backend server connects outbound to the public proxy. Bungee/Waterfall then
- Multiple public proxies can connect to one backend
- One proxy can expose multiple named backend servers
- `/dsp2p status` and `/dsp2p doctor` commands
- Temporary browser setup wizard with console-generated login key
- Simple `config.properties` setup
## Requirements
@@ -113,6 +114,9 @@ tunnel.tls.keyStore=certs/frontend.p12
tunnel.tls.keyStorePassword=
tunnel.tls.requireClientAuth=false
webwizard.bindHost=127.0.0.1
webwizard.port=8765
routes=minecraft
route.minecraft.frontendBindHost=127.0.0.1
route.minecraft.frontendBindPort=25566
@@ -179,6 +183,9 @@ tunnel.tls.enabled=false
tunnel.tls.allowInsecure=true
tunnel.tls.trustOnFirstUse=true
webwizard.bindHost=127.0.0.1
webwizard.port=8765
routes=minecraft
route.minecraft.backendTargetHost=127.0.0.1
route.minecraft.backendTargetPort=25565
@@ -348,6 +355,50 @@ Shows role, node name, whether the tunnel is connected, connected tunnel count,
Checks the config and prints setup/security hints.
```text
/dsp2p webwizard
```
Toggles a temporary browser setup wizard.
When the wizard starts, the server console prints:
```text
Please sign in with this key: <temporary-key>
```
Open the printed URL in a browser and sign in with the temporary key.
The wizard provides guided sections for:
- server mode and node name
- proxy listener settings
- backend proxy connections
- Minecraft routes
- tunnel token and TLS
- heartbeat and reconnect settings
- advanced raw config keys
The web UI includes:
- `Save Config`
- `Save + Reload DirtSimpleP2P`
- `Reload Current Config`
- `Generate New Token`
Reloading from the wizard restarts the DirtSimpleP2P tunnel agent with the latest config. It does not run a full Minecraft server reload.
Run `/dsp2p webwizard` again to stop the wizard when setup is complete.
By default, the wizard binds to:
```properties
webwizard.bindHost=127.0.0.1
webwizard.port=8765
```
Keep it on `127.0.0.1` unless you understand the risk of exposing a config editor over the network.
Permission:
```text
@@ -456,3 +507,7 @@ tunnel.tls.allowInsecure=false
```
Trust-on-first-use is convenient, but the first TLS connection is the sensitive moment. For the strictest setup, manually copy the proxy certificate fingerprint into the backend config before the first connection.
The Web Wizard is intended as a temporary setup tool. It uses a random key printed to the server console and should be stopped when configuration is complete.
The reload button reloads DirtSimpleP2P itself. It intentionally does not run Paper/Bukkit `/reload`, because full server reloads are risky on production Minecraft servers.