diff --git a/servers/gevent/phosphor-gevent b/servers/gevent/phosphor-gevent
new file mode 100644
index 0000000..9767407
--- /dev/null
+++ b/servers/gevent/phosphor-gevent
@@ -0,0 +1,47 @@
+#!/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 gevent
+from gevent.pywsgi import WSGIServer
+
+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]
+
+    default_cert = os.path.join(
+        sys.prefix, 'share', os.path.basename(__file__), 'cert.pem')
+
+    app = App()
+
+    if os.environ.get('LISTEN_PID', None) == str(os.getpid()):
+        FIRST_SYSTEMD_SOCKET_FD = 3
+        bind = gevent.socket.fromfd(FIRST_SYSTEMD_SOCKET_FD,
+            gevent.socket.AF_INET,
+            gevent.socket.SOCK_STREAM)
+    else:
+        bind = ('', 443)
+
+    server = WSGIServer(
+        bind, app, keyfile=default_cert, certfile=default_cert)
+    server.serve_forever()
