diff --git a/BUILD b/BUILD
index 4a94772..6ff23b8 100644
--- a/BUILD
+++ b/BUILD
@@ -7,6 +7,7 @@
     manifest_entries = [
         "Gerrit-PluginName: zuul-status",
         "Gerrit-Module: com.googlesource.gerrit.plugins.zuulstatus.Module",
+        "Gerrit-HttpModule: com.googlesource.gerrit.plugins.zuulstatus.HttpModule",
         "Implementation-Title: Zuul status plugin",
         "Implementation-Vendor: Wikimedia Foundation",
     ],
diff --git a/src/main/java/com/googlesource/gerrit/plugins/zuulstatus/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/zuulstatus/HttpModule.java
new file mode 100644
index 0000000..ed8baeb
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuulstatus/HttpModule.java
@@ -0,0 +1,28 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.zuulstatus;
+
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.gerrit.extensions.webui.JavaScriptPlugin;
+import com.google.gerrit.extensions.webui.WebUiPlugin;
+import com.google.inject.servlet.ServletModule;
+
+public class HttpModule extends ServletModule {
+  @Override
+  protected void configureServlets() {
+    DynamicSet.bind(binder(), WebUiPlugin.class)
+        .toInstance(new JavaScriptPlugin("zuul-status.html"));
+  }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/zuulstatus/Module.java b/src/main/java/com/googlesource/gerrit/plugins/zuulstatus/Module.java
index 59dcff6..f7077c6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/zuulstatus/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/zuulstatus/Module.java
@@ -19,25 +19,20 @@
 import com.google.gerrit.extensions.annotations.Exports;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.restapi.RestApiModule;
-import com.google.gerrit.extensions.webui.JavaScriptPlugin;
-import com.google.gerrit.extensions.webui.WebUiPlugin;
 import com.google.gerrit.server.config.ProjectConfigEntry;
 
 public class Module extends RestApiModule {
   @Override
   protected void configure() {
-    DynamicSet.bind(binder(), WebUiPlugin.class)
-        .toInstance(new JavaScriptPlugin("zuul-status.html"));
-
     get(PROJECT_KIND, "config").to(GetConfig.class);
 
     // TODO: these annotations only apply to GWT UIs...
     bind(ProjectConfigEntry.class)
-	.annotatedWith(Exports.named("url"))
-	.toInstance(new ProjectConfigEntry("Top-level Zuul URL", null));
+        .annotatedWith(Exports.named("url"))
+        .toInstance(new ProjectConfigEntry("Top-level Zuul URL", null));
 
     bind(ProjectConfigEntry.class)
-	.annotatedWith(Exports.named("tenant"))
-	.toInstance(new ProjectConfigEntry("Zuul v3 tenant name -- leave empty on Zuul v2", null));
+        .annotatedWith(Exports.named("tenant"))
+        .toInstance(new ProjectConfigEntry("Zuul v3 tenant name -- leave empty on Zuul v2", null));
   }
 }
