diff --git a/monorailapp.py b/monorailapp.py
new file mode 100644
index 0000000..6d89472
--- /dev/null
+++ b/monorailapp.py
@@ -0,0 +1,47 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file or at
+# https://developers.google.com/open-source/licenses/bsd
+
+"""Main program for Monorail.
+
+Monorail is an issue tracking tool that is based on the code.google.com
+issue tracker, but it has been ported to Google AppEngine and Google Cloud SQL.
+"""
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+
+import logging
+import webapp2
+
+from components import endpoints_webapp2
+
+import gae_ts_mon
+
+import registerpages
+from framework import sorting
+from services import api_svc_v1
+from services import service_manager
+
+
+services = service_manager.set_up_services()
+sorting.InitializeArtValues(services)
+registry = registerpages.ServletRegistry()
+app_routes = registry.Register(services)
+app = webapp2.WSGIApplication(
+    app_routes, config={'services': services})
+gae_ts_mon.initialize(app)
+
+endpoints = endpoints_webapp2.api_server(
+    [api_svc_v1.MonorailApi, api_svc_v1.ClientConfigApi])
+
+# TODO(crbug/monorail/8221): Remove this code during this milestone.
+# It only serves as a safe way to begin connecting to redis without risking
+# user facing problems.
+try:
+  logging.info('Starting initial redis connection verification.')
+  from framework import redis_utils
+  redis_utils.AsyncVerifyRedisConnection()
+except:  # pylint: disable=bare-except
+  logging.exception('Exception when instantiating redis connection.')
\ No newline at end of file
