diff --git a/.gitignore b/.gitignore
index bd0238f8c50042634fea25e059a2de0fa655ab4e..20bca13b2990f2120bae5a2bb93983534146835a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -139,4 +139,6 @@ cython_debug/
 
 package-lock.json
 
-TODO.txt
\ No newline at end of file
+TODO.txt
+
+config/
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cba620d1c86c575fca24e4ea5099e622e3d1b6da..9a134c5a334bbc1f772ae3a1373aef26d73acd82 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -95,6 +95,7 @@ staging:
     name: staging
   image: google/cloud-sdk:alpine
   script:
+  - mv $CONFIG_VARS ./config/config.py
   - echo $SERVICE_ACCOUNT > /tmp/$CI_PIPELINE_ID.json
   - gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
   - gcloud --quiet --project $PROJECT_ID app deploy app-staging.yaml
@@ -104,13 +105,13 @@ staging:
     - staging
 
 
-
 deploy:
   stage: deploy
   environment:
     name: production
   image: google/cloud-sdk:alpine
   script:
+  - mv $CONFIG_VARS ./config/config.py
   - echo $SERVICE_ACCOUNT > /tmp/$CI_PIPELINE_ID.json
   - gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
   - gcloud --quiet --project $PROJECT_ID app deploy app.yaml
diff --git a/config.py b/config.py
deleted file mode 100644
index d027721c839cdddd8ab1da368be9b56b4242485b..0000000000000000000000000000000000000000
--- a/config.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import os
-
-class Config(object):
-    DEBUG = False
-    TESTING = False
-
-class ProductionConfig(Config):
-    pass
-
-class DevConfig(Config):
-    DEBUG = True
-    FLASK_ENV = os.getenv("DEV")
-    DATASTORE_EMULATOR_HOST = os.getenv("DATASTORE_EMULATOR_HOST")
-    DATASTORE_EMULATOR_HOST_PATH = os.getenv("DATASTORE_EMULATOR_HOST_PATH")
-
-class TestingConfig(Config):
-    TESTING = True
-    FLASK_ENV = os.getenv("DEV")
-    DATASTORE_EMULATOR_HOST = os.getenv("DATASTORE_EMULATOR_HOST")
-    DATASTORE_EMULATOR_HOST_PATH = os.getenv("DATASTORE_EMULATOR_HOST_PATH")
\ No newline at end of file
diff --git a/main.py b/main.py
index 041813997c81ece10c30325d20c5e7dfe171f802..9c27cdafa8c8af6a58f661aaa3105c1dfba37329 100644
--- a/main.py
+++ b/main.py
@@ -12,18 +12,22 @@ from opencensus.trace.tracer import Tracer
 from opencensus.ext.flask.flask_middleware import FlaskMiddleware
 from opencensus.trace.samplers import ProbabilitySampler
 
+app = Flask(__name__)
 
-depl_env = os.getenv("DEPLOYMENT_ENVIRONMENT")
-
-if depl_env == 'production' or depl_env == 'staging':
+if os.getenv('GAE_ENV', '').startswith('standard'):
     client = google.cloud.logging.Client()
     handler = CloudLoggingHandler(client)
     setup_logging(handler)
 
 logging.getLogger().setLevel(logging.DEBUG)
 
-app = Flask(__name__)
-app.secret_key = os.environ.get("SECRET_KEY") or os.urandom(24)
+if os.getenv('GAE_ENV', '').startswith('standard'):
+    logging.info("Loading app configuration from file")
+    app.config.from_pyfile('config/config.py')
+
+if not app.secret_key:
+    logging.info("Generating a random secret key")
+    app.secret_key = os.urandom(16)
 
 def main():
     sde = StackdriverExporter(