这是部署 Mixin 大群项目的完整步骤,涵盖后端和前端的部署。
环境准备
- 服务器准备:
• 一台 2C4G 的服务器 (初期足够),如阿里云、腾讯云或 AWS。
• 操作系统:Ubuntu 20.04 或 CentOS 7+。
- 安装依赖:
在服务器上安装 PostgreSQL 和 Golang。
`# 安装 PostgreSQL (以 Ubuntu 为例)`
`sudo apt update && sudo apt install postgresql postgresql-contrib`
`# 安装 Golang`
`wget https://golang.org/dl/go1.21.1.linux-amd64.tar.gz`
`sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz`
`echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc`
- 创建 PostgreSQL 数据库:
sudo -u postgres psql
CREATE DATABASE mixin_supergroup;
CREATE USER mixin_user WITH ENCRYPTED PASSWORD 'yourpassword';
GRANT ALL PRIVILEGES ON DATABASE mixin_supergroup TO mixin_user;
后端部署
- 克隆代码:
git clone https://github.com/MixinNetwork/supergroup.mixin.one.git
cd supergroup.mixin.one
- 配置 YAML 文件:
• 复制 config.tpl.yaml 为 config.yaml:
cp ./config/config.tpl.yaml ./config/config.yaml
• 编辑 config.yaml,填写 Mixin 的 Client ID、Secret、Pin Token 等信息,这些信息可以从 Mixin Dashboard 生成。
- 导入数据库 schema:
sudo -u postgres psql -d mixin_supergroup -f ./models/schema.sql
- 编译打包后端:
• 进入项目根目录,使用 Golang 构建可执行文件:
go build -o supergroup.mixin.one .
- 测试启动服务:
• 启动 API 服务:
./supergroup.mixin.one -service http -e development
• 启动消息服务:
./supergroup.mixin.one -service message -e development
- 设置 Systemd 管理进程(生产环境):
• 创建 Systemd 文件 /etc/systemd/system/supergroup-http.service:
[Unit]
Description=Mixin Supergroup HTTP Service
After=network.target
[Service]
User=root
WorkingDirectory=/path/to/supergroup.mixin.one
ExecStart=/path/to/supergroup.mixin.one -service http -e production
Restart=always
[Install]
WantedBy=multi-user.target
• 创建消息服务 Systemd 文件 /etc/systemd/system/supergroup-message.service:
[Unit]
Description=Mixin Supergroup Message Service
After=network.target
[Service]
User=root
WorkingDirectory=/path/to/supergroup.mixin.one
ExecStart=/path/to/supergroup.mixin.one -service message -e production
Restart=always
[Install]
WantedBy=multi-user.target
• 启动并设置开机启动:
sudo systemctl enable supergroup-http.service
sudo systemctl enable supergroup-message.service
sudo systemctl start supergroup-http.service
sudo systemctl start supergroup-message.service
前端部署
- 安装 Yarn(如果未安装):
curl -o- -L https://yarnpkg.com/install.sh | bash
- 配置环境变量:
• 进入前端代码目录 ./web,复制 .env.example:
cd ./web
cp .env.example .env.local # 本地环境
cp .env.example .env.production.local # 生产环境
• 编辑 .env.production.local,根据需要调整 API 地址等信息。
- 安装依赖并构建项目:
yarn install
yarn build
- 启动开发环境(可选):
yarn serve
- 将前端代码部署到 Nginx:
• 安装 Nginx:
sudo apt install nginx
• 配置 Nginx:
编辑 /etc/nginx/sites-available/default:
server {
listen 80;
server_name your-domain.com;
root /path/to/supergroup.mixin.one/web/dist;
index index.html;
location / {
try_files $uri /index.html;
}
location /api/ {
proxy_pass http://localhost:3000/; # 根据后端 API 服务的端口修改
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;
}
}
• 启用并重启 Nginx:
sudo systemctl enable nginx
sudo systemctl restart nginx
测试部署
- 后端测试:
• 访问 http://your-server-ip:port,检查 API 是否正常工作。
• 查看 systemctl 服务状态:
sudo systemctl status supergroup-http.service
sudo systemctl status supergroup-message.service
- 前端测试:
• 通过浏览器访问服务器的域名或 IP,检查前端页面是否正常加载。
生产环境注意事项
- 日志管理:
使用 Systemd 日志查看服务日志:
journalctl -u supergroup-http.service -f
journalctl -u supergroup-message.service -f
- 数据库备份:
定期备份 PostgreSQL 数据库,防止数据丢失。
- 查看项目更新:
所有更新和变更记录会发布在 CHANGELOG.md。
总结
通过上述步骤,你可以成功部署 Mixin 大群项目。后端使用 Go 编译为二进制文件,前端使用 Vue,并通过 Nginx 部署。使用 Systemd 管理后端服务进程,确保服务能够自动重启并在系统启动时自动运行。这样整个项目在生产环境中就可以平稳运行。