我已经制作了“streamlit仪表板应用程序”,我需要将其部署在我团队的pvt linux服务器上。我理解运行“streamlit run app.py” - 给我 URL,初创公司中有权访问服务器的每个人都可以使用该 URL 和端口 8501 访问它。
我使用了“nohup”cmd 并确保进程没有被终止,但我不确定这是否是正确的方法?
我需要像任何其他 Web 应用程序一样托管它,端口号 8501 在网址栏上不可见。
我进行了广泛的搜索,但大部分内容只是关于在 Heroku 和 Streamlit 托管上托管它。
抱歉,如果我对网络开发和托管很天真,但这就是我选择 stremalit 的原因,即使我得到方向,我也能找到自己的路。
托管说明可在 https://discuss.streamlit.io/t/streamlit-deployment-guide-wiki/5099
获取那里有不止几个链接。
看起来与您的需求最相关的一个
是独立可执行文件 --> nginx -->
https://discuss.streamlit.io/t/streamlit-docker-nginx-ssl-https/2195/5
这会让 nginx 担心不守规矩的互联网客户端, 密码认证、IP白名单、 https 证书等, 将请求代理到您的端口 8501。
或者,请注意
$ streamlit run --help
评论--server.port INTEGER
。
您还可以通过设置来调整
环境变量STREAMLIT_SERVER_PORT
。
如果您尝试将 URL 修改为 localhost,可以通过更改 Streamlit 配置来完成。 Streamlit 提供了四种不同的方式来设置配置选项。请参考:https://docs.streamlit.io/library/advanced-features/configuration
以下是可用于配置 Streamlit 应用程序的四种方法中的两种。
方法一: 使用 config.toml 文件。将此文件放在名为 .streamlit 的文件夹中,该文件夹应与您尝试运行的 .py 文件位于同一文件夹中。
文件夹结构:
ParentFolder
|__ main.py (# your python script )
|__ .streamlit
|__ config.toml
配置文件
[server]
port = 7777
baseUrlPath = "/url_path/"
[browser]
serverAddress = "0.0.0.0"
方法二:在命令行中添加配置参数。
streamlit运行main.py --server.port 7777 --server.baseUrlPath /url_path/ --browser.serverAddress = '0.0.0.0'
上述配置将在 URL 上运行您的应用程序:http://localhost:7777/url_path/
我有点晚了,但这个问题也困扰了我一段时间。到目前为止,我最好的办法是使用 redir 将传入流量从端口 80 重定向到端口 8105 :
sudo apt-get install redir
sudo redir --laddr=0.0.0.0 --lport=80 --caddr=0.0.0.0 --cport=8501
然后打开 80 端口,瞧...