             winston.debug("starting express webserver listening on #{program.host}:#{program.port}")
             http_server.listen(program.port, program.host, cb)
         (cb) ->
+            if not program.port
+                cb(); return
             async.parallel([
                 (cb) ->
                     # init authentication via passport (requires database)

            # Synchronous initialize of other functionality, now that the database, etc., are working.
            winston.debug("base_url='#{BASE_URL}'")

            winston.debug("initializing primus websocket server")
            init_primus_server(http_server)

            winston.debug("initializing the http proxy server")

            if program.proxy_port
                hub_proxy.init_http_proxy_server
                    database       : database
                    compute_server : compute_server

                    winston.debug("connected to database.")
                    cb()
        (cb) ->
            if not program.port
                cb(); return
            if program.dev or program.update
                winston.debug("updating the database schema...")
                database.update_schema(cb:cb)
            else
                cb()
        (cb) ->
            if not program.port
                cb(); return
            init_stripe(cb)
        (cb) ->
            if not program.port
                cb(); return
            init_support(cb)
        (cb) ->
            init_compute_server(cb)
        (cb) ->
            if not program.port
                cb(); return
            # proxy server and http server; this working etc. *relies* on compute_server having been created
            # However it can still serve many things without database.  TODO: Eventually it could inform user
            # that database isn't working.
