docs: 新明

This commit is contained in:
mofeng
2026-01-20 19:53:15 +08:00
parent 01e01430da
commit e7d8c93bff
2 changed files with 278 additions and 57 deletions

299
README.md
View File

@@ -1,81 +1,294 @@
# One-KVM <div align="center">
<img src="https://github.com/mofeng-git/Build-Armbian/assets/62919083/add9743a-0987-4e8a-b2cb-62121f236582" alt="One-KVM Logo" width="300">
<h1>One-KVM</h1>
<p><strong>Rust 编写的开放轻量 IP-KVM 解决方案,实现 BIOS 级远程管理</strong></p>
<p align="center"> <p><a href="README.md">简体中文</a></p>
<strong>开放轻量的 IP-KVM 解决方案,实现 BIOS 级远程管理</strong>
</p>
<p align="center"> [![GitHub stars](https://img.shields.io/github/stars/mofeng-git/One-KVM?style=social)](https://github.com/mofeng-git/One-KVM/stargazers)
<a href="#功能特性">功能特性</a> [![GitHub forks](https://img.shields.io/github/forks/mofeng-git/One-KVM?style=social)](https://github.com/mofeng-git/One-KVM/network/members)
<a href="#快速开始">快速开始</a> [![GitHub issues](https://img.shields.io/github/issues/mofeng-git/One-KVM)](https://github.com/mofeng-git/One-KVM/issues)
<p>
<a href="docs/README.md">📖 技术文档</a>
<a href="#快速开始">⚡ 快速开始</a>
<a href="#功能介绍">📊 功能介绍</a>
<a href="#迁移说明">🔁 迁移说明</a>
</p> </p>
</div>
--- ---
## 介绍 ## 📋 目录
One-KVM 是一个用 Rust 编写的开放轻量的 IP-KVM基于 IP 的键盘、视频、鼠标)解决方案,让你可以通过网络远程控制计算机,包括 BIOS 级别的操作。 - [项目概述](#项目概述)
- [迁移说明](#迁移说明)
- [功能介绍](#功能介绍)
- [快速开始](#快速开始)
- [贡献与反馈](#贡献与反馈)
- [致谢](#致谢)
- [许可证](#许可证)
**当前软件处于开发早期阶段,各种功能和细节还有待完善,欢迎体验,但请勿应用于生产环境。** ## 📖 项目概述
## 功能特性 **One-KVM Rust** 是一个用 Rust 编写的轻量级 IP-KVM 解决方案,可通过网络远程管理服务器和工作站,实现 BIOS 级远程控制。
项目目标:
- **开放**:不绑定特定硬件配置,尽量适配常见 Linux 设备
- **轻量**:单二进制分发,部署过程更简单
- **易用**:网页界面完成设备与参数配置,尽量减少手动改配置文件
> **注意:** One-KVM Rust 目前仍处于开发早期阶段,功能与细节会快速迭代,欢迎体验与反馈。
## 🔁 迁移说明
开发重心正在从 **One-KVM Python** 逐步转向 **One-KVM Rust**
- 如果你在使用 **One-KVM Python基于 PiKVM**,请查看 [One-KVM Python 文档](https://docs.one-kvm.cn/python/)
- One-KVM Rust 相较于 One-KVM Python**尚未适配 CSI HDMI 采集卡**、**不支持 VNC 访问**,仍处于开发早期阶段
## 📊 功能介绍
### 核心功能 ### 核心功能
| 功能 | 说明 | | 功能 | 说明 |
|------|------| |------|------|
| 视频采集 | HDMI USB 采集卡支持,提供 MJPEG/H264/H265/VP8/VP9 视频流 | | 视频采集 | HDMI USB 采集卡支持,提供 MJPEG / WebRTCH.264/H.265/VP8/VP9 |
| 键鼠控制 | USB OTG HID 或 CH340 + CH39329 HID支持绝对/相对鼠标模式 | | 键鼠控制 | USB OTG HID 或 CH340 + CH9329 HID支持绝对/相对鼠标模式 |
| 虚拟U盘 | USB Mass Storage支持 ISO/IMG 镜像挂载和 Ventoy 虚拟U盘模式 | | 虚拟媒体 | USB Mass Storage支持 ISO/IMG 镜像挂载和 Ventoy 虚拟U盘模式 |
| ATX 电源控制 | GPIO 控制电源/重启按钮 | | ATX 电源控制 | GPIO 控制电源/重启按钮 |
| 音频传输 | ALSA 采集 + Opus 编码HTTP/WebRTC | | 音频传输 | ALSA 采集 + Opus 编码HTTP/WebRTC |
### 硬件编码 ### 硬件编码
支持自动检测和选择硬件加速: 支持自动检测和选择硬件加速:
- **VAAPI** - Intel/AMD GPU
- **RKMPP** - Rockchip SoC (**尚未实现**)
- **V4L2 M2M** - 通用硬件编码器 (**尚未实现**)
- **软件编码** - CPU 编码
### 其他特性 - **VAAPI**Intel/AMD GPU
- **RKMPP**Rockchip SoC
- **V4L2 M2M**:通用硬件编码器(尚未实现)
- **软件编码**CPU 编码
- 单二进制部署,依赖更轻量 ### 扩展能力
- Web UI 配置,无需编辑配置文件,多语言支持 (中文/英文)
- 内置 Web 终端 (ttyd),内网穿透支持 (gostc)P2P 组网支持 (EasyTier)
## 快速开始 - Web UI 配置,多语言支持(中文/英文)
- 内置 Web 终端ttyd内网穿透支持gostc、P2P 组网支持EasyTier、RustDesk 协议集成(用于跨平台远程访问能力扩展)
### Docker 运行 ## ⚡ 快速开始
安装方式Docker / DEB 软件包 / 飞牛 NASFPK
### 方式一Docker 安装(推荐)
前提条件:
- Linux 主机已安装 Docker
- 插好 USB HDMI 采集卡
- 启用 USB OTG 或插好 CH340+CH9329 HID 线(用于 HID 模拟)
启动容器:
```bash ```bash
docker run -d --privileged \ docker run --name one-kvm -itd --privileged=true \
--name one-kvm \ -v /dev:/dev -v /sys/:/sys \
-v /dev:/dev \
-v /sys/kernel/config:/sys/kernel/config \
--net=host \ --net=host \
silentwind0/one-kvm silentwind0/one-kvm
``` ```
访问 http://IP:8080 访问 Web 界面:`http://<设备IP>:8080`首次访问会引导创建管理员账户。默认端口HTTP `8080`;启用 HTTPS 后为 `8443`
### 环境变量 #### 常用环境变量Docker
| 变量 | 说明 | 默认值 | | 变量 | 默认值 | 说明 |
|------|------|--------| |------|------|------|
| `ENABLE_HTTPS` | 启用 HTTPS | `false` | | `ENABLE_HTTPS` | `false` | 是否启用 HTTPS`true/false` |
| `HTTP_PORT` | HTTP 端口 | `8080` | | `HTTP_PORT` | `8080` | HTTP 端口(`ENABLE_HTTPS=false` 时生效) |
| `VERBOSE` | 日志级别 (1/2/3) | - | | `HTTPS_PORT` | `8443` | HTTPS 端口(`ENABLE_HTTPS=true` 时生效) |
| `BIND_ADDRESS` | - | 监听地址(如 `0.0.0.0` |
| `VERBOSE` | `0` | 日志详细程度:`1`-v`2`-vv`3`-vvv |
| `DATA_DIR` | `/etc/one-kvm` | 数据目录(等价于 `one-kvm -d <DIR>`,优先级高于 `ONE_KVM_DATA_DIR` |
> 说明:`--privileged=true` 和挂载 `/dev`、`/sys` 是硬件访问所需配置,当前版本不可省略。
>
> 兼容性:同时支持旧变量名 `ONE_KVM_DATA_DIR`。
>
> HTTPS未提供证书时会自动生成默认自签名证书。
>
> Ventoy若修改 `DATA_DIR`,请确保 Ventoy 资源文件位于 `${DATA_DIR}/ventoy``boot.img`、`core.img`、`ventoy.disk.img`)。
## 致谢 ### 方式二DEB 软件包安装
感谢以下项目 前提条件
- [PiKVM](https://github.com/pikvm/pikvm) - 原始 Python 版 IP-KVM - Debian 11+ / Ubuntu 22+
- [RustDesk](https://github.com/rustdesk/rustdesk) - hwcodec 硬件编码库 - 插好 USB HDMI 采集卡、HID 线OTG 或 CH340+CH9329
- [ttyd](https://github.com/tsl0922/ttyd) - Web 终端
- [EasyTier](https://github.com/EasyTier/EasyTier) - P2P 组网
## 许可证 安装步骤:
待定 1. 从 GitHub Releases 下载适合架构的 `one-kvm_*.deb`[Releases](https://github.com/mofeng-git/One-KVM/releases)
2. 安装:
```bash
sudo apt update
sudo apt install ./one-kvm_*_*.deb
```
访问 Web 界面:`http://<设备IP>:8080`
### 方式三:飞牛 NASFPK安装
前提条件:
- 飞牛 NAS 系统(目前仅支持 x86_64 架构)
- 插好 USB HDMI 采集卡、CH340+CH9329 HID 线
安装步骤:
1. 从 GitHub Releases 下载 `*.fpk` 软件包:[Releases](https://github.com/mofeng-git/One-KVM/releases)
2. 在飞牛应用商店选择“手动安装”,导入 `*.fpk`
访问 Web 界面:`http://<设备IP>:8420`
## 报告问题
如果您发现了问题,请:
1. 使用 [GitHub Issues](https://github.com/mofeng-git/One-KVM/issues) 报告
2. 提供详细的错误信息和复现步骤
3. 包含您的硬件配置和系统信息
## 赞助支持
本项目基于多个优秀开源项目进行二次开发,作者投入了大量时间进行测试和维护。如果您觉得这个项目有价值,欢迎通过 **[为爱发电](https://afdian.com/a/silentwind)** 支持项目发展。
### 感谢名单
<details>
<summary><strong>点击查看感谢名单</strong></summary>
- 浩龙的电子嵌入式之路
- Tsuki
- H_xiaoming
- 0蓝蓝0
- fairybl
- Will
- 浩龙的电子嵌入式之路
- 自.知
- 观棋不语٩ ི۶
- 爱发电用户_a57a4
- 爱发电用户_2c769
- 霜序
- 远方(闲鱼用户名:小远技术店铺)
- 爱发电用户_399fc
- 斐斐の
- 爱发电用户_09451
- 超高校级的錆鱼
- 爱发电用户_08cff
- guoke
- mgt
- 姜沢掵
- ui_beam
- 爱发电用户_c0dd7
- 爱发电用户_dnjK
- 忍者胖猪
- 永遠の願い
- 爱发电用户_GBrF
- 爱发电用户_fd65c
- 爱发电用户_vhNa
- 爱发电用户_Xu6S
- moss
- woshididi
- 爱发电用户_a0fd1
- 爱发电用户_f6bH
- 码农
- 爱发电用户_6639f
- jeron
- 爱发电用户_CN7y
- 爱发电用户_Up6w
- 爱发电用户_e3202
- 一语念白
- 云边
- 爱发电用户_5a711
- 爱发电用户_9a706
- T0m9ir1SUKI
- 爱发电用户_56d52
- 爱发电用户_3N6F
- DUSK
- 飘零
- .
- 饭太稀
-
- ......
</details>
### 赞助商
本项目得到以下赞助商的支持:
**CDN 加速及安全防护:**
- **[Tencent EdgeOne](https://edgeone.ai/zh?from=github)** - 提供 CDN 加速及安全防护服务
![Tencent EdgeOne](https://edgeone.ai/media/34fe3a45-492d-4ea4-ae5d-ea1087ca7b4b.png)
**文件存储服务:**
- **[Huang1111公益计划](https://pan.huang1111.cn/s/mxkx3T1)** - 提供免登录下载服务
**云服务商**
- **[林枫云](https://www.dkdun.cn)** - 赞助了本项目宁波大带宽服务器
![林枫云](https://docs.one-kvm.cn/img/36076FEFF0898A80EBD5756D28F4076C.png)
林枫云主营国内外地域的精品线路业务服务器、高主频游戏服务器和大带宽服务器。

View File

@@ -4,36 +4,44 @@
set -e set -e
# Start one-kvm with default options # Start one-kvm with default options.
# Additional options can be passed via environment variables # Additional options can be passed via environment variables.
EXTRA_ARGS="-d /etc/one-kvm"
# Data directory (prefer DATA_DIR, keep ONE_KVM_DATA_DIR for backward compatibility)
DATA_DIR="${DATA_DIR:-${ONE_KVM_DATA_DIR:-/etc/one-kvm}}"
ARGS=(-d "$DATA_DIR")
# Enable HTTPS if requested # Enable HTTPS if requested
if [ "${ENABLE_HTTPS:-false}" = "true" ]; then if [ "${ENABLE_HTTPS:-false}" = "true" ]; then
EXTRA_ARGS="$EXTRA_ARGS --enable-https" ARGS+=(--enable-https)
fi fi
# Custom bind address # Custom bind address
if [ -n "$BIND_ADDRESS" ]; then if [ -n "$BIND_ADDRESS" ]; then
EXTRA_ARGS="$EXTRA_ARGS -a $BIND_ADDRESS" ARGS+=(-a "$BIND_ADDRESS")
fi fi
# Custom port # Custom port
if [ -n "$HTTP_PORT" ]; then if [ -n "$HTTP_PORT" ]; then
EXTRA_ARGS="$EXTRA_ARGS -p $HTTP_PORT" ARGS+=(-p "$HTTP_PORT")
fi
# Custom HTTPS port
if [ -n "$HTTPS_PORT" ]; then
ARGS+=(--https-port "$HTTPS_PORT")
fi fi
# Verbosity level # Verbosity level
if [ -n "$VERBOSE" ]; then if [ -n "$VERBOSE" ]; then
case "$VERBOSE" in case "$VERBOSE" in
1) EXTRA_ARGS="$EXTRA_ARGS -v" ;; 1) ARGS+=(-v) ;;
2) EXTRA_ARGS="$EXTRA_ARGS -vv" ;; 2) ARGS+=(-vv) ;;
3) EXTRA_ARGS="$EXTRA_ARGS -vvv" ;; 3) ARGS+=(-vvv) ;;
esac esac
fi fi
echo "[INFO] Starting one-kvm..." echo "[INFO] Starting one-kvm..."
echo "[INFO] Extra arguments: $EXTRA_ARGS" echo "[INFO] Arguments: ${ARGS[*]}"
# Execute one-kvm # Execute one-kvm
exec /usr/bin/one-kvm $EXTRA_ARGS exec /usr/bin/one-kvm "${ARGS[@]}"