diff --git a/phosphor-rest b/module/obmc/wsgi/apps/rest_dbus.py
similarity index 96%
rename from phosphor-rest
rename to module/obmc/wsgi/apps/rest_dbus.py
index d8307ee..246396c 100644
--- a/phosphor-rest
+++ b/module/obmc/wsgi/apps/rest_dbus.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
 # Contributors Listed Below - COPYRIGHT 2016
 # [+] International Business Machines Corp.
 #
@@ -17,16 +15,12 @@
 # permissions and limitations under the License.
 
 import os
-import sys
 import dbus
 import dbus.exceptions
 import json
-import logging
 from xml.etree import ElementTree
-from rocket import Rocket
 from bottle import Bottle, abort, request, response, JSONPlugin, HTTPError
 import obmc.utils.misc
-import obmc.utils.pathtree
 from obmc.dbuslib.introspection import IntrospectionNodeParser
 import obmc.mapper
 import spwd
@@ -685,9 +679,9 @@
         return self.to_jsonp(json)
 
 
-class RestApp(Bottle):
+class App(Bottle):
     def __init__(self):
-        super(RestApp, self).__init__(autojson=False)
+        super(App, self).__init__(autojson=False)
         self.bus = dbus.SystemBus()
         self.mapper = obmc.mapper.Mapper(self.bus)
 
@@ -753,19 +747,3 @@
         trailing = ("", "/")[path[-1] == '/']
         parts = filter(bool, path.split('/'))
         request.environ['PATH_INFO'] = '/' + '/'.join(parts) + trailing
-
-if __name__ == '__main__':
-    log = logging.getLogger('Rocket.Errors')
-    log.setLevel(logging.INFO)
-    log.addHandler(logging.StreamHandler(sys.stdout))
-
-    app = RestApp()
-    default_cert = os.path.join(
-        sys.prefix, 'share', os.path.basename(__file__), 'cert.pem')
-
-    server = Rocket(
-        ('0.0.0.0', 443, default_cert, default_cert),
-        'wsgi', {'wsgi_app': app},
-        min_threads=1,
-        max_threads=1)
-    server.start()
diff --git a/module/setup.py b/module/setup.py
new file mode 100644
index 0000000..dd2ff3b
--- /dev/null
+++ b/module/setup.py
@@ -0,0 +1,7 @@
+from distutils.core import setup
+
+setup(
+    name='phosphor-rest-dbus',
+    version='1.0',
+    py_modules=['obmc.wsgi.apps.rest_dbus'],
+    )
diff --git a/cert.pem b/servers/cert.pem
similarity index 100%
rename from cert.pem
rename to servers/cert.pem
diff --git a/servers/rocket/cert.pem b/servers/rocket/cert.pem
new file mode 120000
index 0000000..84d0899
--- /dev/null
+++ b/servers/rocket/cert.pem
@@ -0,0 +1 @@
+../cert.pem
\ No newline at end of file
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()
diff --git a/servers/rocket/setup.cfg b/servers/rocket/setup.cfg
new file mode 120000
index 0000000..29939b5
--- /dev/null
+++ b/servers/rocket/setup.cfg
@@ -0,0 +1 @@
+../setup.cfg
\ No newline at end of file
diff --git a/servers/rocket/setup.py b/servers/rocket/setup.py
new file mode 100644
index 0000000..08dfa39
--- /dev/null
+++ b/servers/rocket/setup.py
@@ -0,0 +1,8 @@
+from distutils.core import setup
+
+setup(
+    name='phosphor-rocket',
+    version='1.0',
+    scripts=['phosphor-rocket'],
+    data_files=[('phosphor-rocket', ['cert.pem'])],
+    )
diff --git a/setup.cfg b/servers/setup.cfg
similarity index 100%
rename from setup.cfg
rename to servers/setup.cfg
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 568a00b..0000000
--- a/setup.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from distutils.core import setup
-
-setup(name='phosphor-rest',
-      version='1.0',
-      scripts=['phosphor-rest'],
-      data_files=[('phosphor-rest', ['cert.pem'])],
-      )
