diff --git a/api.wsgi b/api.wsgi
index 12ac0b4143b7219db624dd6da724071d72d8fd81..8ac1025e102af4f946ec3370e68f666b432eb6f0 100644
--- a/api.wsgi
+++ b/api.wsgi
@@ -1,43 +1,48 @@
 # @author:  Gunnar Schaefer, Kevin S. Hahn
 
 import os
-import sys
-import site
 import time
+import logging
+import pymongo
+import argparse
+import uwsgidecorators
 
-import ConfigParser
-
-configfile = '/service/config/production.ini'
-config = ConfigParser.ConfigParser(allow_no_value=True)
-config.read(configfile)
+import api
+import internimsclient
 
-site.addsitedir(os.path.join(config.get('nims', 'virtualenv'), 'lib/python2.7/site-packages'))
-sys.path.append(config.get('nims', 'here'))
-os.environ['PYTHON_EGG_CACHE'] = config.get('nims', 'python_egg_cache')
+os.environ['PYTHON_EGG_CACHE'] = '/tmp/python_egg_cache'
 os.umask(0o022)
 
-import pymongo
-import uwsgidecorators
+ap = argparse.ArgumentParser()
+ap.add_argument('--db_uri', help='mongodb uri', required=True)
+ap.add_argument('--data_path', help='path to data', required=True)
+ap.add_argument('--log_path', help='path to log', required=True)     # for SHOWING the log, not where to write
+ap.add_argument('--ssl_cert', help='path to ssl cert in pem format, key+cert', required=True)
+ap.add_argument('--api_uri', help='api uri')
+ap.add_argument('--site_id', help='site id')
+ap.add_argument('--site_name', help='site name', nargs='+')
+ap.add_argument('--oauth2_id_endpoint', help='oauth2 id endpoint url', default='https://www.googleapis.com/plus/v1/people/me/openIdConnect')
+ap.add_argument('--demo', help='demo mode, enables auto user creation', action='store_true', default=False)
+ap.add_argument('--insecure', help='insecure mode', action='store_true', default=False)
+ap.add_argument('--central_uri', help='scitran central api', default='https://sdmc.scitran.io/api')
+ap.add_argument('--log_level', help='log level [info]', default='info')
+args = ap.parse_args()
+args.site_name = ' '.join(args.site_name) if args.site_name else None  # site_name as string
 
-import logging
-import logging.config
-logging.config.fileConfig(configfile, disable_existing_loggers=False)
+logging.basicConfig(level=getattr(logging, args.log_level.upper()))
 log = logging.getLogger('nimsapi')
 
-import api
-import internimsclient
-
 # configure uwsgi application
 application = api.app
-application.config['data_path'] = os.path.join(config.get('nims', 'data_path'), 'nims')
-application.config['quarantine_path'] = os.path.join(config.get('nims', 'data_path'), 'quarantine')
-application.config['log_path'] = config.get('nims', 'log_path')
-application.config['site_name'] = config.get('nims', 'site_name')
-application.config['site_id'] = config.get('nims', 'site_id')
-application.config['ssl_cert'] = config.get('nims', 'ssl_cert')
-application.config['oauth2_id_endpoint'] = config.get('oauth2', 'id_endpoint')
-application.config['insecure'] = config.getboolean('nims', 'insecure')
-application.config['demo'] = config.getboolean('nims', 'demo')
+application.config['site_id'] = args.site_id
+application.config['site_name'] = args.site_name
+application.config['data_path'] = os.path.join(args.data_path, 'nims')
+application.config['quarantine_path'] = os.path.join(args.data_path, 'quarantine')
+application.config['log_path'] = args.log_path
+application.config['ssl_cert'] = args.ssl_cert
+application.config['oauth2_id_endpoint'] = args.oauth2_id_endpoint
+application.config['insecure'] = args.insecure
+application.config['demo'] = args.demo
 
 if not os.path.exists(application.config['data_path']):
     os.makedirs(application.config['data_path'])
@@ -46,13 +51,10 @@ if not os.path.exists(application.config['quarantine_path']):
 
 # connect to db
 kwargs = dict(tz_aware=True)
-db_uri = config.get('nims', 'db_uri')
-db_client = None
 application.db = None
-
 for x in range(0, 30):
     try:
-        db_client = pymongo.MongoReplicaSetClient(db_uri, **kwargs) if 'replicaSet' in db_uri else pymongo.MongoClient(db_uri, **kwargs)
+        db_client = pymongo.MongoReplicaSetClient(args.db_uri, **kwargs) if 'replicaSet' in args.db_uri else pymongo.MongoClient(args.db_uri, **kwargs)
         application.db = db_client.get_default_database()
     except:
         time.sleep(1)
@@ -60,27 +62,25 @@ for x in range(0, 30):
     else:
         break
 else:
-    raise Exception("Could not connect to MongoDB")
-
+    raise Exception('Could not connect to MongoDB')
 
-# internims, send is-alive signals
-site_id = config.get('nims', 'site_id')
-site_name = config.get('nims', 'site_name')
-ssl_cert = config.get('nims', 'ssl_cert')
-api_uri = config.get('nims', 'api_uri')
-try:
-    internims_url = config.get('nims', 'internims_url')
-except ConfigParser.NoOptionError:
-    internims_url = None
-fail_count = 0
-
-if not internims_url or internims_url == u'':
-    log.debug('internims url not configured. internims disabled.')
+if not args.ssl_cert:
+    log.warning('SSL certificate not specified, Scitran Central functionality disabled')
+elif not args.api_uri:
+    log.warning('api_uri not configured. scitran central functionality disabled.')
+elif not args.site_name:
+    log.warning('site_name not configured. scitran central functionality disabled.')
+elif not args.site_id:
+    log.warning('site_id not configured. scitran central functionality disabled.')
+elif not args.central_uri:
+    log.warning('central_uri not configured. scitran central functionality disabled.')
 else:
+    fail_count = 0
+
     @uwsgidecorators.timer(60)
     def internimsclient_timer(signum):
         global fail_count
-        if not internimsclient.update(application.db, api_uri, site_name, site_id, ssl_cert, internims_url):
+        if not internimsclient.update(application.db, args.api_uri, args.site_name, args.site_id, args.ssl_cert, args.central_uri):
             fail_count += 1
         else:
             fail_count = 0