diff --git a/servers/rocket/phosphor-rocket b/servers/rocket/phosphor-rocket
new file mode 100644
index 0000000..139509c
--- /dev/null
+++ b/servers/rocket/phosphor-rocket
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+# Contributors Listed Below - COPYRIGHT 2016
+# [+] International Business Machines Corp.
+#
+#
+# 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.
+
+import sys
+import os
+import logging
+from rocket import Rocket
+
+if __name__ == '__main__':
+    if len(sys.argv) < 2:
+        sys.stderr.write('WSGI application required!')
+        sys.exit(1)
+
+    exec 'from obmc.wsgi.apps.%s import App' % sys.argv[1]
+
+    log = logging.getLogger('Rocket.Errors')
+    log.setLevel(logging.INFO)
+    log.addHandler(logging.StreamHandler(sys.stdout))
+
+    default_cert = os.path.join(
+        sys.prefix, 'share', os.path.basename(__file__), 'cert.pem')
+
+    app = App()
+    server = Rocket(
+        ('0.0.0.0', 443, default_cert, default_cert),
+        'wsgi', {'wsgi_app': app},
+        min_threads=1,
+        max_threads=1)
+    server.start()
