Skip to main content

openhpc_webui

openhpc_webui 是面向高校、科研机构和企业智算中心的轻量级中文管理门户。安装时可选择本机 Linux 用户/PAM 或 OpenLDAP 作为身份后端,并将 Slurm 账户与关联、分区和节点配置、作业状态及输出查看集中到同一个 Web 界面,适合内网和离线环境。

当前版本:0.4.0

功能概览

模块 主要能力
系统总览 身份用户数、活动作业、空闲节点、近期作业和分区状态
用户管理 身份用户增删改、禁用、SSH 密钥、存储配额、核时/卡时和作业报表
组管理 用户组创建、编辑、删除及成员信息查看
账户管理 Slurm 账户创建、编辑和删除
Slurm 用户管理 当前集群用户列表、创建、默认账户修改及移除全部关联
Slurm 用户关联 Slurm Association、QOS、默认 QOS、分区和 TRES Minutes 管理
分区管理 Slurm 分区配置、节点状态统计及配置重载
节点管理 节点配置维护、Drain、Resume 和状态查看
作业管理 活动作业、近期完成作业、详情、取消及标准输出/错误查看
文件管理 Home/系统路径分页浏览、隐藏项切换、文本编辑、上传下载、新建、重命名和删除
Web 终端 基于 xterm.js 的交互式 Shell、用户 AI Provider/API Key 配置、可选浏览器 AES-GCM 加密持久化、窗口自适应、悬浮收缩、离开确认、会话超时和断线清理
权限管理 门户管理员授权与撤销

页面资源随项目提供,不依赖外部 CDN。列表采用固定表头、对齐的数字和状态列,并在内容溢出时提供横向滚动。

权限模型

能力 管理员 普通用户
系统总览和管理页面 是 否
查看全部活动及近期完成作业 是 是
查看作业详情 是 是
查看作业输出 任意作业 仅自己的作业
取消作业 任意作业 仅自己的作业
文件管理范围 默认进入个人 Home,可访问系统根目录 /(沿用门户进程权限) 系统 Home 目录(页面中映射为 /),按 Linux 用户 UID/GID/附加组权限操作
Web 终端身份与目录 当前同名 Linux 系统用户及其 Home 当前同名 Linux 系统用户及其 Home
修改自己的系统密码 是 是

管理员由 ADMIN_USERS 配置,也可以在权限管理页面在线维护。普通用户访问管理员页面时会被重定向到作业页面。

界面预览

登录

openhpc_webui 登录界面

系统总览

openhpc_webui 系统总览

用户管理

openhpc_webui 用户管理

作业管理

openhpc_webui 作业管理

技术栈

  • Python 3.9+
  • FastAPI、Jinja2 和 Uvicorn
  • Linux NSS/PAM 或 ldap3 / OpenLDAP
  • Slurm CLI:sinfo、squeue、sacct、scontrol、sacctmgr、scancel
  • uv 依赖与环境管理
  • Tailwind CSS CLI 4.x(仅在修改模板或前端脚本中的工具类后重新构建)

项目结构

仓库目录使用 openhpc-webui,生产安装目录统一为 /srv/openhpc-webui;Python 包和命令行入口使用 openhpc_webui。Supervisor 配置与完整步骤见生产部署指南。

openhpc-webui/
├── openhpc_webui/
│   ├── application.py      # FastAPI 路由与接口
│   ├── cli.py              # 命令行入口
│   ├── core/               # 配置、认证和公共能力
│   ├── models/             # 请求与响应模型
│   └── services/           # 系统身份、Slurm 和其他集成
├── templates/              # Jinja2 页面模板
├── static/                 # 离线 CSS、JavaScript 和图标
├── tests/                  # 自动化测试
├── docs/                   # 使用、部署和运维文档
├── env.example             # 环境变量示例
└── pyproject.toml          # 项目元数据与依赖

环境要求

运行门户的主机需要:

  • 使用系统账户后端时,本机已配置 PAM login 服务以及 useradd、usermod、userdel、groupadd 等账户工具;使用 LDAP 后端时,主机能够访问 OpenLDAP;
  • 安装 Slurm 客户端命令,并能连接 Slurm 控制端;
  • 对节点和分区配置文件具有业务所需的读写权限;
  • 使用 NFS 配额时安装并配置 quota / setquota;
  • 生产环境具备 Nginx、Supervisor 或等效的进程管理能力。

Web 管理员身份不会绕过 Linux 文件权限或 Slurm 权限。

快速开始

从 PyPI 安装固定版本:

python3 -m venv .venv
.venv/bin/python -m pip install "openhpc-webui==0.4.0"

PyPI 安装不包含仓库级 env.example 和部署示例,完整配置及 systemd、升级、离线 安装方法见PyPI 安装与使用指南。

从源码启动开发环境:

uv sync
uv run uvicorn openhpc_webui.application:app --reload --port 6827

浏览器访问 http://127.0.0.1:6827,首次启动会自动进入安装向导,选择系统账户或 LDAP、 配置 Slurm 和首位管理员,并自动生成 Session 密钥。也可以使用项目命令启动监听在 0.0.0.0:6827 的服务:

uv run openhpc_webui

系统配置

安装后的日常配置在管理员「系统设置」页面维护,并以权限 0600 原子写入 .env。 敏感值只显示“已配置”状态,不会回传浏览器。管理员列表、终端 AI 和终端公告分别由 现有的权限管理及系统设置卡片维护。

以下配置均可通过安装向导或系统设置页面管理:

