在“本地”服务器(具有外部访问权限)上安全地部署 Dash 应用程序

use*_*373 8 deployment web-applications server plotly-dash

我参与了一个项目,我想为其部署 Dash Web 应用程序,托管在项目合作伙伴之一的服务器上。有没有办法auth通过 URL 与项目的其他成员安全地(我猜是基本的 dash )共享这个 Dash 应用程序?

我知道这可以通过 Heroku 进行部署,但由于可能会担心通过此第三方服务移动数据,因此更理想的设置是通过“本地”(到项目)服务器托管应用程序。

有效地

  • Dash 应用程序是通过git“本地”和 24/7 运营的服务器构建和部署的
  • 并且,项目合作伙伴可以通过提供的 URL 访问该应用程序

我确信这方面有一些东西,但我似乎无法确定最适合我们需求的部署方法。

Bra*_*ady 14

如果您在 0.0.0.0:8050 上运行 dash 应用程序,那么您的合作伙伴可以在其 Web 浏览器上访问您计算机的 ip_address:8050,从而从同一 wifi 网络访问该应用程序。

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

if __name__ == '__main__':
app.run_server(host="0.0.0.0", port="8050")
Run Code Online (Sandbox Code Playgroud)

因此,如果您的本地 IP 地址是 192.168.7.98,您的同事可以通过从同一 WiFi 网络访问 192.168.7.98:8050 来访问正在运行的 dash 应用程序。这也是测试移动布局的好方法。在 0.0.0.0 上启动 dash,并使用与上述相同的方法从手机访问它。

以下是 run_server 方法中可用的所有选项:

    def run_server(
        self,
        host=os.getenv("HOST", "127.0.0.1"),
        port=os.getenv("PORT", "8050"),
        proxy=os.getenv("DASH_PROXY", None),
        debug=False,
        dev_tools_ui=None,
        dev_tools_props_check=None,
        dev_tools_serve_dev_bundles=None,
        dev_tools_hot_reload=None,
        dev_tools_hot_reload_interval=None,
        dev_tools_hot_reload_watch_interval=None,
        dev_tools_hot_reload_max_retry=None,
        dev_tools_silence_routes_logging=None,
        dev_tools_prune_errors=None,
        **flask_run_options):
Run Code Online (Sandbox Code Playgroud)