Run development webserver.

    ATTENTION: By default it is only served on localhost. To run it
    within a container and access it from the outside, you need to
    forward the port and tell it to listen on all IPs instead of only
    localhost.

def marvcli_develop_server(port, public):
    """Run development webserver.

    ATTENTION: By default it is only served on localhost. To run it
    within a container and access it from the outside, you need to
    forward the port and tell it to listen on all IPs instead of only
    localhost.
    """
    from flask_cors import CORS
    app = create_app(push=False)
    app.site.load_for_web()
    CORS(app)

    class IPDBMiddleware(object):
        def __init__(self, app):
            self.app = app

        def __call__(self, environ, start_response):
            from ipdb import launch_ipdb_on_exception
            with launch_ipdb_on_exception():
                appiter = self.app(environ, start_response)
                for item in appiter:
                    yield item

    app.debug = True
    if IPDB:
        app.wsgi_app = IPDBMiddleware(app.wsgi_app)
        app.run(use_debugger=False,
                use_reloader=False,
                host=('0.0.0.0' if public else '127.0.0.1'),
                port=port,
                threaded=False)
    else:
        app.run(host=('0.0.0.0' if public else '127.0.0.1'),
                port=port,
                reloader_type='watchdog',
                threaded=False)