配置项 用途
IDENTITY_BACKEND 身份后端;安装向导可选择 system 或 ldap
SYSTEM_USER_MIN_UID 用户管理页面显示的最低 UID,默认 1000
SECRET_KEY Session 签名密钥,生产环境不少于 32 个随机字符
AUTHORIZED 是否启用登录认证,生产环境必须为 True
ADMIN_USERS 管理员用户名,多个值使用英文逗号分隔
JOB_OUTPUT_MAX_BYTES 作业输出单次尾部读取上限,默认 1048576 字节(1 MiB)
FILE_UPLOAD_MAX_MB 文件管理单个上传文件大小上限,默认 1024 MB
FILE_UPLOAD_MAX_CONCURRENT 每个应用进程同时处理的上传数,默认 2
FILE_UPLOAD_TIMEOUT_SECONDS 上传请求体接收与处理超时,默认 3600 秒
FILE_EDIT_MAX_KB 在线 UTF-8 文本编辑大小上限,默认 2048 KB
TERMINAL_ENABLED 是否启用 xterm.js Web 终端,默认启用;认证关闭时始终不可用
TERMINAL_IDLE_MINUTES 终端无输入输出的自动断开时间,默认 30 分钟
TERMINAL_MAX_SESSIONS 每个用户最多同时打开的终端数,默认 2
TERMINAL_AI_ENABLED 新终端连接是否默认启用 AI 对话,默认关闭;用户可在当前连接中覆盖
TERMINAL_AI_PROVIDER 模型服务类型:deepseek、openai、claude、glm、vllm、sglang 或 openai-compatible
TERMINAL_AI_BASE_URL API 根地址;OpenAI、Claude、GLM 均有内置官方默认地址
TERMINAL_AI_MODEL 服务端可用的模型名称
TERMINAL_AI_API_KEY 模型服务密钥;本地服务可按实际鉴权配置留空
TERMINAL_AI_TIMEOUT_SECONDS 单次模型请求超时,范围 5–300 秒,默认 60 秒
SLURM_DEFAULT_ACCOUNT 创建身份用户时使用的默认 Slurm 账户
SLURM_CLUSTER_NAME WebUI 管理的 Slurm ClusterName,必须显式配置且与本机配置一致
SLURM_CONFIG_DIR 节点与分区配置文件目录,默认 /etc/slurm

.env 仍作为持久化与无人值守部署的兼容入口;已经提供有效 SECRET_KEY 的旧部署会被 自动视为已安装,不会跳转到安装向导。认证模式、Session 密钥和 HTTPS Cookie 设置修改后 需要重启服务。

应用以启动目录的 .env 为统一读写配置文件,也可通过绝对路径 OPENHPC_WEBUI_ENV_FILE 指定位置;权限管理、终端设置和安装向导会写入同一个文件。删除身份用户会使其现有登录会话失效。

无人值守部署还可在 .env 中设置 SYSTEM_ACCOUNT_COMMAND_TIMEOUT_SECONDS(默认 30 秒)、 SLURM_COMMAND_TIMEOUT_SECONDS (默认 15 秒)和 SSH_KEYGEN_TIMEOUT_SECONDS(默认 30 秒)。这些值限制在 1–300 秒, 用于防止后端服务或 CLI 卡住请求线程;修改后需要重启服务。

完整配置说明见技术指南。

生产部署

生产环境建议由 Supervisor 管理 Uvicorn,并仅监听 127.0.0.1:6827;由 Nginx 提供 HTTPS 和反向代理。不要直接将开发服务器暴露到公网。

部署步骤、自签发证书、服务管理和升级方法见生产部署指南。

文档

验证与开发

./scripts/build_tailwind.sh
uv run python -m unittest discover -s tests
uv run python -m compileall -q openhpc_webui

Tailwind 构建入口为 tailwind.css,只扫描 templates/ 和 static/*.js 中实际使用的类,并将压缩后的离线样式写入 static/all-tailwind-classes-full-min.css。

提交界面变更前,还应手动检查登录、用户、组、账户、Slurm 用户关联、分区、节点、作业和权限页面,并附上桌面与窄屏截图。

安全建议

  • 仅在受控内网开放门户,并使用防火墙限制来源。
  • 生产环境启用 HTTPS,并将 SESSION_HTTPS_ONLY 设为 True。
  • 不要提交 .env、Session 密钥、历史 LDAP 凭据或真实用户数据。
  • 单节点系统账户管理需要 root;只在受控主机运行,并限制门户网络入口和管理员名单。
  • 定期审计管理员列表、Slurm 操作和应用日志。

本项目是集群管理辅助工具,不替代 Slurm、Linux 身份系统、监控平台或审计系统本身。

Metadata

Release files for openhpc-webui 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openhpc-webui 0.4.0
File Size Uploaded Provenance
openhpc_webui-0.4.0.tar.gz 2.2 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for openhpc-webui 0.4.0
File Interpreter ABI Platform
openhpc_webui-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.6 MB

Release files / openhpc_webui-0.4.0.tar.gz

Download URL openhpc_webui-0.4.0.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
5d9d16aa6494457ed65072f679c423771c294a531f9667d5972dbaf35a3efb06
BLAKE2b-256 checksum
How to use checksums
b79ded480417fafa559af009598ce6e1c4a374a948f3ff4206da77b36ea37f03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / openhpc_webui-0.4.0-py3-none-any.whl

Download URL openhpc_webui-0.4.0-py3-none-any.whl
Size 422.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fbcc0dbbd1323fa374626bc1d62ab9fc21644736ef87e818a4709274118b774f
BLAKE2b-256 checksum
How to use checksums
5d88b6dbeec8881b1b4ddd0c1234b700bb72c3c3ff1cafa468a3a7b4f4324424
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for openhpc-webui 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for openhpc_webui-0.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page