好不容易把阿里云ECS折腾到Debian 12.6,又花了半天装好宝塔9.x全家桶(Nginx1.26 + PHP8.2 + MySQL8.0 + Redis7.4),结果想再装个Casnode论坛,发现官方文档写得跟天书一样,Docker党嫌麻烦,手动党又容易踩坑?别慌,这篇就是给已经装好宝塔的你准备的人类看得懂的Casnode部署教程,全程吐槽式讲解,保证跟着做就能跑起来。
一、先搞清楚:Casnode到底是个啥?
Casnode是个长得跟V2EX一毛一样的Golang+React论坛,优点是:
- 天生高并发,阿里云2核3G也能顶住
- 自带Casdoor统一认证,支持微信/QQ/Github登录
- Markdown原生支持,程序员最爱
- 完全开源,GitHub仓库随便改
缺点也很明显:官方文档跳跃性太强,对宝塔用户极不友好。
二、环境检查:你已经装好的 vs 还缺的
已装好的(宝塔一键) | 还缺的(必须手动) |
---|---|
Nginx 1.26 | Golang ≥ 1.20 |
PHP 8.2(暂时用不上) | Node.js ≥ 18 |
MySQL 8.0 | Casdoor(登录认证) |
Redis 7.4 | casnode源码+编译 |
接下来,一条命令一条命令复制粘贴,别偷懒。
三、给宝塔装缺失的依赖
1. 安装Golang(二进制包最快)
# 登录SSH,别用宝塔终端,难用
cd /usr/local
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
tar -xzf go1.21.5.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
source /etc/profile
go version # 看到go1.21.5就成功
2. 安装Node.js(用官方源)
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
node -v # 看到v20.x.x就行
四、配置MySQL给Casnode用
# 宝塔里打开MySQL终端,执行
CREATE DATABASE casnode CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'casnode'@'localhost' IDENTIFIED BY 'Casnode@2025!';
GRANT ALL ON casnode.* TO 'casnode'@'localhost';
FLUSH PRIVILEGES;
记住用户名密码,后面要填。
五、下载&编译Casnode
# 回到根目录
cd /
git clone https://github.com/casbin/casnode.git
cd casnode
# 编译后端(2核3G大概2分钟)
go mod tidy
go build -o casnode
修改后端配置
cp conf/app.conf.example conf/app.conf
nano conf/app.conf
只改这几行:
httpport = 7000
driverName = mysql
dataSourceName = casnode:Casnode@2025!@tcp(127.0.0.1:3306)/casnode?charset=utf8mb4
redisEndpoint = 127.0.0.1:6379
编译前端
cd web
npm install --registry=https://registry.npmmirror.com
npm run build
六、安装Casdoor(不装登录就崩)
cd /
git clone https://github.com/casdoor/casdoor.git
cd casdoor
编译Casdoor(需要Java17)
apt install openjdk-17-jdk -y
./build.sh
改配置
cp conf/app.conf.example conf/app.conf
nano conf/app.conf
httpport = 8000
driverName = mysql
dataSourceName = root:你的宝塔MySQL密码@tcp(127.0.0.1:3306)/casdoor?charset=utf8mb4
# 启动
nohup ./casdoor & # 端口8000
七、Nginx反向代理(用宝塔可视化,别手敲)
宝塔→网站→添加站点→PHP纯静态→填域名→提交→设置→反向代理:
论坛(Casnode) | 认证(Casdoor) |
---|---|
代理名称:casnode 目标URL:http://127.0.0.1:7000 |
代理名称:casdoor 目标URL:http://127.0.0.1:8000 |
顺手把SSL证书也申请了,强制HTTPS。
八、初始化Casdoor & Casnode
- 浏览器打开:https://你的域名:8000
- 默认账号:admin/密码:123
- 应用管理→添加应用→名称填casnode→回调URL填https://你的域名/callback
- 复制Client ID & Secret
- 打开https://你的域名
- 第一次会自动跳转到Casdoor登录
- 登录成功即完成绑定
九、设置开机自启(宝塔计划任务)
# 宝塔→计划任务→Shell脚本
# 任务名称:Casnode自启
# 执行周期:开机1分钟后
# 脚本内容:
cd /casnode && nohup ./casnode &
cd /casdoor && nohup ./casdoor &
十、常见坑速查表
现象 | 解决 |
---|---|
502 Bad Gateway | Nginx没指向正确端口,或casnode没启动 |
登录后无限重定向 | Casdoor的回调URL填错 |
前端样式404 | web/dist目录没生成,重新npm run build |
发邮件报错 | conf/app.conf里smtp没配,用163或Gmail应用密码 |
十一、总结:一句话省流
装Golang+Node→下源码→编译→跑Casdoor→Nginx反代→完事。整个流程30分钟能搞定,别再对着官方文档发呆了。
觉得有用就收藏,踩了新坑欢迎留言,一起吐槽。
没有回复内容