近期撸到了华为云大善人的2.56w企业代金券(初创2.5w+沃土500+考试100),直接一口气开了六台云服,咳咳扯远了,现在我打算基于华为云新加坡的2c2g乌班图服务器搭建一个长期项目贡献给大家,找了一周,发现了这个宝藏项目,支持低配置云服务器流畅运行非常适合个人站点!但发现全网都没有关于此项目的教程,基本都是copy项目github的文档,摸索了一下踩了不少坑才搭建好,所以此文章就这样诞生啦!!
📋 系统环境要求
🖥️ 硬件配置
- ✨ 推荐配置:2核2G及以上
- 💡 提示:据说1核512M也可运行(未经验证)
- 🌏 建议使用非中国大陆服务器,便于访问GitHub等外部资源
⚙️ 软件环境
- 🐧 操作系统:Ubuntu 22.04 LTS
- 🔧 Go 1.20+
- 📦 Node.js 14+
- 💾 MySQL 5.7+
- 🌐 Nginx
- 📊 Redis
- 🔍 Zinc搜索引擎
- 🛠️ 宝塔面板(可选,本基础基于宝塔安装)
⚠️ 重要提示
如果你的配置和我一样是2c2g甚至更低,强烈不建议在云服务器上直接编译,建议在本地或更高配置的云服务器编译好后再传到小鸡上运行
🚀 详细部署步骤
1️⃣ Go环境配置
⚠️ 特别提醒:千万不要使用宝塔面板安装golang,否则会出现很多问题(本人已踩坑),如果你安装了,那么请重装系统或自行摸索如何使用宝塔的golang,否则会出现冲突(即使你卸载了,但环境变量等都还在,自行gpt解决指向问题)
执行以下命令安装Go:
# 添加Go官方PPA源
sudo add-apt-repository ppa:longsleep/golang-backports
# 更新软件包
sudo apt update
# 安装Go
sudo apt install golang-go
# 验证安装
go version
安装成功后会显示类似以下输出:
go version go1.23.4 linux/amd64
2️⃣ Node.js安装
方案A - 使用宝塔面板(推荐)
- 1. 在软件商店搜索"node"
- 2. 安装Node.js版本管理器
- 3. 更新版本列表
- 4. 安装最新稳定版
方案B - 使用apt安装
# 添加NodeSource仓库
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# 安装Node.js
sudo apt install nodejs
# 验证安装
node --version
npm --version
3️⃣ MySQL配置
推荐使用宝塔面板安装MySQL:
- 📌 在软件商店运行环境分类中安装MySQL
-
📝 如遇到"安装失败,文件不存在"错误(如图):
执行以下命令:
touch /www/server/panel/install/i_mysql.pl
然后重新安装
- 📊 安装phpMyAdmin(需先安装PHP环境,推荐PHP 7.4)
4️⃣ Redis安装
💡 强烈建议使用宝塔面板安装Redis,避免使用apt安装可能出现的连接问题
安装步骤:
- ✅ 在软件商店运行环境分类中直接安装Redis
5️⃣ Zinc搜索引擎部署
a) 下载安装:
前往官方github发行页面:
点击 Show all 21 assets 展开
找到带有linux_x86_64的下载(大部分云服都是这个架构,如果你是arm或其他则下载其他架构的)
下载后将压缩包中的zincsearch解压上传到服务器中
b) 配置运行:
# 设置执行权限
chmod 777 /root/zincsearch/zincsearch
c) 使用宝塔进程守护:
接下来我们回到宝塔,前往软件商店,搜索关键词【进程守护】,安装第一个
然后点击设置打开
点击添加守护进程
名称自定义
在运行目录填写你的路径 如:/root/zincsearch
在启动命令填写路径+文件名 如:/root/zincsearch/zincsearch
然后点击确定
此时大概率会显示进程异常启动失败,这是正常的
我们点击【配置文件】打开面板
然后插入一行环境变量
environment=ZINC_FIRST_ADMIN_USER="admin",ZINC_FIRST_ADMIN_PASSWORD="【这里填写你的密码,自定义】"
记得把括号一起删掉
如果插入后还是无法启动,则添加系统环境变量:
echo 'export ZINC_FIRST_ADMIN_USER=admin' >> /etc/environment echo 'export ZINC_FIRST_ADMIN_PASSWORD=【这里填写你的密码,自定义】' >> /etc/environment
执行并不会输出内容,如果没有输出即视为成功
6️⃣ Nginx安装
因本教程采用宝塔结合部署,所以就不出其他的了。前往宝塔的软件商店,切换分类到运行环境,第一页就有Nginx,点击安装即可
🎯 PaoPao-CE部署流程
1️⃣ 获取源码
git clone https://github.com/rocboss/paopao-ce.git
2️⃣ 数据库配置
- 📊 我们前往宝塔的数据库界面,点击添加数据库,然后输入你的数据库信息
-
点击你创建的数据库中的导入按钮打开
点击从本机导入
点击上方的地址栏,可以直接输入地址,例如我是/root/paopao-ce
导航到项目根目录后,点击scripts文件夹进入
选择mysql结尾的sql文件,导入
3️⃣ 后端配置
# 复制配置文件
cp config.yaml.sample config.yaml
这里建议下载到本地进行编辑(如果本地有编辑器了话,例如vsc)
先滑动到最底下,配置基础设置
我们先说几个坑点
第一个就是Redis配置中,地址默认为
redis:6379
我们需要将其替换成
127.0.0.1:6379
其他的同理,必须替换,否则会出现无法连通的问题等,包括数据库与zinc的配置
第二个就是本地文件OSS存储位置配置这里
将Domain的参数替换为你的后端地址域名或ip
默认的是127.0.0.1:8008
其他的自行根据注释配置即可
这里你会发现配置项这么这么多,其实你只需要配置你要用到的,你用不到的直接整个删除即可
注意,你需要在Features配置中也一同删除你不需要的配置项名称
以下是我的配置文件,仅供参考
4️⃣ 前端配置
我们切换到二级文件夹【web】中
这里已经存在.env文件,直接打开(推荐下载到本地进行编辑)
如果你希望后端内嵌web,则第一行的地址为空,如果你希望前后端分离,则这里填写你的后端地址,例如:
VITE_HOST="https://bbsapi.111686.xyz"
其他配置根据你在后端填写的进行配置
以下是我的配置文件,仅供参考
5️⃣ 编译部署
后端编译:
配置完成后,到这一步存在分叉了,此时你可以选择直接编译后端
进入项目根目录,执行命令:
make build TAGS='slim embed'
此时稍等片刻,编译后的二进制文件在release文件夹中
这时编译的后端是精简版,只有api功能
然后我们前往宝塔的进程守护面板,添加进程守护运行
- 点击添加守护进程,名称自定义
- 填写项目根目录的路径
- 填写路径+release/paopao serve
这时如果没出现启动异常则后端正常运行了
但项目还提供了内置前端web,我们可以连带前端一起编译进去(不推荐)
如果希望内置web,则执行命令:
make build
到这一步,如果内置了web可以直接ng反代上线了,但显然会比前后端分离的性能要低一些,不建议直接拿后端地址运营上线
前端编译:
先切换到前端目录【web】
如果你是通过apt安装的node.js,则你需要安装yarn,宝塔默认安装有yarn了
添加仓库key:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
添加软件源:
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
更新软件包:
sudo apt update
安装yarn:
sudo apt install yarn -y
以上如果卡住全部按回车或者y
然后我们安装依赖,执行命令:
yarn
安装完成之后开始构建前端:
yarn build
这里低运存可能会出现因为运行内存不足而失败的问题,实测4g运行内存可以正常构建,而2g大概率无法正常完成
我们可以打开目录下的package.json文件,将build的值删并替换为:
node --max_old_space_size=4096 node_modules/vite/bin/vite.js build
如果还是不行,建议在本机安装好环境编译,只需要将web这个文件夹下载到本地或其他云服上,编译好再上传即可(如不需要内置web,则直接把编译好的静态文件上传到目录)
编译完成之后,进入到新生成的dist文件夹,复制里面的全部文件,扔到/www/wwwroot/bbs中,其中bbs可以自定义,自行创建一个文件夹存储(由于宝塔的目录限制,只能这样做,如果你不是宝塔运行,则可以直接配置网站目录在web/dist中)
6️⃣ 部署配置
前后端分离部署:
a) 后端配置:
进入宝塔的网站->反向代理->添加反代
然后填写你的后端域名
在目标这里填写 http://127.0.0.1:8008
b) 前端部署:
进入宝塔的网站->HTML项目->添加HTML项目
填入你的前端域名
根目录填入之前复制到的目录
❓ 常见问题解决
1️⃣ 图片加载失败
- 🔍 检查本地OSS配置中的后端地址设置
2️⃣ 搜索功能异常
- 🔍 验证Zinc服务运行状态
- 🔍 检查配置文件中的认证信息
🎉 结语
至此,完整的PaoPao-CE社区系统就部署完成了。如果按照教程逐步操作,应该能够顺利完成部署。如有问题,欢迎在评论区交流!
🌟 DMC微社区-同时也是演示站哦
DMC-十年微社区公益项目现已上线!我们是一个致力于长期稳定运营的社区项目。作为星渊社区的分支版本,我们继承了其优良传统,同时又独具特色。
🛡️ 稳定性承诺
- ✨ 采用十年期xyz域名
- 🚀 部署于华为云新加坡节点
- 💪 确保十年稳定运营支持
📱 社区官方渠道
- 💬 Telegram 群组:https://t.me/drstth_CN
- 📢 Telegram 频道:https://t.me/drstth_channel
🌐 社区网址:https://bbs.111686.xyz/
Comments NOTHING