Mix Space 部署

2024 年 2 月 1 日 星期四(已编辑)
367
AI 生成的摘要
这篇文章上次修改于 2024 年 9 月 9 日 星期一,可能部分内容已经不适用,如有疑问可询问作者。

Mix Space 部署

Intro

请使用 1C1G 以上的系统,1G 内存可能会在前端编译时出现问题。

推荐使用 Ubuntu 等现代 Linux 操作系统,使用 CentOS 7 等操作系统因无法安装足够高版本的 Node.js 从而导致部署失败。

后端部署

参考:https://mx-space.js.org/docs/docker

安装 Docker

如果你的服务器在国内,建议使用阿里云的镜像加速,安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

在国外,可以直接使用官方脚本安装:

curl -fsSL https://get.docker.com | bash -s docker

如果您成功安装了 Docker 和 Docker-Compose,可以通过以下命令查看版本:

docker -v
docker compose version

部署

  1. 拉取配置文件
cd && mkdir -p $HOME/mx-space/core && cd $_ # 拉取 docker-compose.yml 文件
wget https://fastly.jsdelivr.net/gh/mx-space/core@master/docker-compose.yml
  1. 创建环境变量
vi .env
  1. 填入以下内容后,按 ESC 键,输入 :wq 保存退出
JWT_SECRET= #JWT 密钥:需要填写长度不小于 16 个字符,不大于 32 个字符的字符串,用于加密用户的 JWT,务必保存好自己的密钥,不要泄露给他人。
ALLOWED_ORIGINS= #被允许的域名:需要填写被允许的域名,通常是前端的域名,如果允许多个域名访问,用英文逗号,分隔。
ENCRYPT_ENABLE= #如果你确定要开启加密,将 false 改为 true,开启加密后,你需要在下方填写加密密钥。
ENCRYPT_KEY= #如果你不知道这是什么,那么不建议开启此功能,具体内容可参考 https://mx-space.js.org/usage/security.html
  1. 启动后端

    docker compose up -d

前端部署

参考:https://mx-space.js.org/themes/shiro

前期准备

  1. 部署好后端并启动
  2. 注册 Clerk 账号,并获取公钥私钥:参考
  3. 安装 node.js、pnpm

部署

  1. 拉取仓库(以 Shiro 为例)
git clone https://github.com/Innei/Shiro $HOME/mx-space/Shiro && cd $HOME/mx-space/Shiro
  1. 生成环境变量
vi .env

填入以下内容后,按 ESC 键,输入 :wq 保存退出

NEXT_PUBLIC_API_URL=https://yourdomain/api/v2 
NEXT_PUBLIC_GATEWAY_URL=https://yourdomain
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_XXXX
CLERK_SECRET_KEY=sk_test_XXXX
  1. 安装依赖并启动
sudo pnpm i
sudo pnpm build
npx next start -p 2323
  1. 如果以上能够正常启动前端,则可以使用 pm2 进行部署
npm install -g pm2
pm2 start #
pm2 restart 0 #重新编译后用此命令重新部署,其中 0 为任务号

Nginx 反向代理

  1. 将域名解析至服务器。

  2. 根据 该文 的方法申请证书。

  3. 设置反向代理:

    vi /etc/nginx/nginx.conf

    修改下面示例中的域名及证书路径,添加到配置文件中:

更新

后端更新(Doker 部署)

进入 core 所在文件夹,然后

cd $HOME/mx-space/core
docker compose pull && docker compose up -d

前端更新

cd $HOME/mx-space/Shiro
git pull
sudo pnpm i
sudo pnpm build
pm2 restart 0

TroubleShooting

解决评论用户冲突问题

参考:Clerk 登录与 Mix Space 后端绑定

  1. 获取PEM:https://clerk.com/docs/backend-requests/handling/manual-jwt
  2. 获取id:在 Shiro 用 clerk 登录后,通过 console 抓取请求
获取 id

获取 id

添加搜索

参考:https://mx-space.js.org/usage/search

  1. 注册:https://dashboard.algolia.com/users/sign_up
  2. New Application -> Create Application -> Create Index,需要记住 Create Index
  3. API Keys -> Application ID & Admin API Key
  4. 在后台输入 Index & Application ID & Admin API Key
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...