NiceGUI 服务器托管

NiceGUI 服务器托管#

要将你的 NiceGUI 应用部署到服务器上,你需要在你的云基础设施上执行你的 main.py(或包含 ui.run(...) 的任何文件)。例如,你可以通过 pip 安装 NiceGUI Python 包,并使用 systemd 或类似的服务来启动主脚本。在大多数情况下,你会将端口设置为 80(或者如果你想使用 HTTPS,则设置为 443),以便通过 ui.run 命令从外部轻松访问。

一个方便的替代方案是使用我们预构建的多架构 Docker 镜像,其中包含了所有必要的依赖项。使用以下命令,你可以在当前目录中启动脚本 main.py,并将其公开在端口 80 上运行:

docker run -it --restart always \
-p 80:8080 \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
-v $(pwd)/:/app/ \
zauberzeug/nicegui:latest

演示程序假设 main.pyui.run 命令中使用端口 8080(这是默认值)。-d 告诉 docker 在后台运行,--restart always 确保如果应用程序崩溃或服务器重启时容器会重新启动。当然,这也可以写在一个 Docker compose 文件中:

docker-compose.yml

app:
    image: zauberzeug/nicegui:latest
    restart: always
    ports:
        - 80:8080
    environment:
        - PUID=1000 # change this to your user id
        - PGID=1000 # change this to your group id
    volumes:
        - ./:/app/

这个Docker镜像中还有其他实用的功能,比如非root用户执行和信号穿透。想要了解更多细节,我们建议你查看我们的Docker示例

你可以使用FastAPI直接提供SSL证书。在生产环境中,我们也喜欢使用像TraefikNGINX这样的反向代理来为我们处理这些细节。查看我们的开发docker-compose.yml作为示例。

你也可以查看我们用于使用自定义FastAPI应用的演示。这将允许你进行如FastAPI文档中描述的非常灵活的部署。注意,要允许多个worker,需要进行额外的步骤。