本文档说明桌面版与服务器版的兼容平台、下载形态与部署方式,并提供 Linux Server 的完整部署与连接流程。
| 文件名模式 | 平台 | GPU | 形态 | 一键运行 |
|---|---|---|---|---|
*-win-cuda-x64.zip |
Windows x64 | NVIDIA | GUI 桌面版 | ✅ |
*-win-vulkan-x64.zip |
Windows x64 | AMD / Intel / NVIDIA | GUI 桌面版 | ✅ |
*-arm64.dmg |
macOS Apple Silicon | Apple GPU (Metal) | GUI 桌面版 | ✅ |
*.dmg(无 arm64 后缀) |
macOS Intel | CPU | GUI 桌面版 | ✅ |
*.AppImage |
Linux Desktop x64 | Vulkan | GUI 桌面版 | ✅ |
murasaki-server-*.tar.gz |
Linux Server x64 | CUDA / Vulkan | 远程 API 服务 | ✅ |
说明:GUI 桌面版为完整图形界面;Server 包提供 /api/v1/* 远程接口供 GUI 连接。
| 显卡类型 | 下载包 | 后端 | 备注 |
|---|---|---|---|
| NVIDIA | *-win-cuda-x64.zip |
CUDA | 需要 NVIDIA 驱动支持 CUDA |
| AMD / Intel | *-win-vulkan-x64.zip |
Vulkan | 无需 CUDA |
运行步骤:
- 下载匹配显卡的压缩包。
- 解压后运行
Murasaki Translator.exe。 - 首次启动会自动检测 GPU 并选择对应后端。
| 机型 | 下载包 | 后端 | 备注 |
|---|---|---|---|
| Apple Silicon | *-arm64.dmg |
Metal | 推荐 |
| Intel | *.dmg |
CPU | 速度较慢 |
运行步骤:
- 下载对应架构的
.dmg。 - 拖入 Applications。
- 首次运行请右键应用 → “打开” 以通过 Gatekeeper。
chmod +x Murasaki-Translator-*.AppImage
./Murasaki-Translator-*.AppImage说明:AppImage 默认使用 Vulkan 后端,适配 NVIDIA / AMD / Intel。若发布包内包含 linux-cuda 且检测到 NVIDIA GPU,会优先使用 CUDA。CUDA 版 llama-server 需要手动准备时,请参考第 4 节放置到 middleware/bin/linux-cuda。如提示缺少 FUSE 运行库,请安装系统对应的 FUSE 包(例如 libfuse2)。
远程服务提供 GUI 全功能链路(/api/v1/*)与可选 OpenAI 兼容链路(/v1/*)。适用于 GPU 服务器、云平台、多设备协作或局域网共享。
| 部署方式 | 适用场景 | 说明 |
|---|---|---|
| Release 包 | 生产 / 快速部署 | 下载 murasaki-server-*.tar.gz 即可启动 |
| 源码运行 | 开发 / 自定义 | 直接使用仓库代码与 Python 环境 |
适用于主流云 GPU 平台与自建机房环境。整体流程如下:
- 创建 GPU 实例(Ubuntu 20.04/22.04 推荐),确认驱动可用:
nvidia-smi。 - 准备持久化磁盘(模型较大,建议放在独立数据盘或持久卷)。
- 选择访问方式:
- 平台端口映射:将容器/实例的
8000(可选8001)映射到公网端口或平台域名。 - 公网直连:安全组放行端口,并用
--host 0.0.0.0监听。 - 反向代理:绑定域名 + TLS,转发 WebSocket(
/api/v1/ws)。
- 平台端口映射:将容器/实例的
- 服务端由 FastAPI 驱动的 API Server 提供接口,内部通过
translation_worker常驻管理llama-server(llama.cpp)。 - 后端选择逻辑:
- 检测到 NVIDIA GPU 且存在
middleware/bin/linux-cuda/llama-server→ 使用 CUDA。 - 否则使用
middleware/bin/linux-vulkan/llama-server。
- 检测到 NVIDIA GPU 且存在
- Linux CUDA 版
llama-server需要手动准备(从 llama.cpp Release 获取对应 CUDA 版本),未提供时会自动回退 Vulkan。 - OpenAI 兼容接口为可选代理层,需显式开启。
MODEL_DIR="$HOME/murasaki-models"
mkdir -p "$MODEL_DIR"
MODEL_PAGE_URL="https://huggingface.co/Murasaki-Project/Murasaki-14B-v0.2-GGUF/blob/main/Murasaki-14B-v0.2-IQ4_XS.gguf"
MODEL_URL="${MODEL_PAGE_URL}?download=1"
MODEL_PATH="$MODEL_DIR/Murasaki-14B-v0.2-IQ4_XS.gguf"
curl -L "$MODEL_URL" -o "$MODEL_PATH"API_KEY='replace-with-strong-key'
curl -fsSL https://github.com/soundstarrain/Murasaki-Translator/releases/latest/download/murasaki-server-linux-x64.tar.gz | tar -xz
cd murasaki-server
nohup ./start.sh --host 127.0.0.1 --port 8000 --model "$MODEL_PATH" --api-key "$API_KEY" > server.log 2>&1 &start.sh 会自动创建虚拟环境并安装依赖。
Linux / macOS:
python3 -m venv middleware/.venv
source middleware/.venv/bin/activate
pip install -r middleware/requirements.txt
pip install -r middleware/server/requirements.txt
bash middleware/server/start_server.sh --host 127.0.0.1 --port 8000 --model /path/to/model.gguf --api-key your-keyWindows PowerShell:
python -m venv middleware/.venv
middleware/.venv/Scripts/activate
pip install -r middleware/requirements.txt
pip install -r middleware/server/requirements.txt
python middleware/server/api_server.py --host 127.0.0.1 --port 8000 --model C:\path\to\model.gguf --api-key your-key提示:服务端启动时若未提供 --api-key,会自动生成随机 Key 并输出到日志中。
Release 包示例:
./start.sh --host 127.0.0.1 --port 8000 --model "$MODEL_PATH" --api-key "$API_KEY" --enable-openai-proxy --openai-port 8001源码模式(Linux / macOS)示例:
bash middleware/server/start_server.sh --host 127.0.0.1 --port 8000 --model /path/to/model.gguf --api-key your-key --enable-openai-proxy --openai-port 8001OpenAI 兼容接口地址:http://<host>:8001/v1/*。鉴权与 /api/v1/* 共用同一 API Key。
建议默认使用本机回环地址并通过 SSH 隧道访问,避免直接暴露公网端口:
ssh -N -L 8000:127.0.0.1:8000 user@your-server如需局域网或公网访问,请将 --host 设为 0.0.0.0 并在防火墙中仅放行必要端口,同时务必设置强度足够的 API Key。
适用于需要公网直连的场景。请确保安全组/防火墙只放行必要端口,并设置强度足够的 API Key。
API_KEY='replace-with-strong-key'
./start.sh --host 0.0.0.0 --port 8000 --model "$MODEL_PATH" --api-key "$API_KEY"访问方式示例:
Server URL:http://<your-public-ip>:8000API Key:API_KEY
注意:如需同时启用 OpenAI 兼容接口,还需放行 --openai-port 对应端口。
适用于需要 HTTPS、域名或统一入口的场景。反向代理需要转发 WebSocket(/api/v1/ws)并保留升级头。
Nginx 示例:
server {
listen 443 ssl;
server_name your.domain.com;
ssl_certificate /etc/ssl/certs/your.crt;
ssl_certificate_key /etc/ssl/private/your.key;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}Caddy 示例:
your.domain.com {
reverse_proxy 127.0.0.1:8000 {
header_up Connection "upgrade"
header_up Upgrade {http.request.header.Upgrade}
}
}如果使用公网直连或反向代理,请确保端口已放行或完成网关映射。以下为常见示例(按发行版自行选择):
UFW(Ubuntu 系):
sudo ufw allow 8000/tcp
sudo ufw allow 8001/tcpfirewalld(CentOS / Rocky / AlmaLinux):
sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --permanent --add-port=8001/tcp
sudo firewall-cmd --reload云厂商场景还需在安全组放行对应端口。
在 GUI 的远程连接面板填写:
Server URL:http://127.0.0.1:8000(或服务器实际地址)API Key:部署时设置的 Key
API_KEY='replace-with-strong-key'
curl -fsS http://127.0.0.1:8000/health
curl -fsS -H "Authorization: Bearer $API_KEY" http://127.0.0.1:8000/api/v1/status
curl -fsS -H "Authorization: Bearer $API_KEY" http://127.0.0.1:8000/api/v1/models/api/v1/models 返回口径说明:
- 默认会扫描
middleware/models/*.gguf。 - 若通过
--model(环境变量MURASAKI_DEFAULT_MODEL)指定了有效.gguf文件,即使不在默认目录,也会出现在列表中。 - 同一路径会自动去重(避免默认目录与
--model重复返回)。
为安全起见,/api/v1/translate 仅允许访问服务端 uploads/ 或 outputs/ 目录中的文件,下载接口也只会返回 outputs/ 目录下的产物。
MODEL_PAGE_URL/MODEL_URL:换成你要下载的模型地址MODEL_PATH:模型实际保存路径API_KEY:换成强度足够的密钥user@your-server:你的 SSH 用户名与服务器地址--port:端口冲突时请更换--host:需要局域网/公网访问时可改为0.0.0.0
系统会根据平台与 GPU 自动选择 llama-server 二进制。Linux 在检测到 NVIDIA 但缺失 CUDA 二进制时会回退到 Vulkan;Windows 需提供与硬件匹配的 CUDA / Vulkan 版本。可将二进制放入下列目录:
| 平台 | 目录 | 二进制 |
|---|---|---|
| Windows NVIDIA | middleware/bin/win-cuda |
llama-server.exe |
| Windows AMD / Intel | middleware/bin/win-vulkan |
llama-server.exe |
| macOS Apple Silicon | middleware/bin/darwin-metal |
llama-server |
| macOS Intel | middleware/bin/darwin-x64 |
llama-server |
| Linux NVIDIA | middleware/bin/linux-cuda |
llama-server |
| Linux AMD / Intel | middleware/bin/linux-vulkan |
llama-server |
兼容旧结构:如果你使用的是 llama-*/ 旧目录,程序仍可自动识别。Linux / macOS 需要确保二进制具备可执行权限(chmod +x)。
| 问题 | 解决方案 |
|---|---|
| 401 / 403 鉴权失败 | 确认 GUI 内 API Key 与服务端一致,并使用 Authorization: Bearer <key> |
| 端口占用导致启动失败 | 修改 --port,或释放占用的 8000/8001 端口 |
| Linux AppImage 无法启动 | 安装 FUSE 运行库(例如 libfuse2) |
提示找不到 llama-server |
检查 middleware/bin/<platform> 目录与文件权限 |
| WebSocket 实时日志不可用 | 反向代理需放行 WebSocket Upgrade 头 |