Files
mixly3-server/README_VPS.md

113 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Mixly 3.0 服务器部署手册 (Debian VPS)
本项目已实现单仓库镜像化部署,包含所有前端资源、板卡配置及 250+ 常用 Arduino 扩展库。
## 1. 前置依赖安装
在 Debian/Ubuntu 上执行:
```bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装 Git, Node.js (建议 18+), Python3
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y git nodejs python3 python3-pip
# 串口访问权限设置 (非常重要:否则无法烧录/上传)
sudo usermod -a -G dialout $USER
# 或者临时给予权限
# sudo chmod 666 /dev/ttyUSB*
```
## 2. 一键部署流程
```bash
# 1. 克隆全量仓库
git clone https://gitea.1806999.xyz/18069996051/mixly3-server.git
cd mixly3-server
# 2. 安装依赖并初始化运行环境
npm install
# 3. 自动安装 Linux 版 Arduino 编译器 (自动重置为 Linux 二进制)
npm run arduino:install
# 4. 生成 SSL 证书
npm run cert:generate
# 5. 生成生产构建
npm run build:prod
# 6. 正式启动 (开发模式)
npm start
```
## 4. 生产环境建议 (进程守护与反代)
### 4.1 使用 pm2 管理进程
为了保证服务器断开连接后 Mixly 依然运行,建议使用 `pm2`:
```bash
sudo npm install -g pm2
pm2 start dist/bundle.cjs --name "mixly3"
pm2 save
pm2 startup
```
### 4.2 使用 Nginx 反代 (推荐)
如果你想通过域名访问并使用标准端口 (80/443),请参考以下 Nginx 配置:
```nginx
server {
listen 80;
server_name 你的域名;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name 你的域名;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/key.pem;
# 核心配置:处理 WebSocket 和大文件上传
location / {
proxy_pass https://127.0.0.1:7100;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
# 允许上传大文件 (如库同步或大项目)
client_max_body_size 100M;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
# 处理 Socket.io 特殊路径
location /mixly-socket/ {
proxy_pass https://127.0.0.1:7100;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
```
## 5. 跨平台特性说明
- **路径自动适配**:本项目已重构 `config.js`,部署时会自动识别 Linux 路径,无需手动修改 `config.json`
- **库文件全内置**`arduino-libs` 已包含在 Git 仓库中,`git clone` 后即可直接编译带库的工程。
## 6. 常见问题排查
- **HTTPS 访问**:默认运行在 `https://你的IP:7100`
- **反向代理配置**:如果使用 Nginx 反代,请务必处理好的 WebSocket (Upgrade) 头,否则页面无法连接。
- **上传报错**:如果提示权限不足,请确认当前用户是否在 `dialout` 组,或尝试 `root` 运行(不推荐)。
- **Python 命令**:系统必须能识别 `python3` 命令。