{"message":"WS Tunnel Server","endpoints":{"createSite":"POST /api/sites { name }","listSites":"GET /api/sites","updateSite":"PATCH /api/sites/:id { name }","deleteSite":"DELETE /api/sites/:id","listUnprovisionedClients":"GET /api/unprovisioned","listTunnels":"GET /api/sites/:siteId/tunnels","createTunnel":"POST /api/sites/:siteId/tunnels { name, remotePort, targetHost, targetPort }","unprovisionedInstall":"GET /download","betaInstall":"GET /download-beta","clientLinux":"GET /client-linux","clientLinuxSha256":"GET /client-linux.sha256","clientBeta":"GET /client-beta","clientBetaSha256":"GET /client-beta.sha256","upgradeRunOnce":"GET /upgrade-runonce","tunnelWebSocket":"WSS /tunnel?code=SHORTCODE over port 443 in production","adminWebSocket":"WSS /admin/ws over port 443 in production","clientUpdateWebSocket":"WSS /client-update?code=SHORTCODE for installed client updates","letsEncryptChallenge":"GET /.well-known/acme-challenge/:token when LETSENCRYPT_WEBROOT is set","getTunnel":"GET /api/tunnels/:id","updateTunnel":"PATCH /api/tunnels/:id { name?, remotePort?, targetHost?, targetPort?, enabled? }","deleteTunnel":"DELETE /api/tunnels/:id"}}