feat: add embedded web dashboard for remote server

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 14:36:41 +08:00
parent 8c43a96817
commit df433a9179
7 changed files with 531 additions and 0 deletions
+1
View File
@@ -23,6 +23,7 @@ func NewHandler(store *Store, token string) http.Handler {
}
})))
mux.Handle("/api/v1/meta", bearerAuth(token, http.HandlerFunc(handleMeta(store))))
mux.Handle("/", webHandler())
return mux
}
+22
View File
@@ -131,6 +131,28 @@ func TestHTTPGetAgentFilter(t *testing.T) {
}
}
func TestHTTPGetRootNoAuth200(t *testing.T) {
store := openTestStore(t)
srv := httptest.NewServer(NewHandler(store, "secret"))
defer srv.Close()
resp, err := http.Get(srv.URL + "/")
if err != nil {
t.Fatal(err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
t.Fatalf("status: got %d want %d", resp.StatusCode, http.StatusOK)
}
body, err := io.ReadAll(resp.Body)
if err != nil {
t.Fatal(err)
}
if !strings.Contains(string(body), "agent-notify") {
t.Fatalf("expected dashboard HTML, got: %q", string(body[:min(80, len(body))]))
}
}
func TestHTTPHealthz200(t *testing.T) {
store := openTestStore(t)
srv := httptest.NewServer(NewHandler(store, "secret"))
+11
View File
@@ -0,0 +1,11 @@
package server
import (
"net/http"
"github.com/longbin/agent-notify/web"
)
func webHandler() http.Handler {
return web.Handler()
}