add debug server with status page
diff --git a/Gopkg.lock b/Gopkg.lock
index ff902da..7a96a79 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -18,6 +18,14 @@
   revision = "de5bf2ad457846296e2031421a34e2568e304e35"
 
 [[projects]]
+  digest = "1:e92f5581902c345eb4ceffdcd4a854fb8f73cf436d47d837d1ec98ef1fe0a214"
+  name = "github.com/StackExchange/wmi"
+  packages = ["."]
+  pruneopts = "UT"
+  revision = "5d049714c4a64225c3c79a7cf7d02f7fb5b96338"
+  version = "1.0.0"
+
+[[projects]]
   digest = "1:320e7ead93de9fd2b0e59b50fd92a4d50c1f8ab455d96bc2eb083267453a9709"
   name = "github.com/asaskevich/govalidator"
   packages = ["."]
@@ -26,14 +34,6 @@
   version = "v9"
 
 [[projects]]
-  digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec"
-  name = "github.com/davecgh/go-spew"
-  packages = ["spew"]
-  pruneopts = "UT"
-  revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73"
-  version = "v1.1.1"
-
-[[projects]]
   branch = "master"
   digest = "1:08aeb20c1d146f9254126139f272865927b6db288145f88f0a3baacc24ddfa24"
   name = "github.com/digitalocean/go-netbox"
@@ -53,6 +53,17 @@
   revision = "29433ec527e78486ea0a5758817ab672d977f90e"
 
 [[projects]]
+  digest = "1:64a5a67c69b70c2420e607a8545d674a23778ed9c3e80607bfd17b77c6c87f6a"
+  name = "github.com/go-ole/go-ole"
+  packages = [
+    ".",
+    "oleutil",
+  ]
+  pruneopts = "UT"
+  revision = "a41e3c4b706f6ae8dfbff342b06e40fa4d2d0506"
+  version = "v1.2.1"
+
+[[projects]]
   digest = "1:50d6bc4aa3e70803230bb98a4b0e0f1331fefc2eb324e087adf7e986b8da082e"
   name = "github.com/go-openapi/analysis"
   packages = [
@@ -188,6 +199,25 @@
 
 [[projects]]
   branch = "master"
+  digest = "1:a7cc4447e0c2432f217fd2bed937c100ec475272a7a9306477170c2934297357"
+  name = "github.com/q3k/statusz"
+  packages = ["."]
+  pruneopts = "UT"
+  revision = "924f04ea71149b75f5b10f426cc4c39d6d90f6f2"
+
+[[projects]]
+  branch = "master"
+  digest = "1:8f042d4b4c48d38d7a1201096299bd26d044c97c032ab20ee171fe5b0d201d2e"
+  name = "github.com/shirou/gopsutil"
+  packages = [
+    "internal/common",
+    "load",
+  ]
+  pruneopts = "UT"
+  revision = "a11c78ba2c13c5b1ee59c53296ba35f92f0ce658"
+
+[[projects]]
+  branch = "master"
   digest = "1:1ae047ded1ddcbe0eca8b0772e3ff2c10e354db4c42c65b96d0386883e63904d"
   name = "golang.org/x/net"
   packages = [
@@ -205,9 +235,12 @@
 
 [[projects]]
   branch = "master"
-  digest = "1:c2789211d4035eb0843b85958ecf7cb4a5ea91c2d4decee652c94ce898e433cb"
+  digest = "1:850d28ab022512e2cd3cf511a77f363c29e22689b4031f2050871f5de47ae4a0"
   name = "golang.org/x/sys"
-  packages = ["unix"]
+  packages = [
+    "unix",
+    "windows",
+  ]
   pruneopts = "UT"
   revision = "4497e2df6f9e69048a54498c7affbbec3294ad47"
 
@@ -301,12 +334,13 @@
   analyzer-name = "dep"
   analyzer-version = 1
   input-imports = [
-    "github.com/davecgh/go-spew/spew",
     "github.com/digitalocean/go-netbox/netbox",
     "github.com/digitalocean/go-netbox/netbox/client",
     "github.com/digitalocean/go-netbox/netbox/client/dcim",
+    "github.com/digitalocean/go-netbox/netbox/models",
     "github.com/golang/glog",
     "github.com/golang/protobuf/proto",
+    "github.com/q3k/statusz",
     "golang.org/x/net/context",
     "google.golang.org/grpc",
   ]
diff --git a/main.go b/main.go
index b97e171..5802ee1 100644
--- a/main.go
+++ b/main.go
@@ -18,6 +18,7 @@
 	flagConfigPath   string
 	flagNetboxHost   string
 	flagNetboxAPIKey string
+	flagDebugListen  string
 )
 
 func init() {
@@ -28,6 +29,7 @@
 	flag.StringVar(&flagConfigPath, "config_path", "./topo.pb.text", "Text proto configuration of Topo (per config.proto)")
 	flag.StringVar(&flagNetboxHost, "netbox_host", "netbox.bgp.wtf", "Netbox host")
 	flag.StringVar(&flagNetboxAPIKey, "netbox_api_key", "", "Netbox API key")
+	flag.StringVar(&flagDebugListen, "debug_listen", "127.0.0.1:42001", "Debug HTTP listen address")
 	flag.Parse()
 
 	ctx := context.Background()
@@ -52,4 +54,10 @@
 	if err != nil {
 		glog.Exitf("Initial netbox feed failed: %v", err)
 	}
+
+	sconf := ServiceConfig{
+		DebugListen: flagDebugListen,
+	}
+	srv := NewService(gr, sconf)
+	srv.Run()
 }
diff --git a/service.go b/service.go
index ab9e10a..991797d 100644
--- a/service.go
+++ b/service.go
@@ -1,7 +1,33 @@
 package main
 
-import confpb "code.hackerspace.pl/q3k/topo/proto/config"
+import (
+	"net/http"
 
-type service struct {
-	config *confpb.Config
+	"code.hackerspace.pl/q3k/topo/graph"
+	"github.com/golang/glog"
+	_ "github.com/q3k/statusz"
+)
+
+type ServiceConfig struct {
+	DebugListen string
+}
+
+type Service struct {
+	gr     *graph.Graph
+	config ServiceConfig
+}
+
+func NewService(gr *graph.Graph, c ServiceConfig) *Service {
+	return &Service{
+		gr:     gr,
+		config: c,
+	}
+}
+
+func (s *Service) Run() {
+	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+		http.Redirect(w, r, "/debug/status", http.StatusSeeOther)
+	})
+	glog.Infof("Debug listening on %s....", s.config.DebugListen)
+	http.ListenAndServe(s.config.DebugListen, nil)
 }