最近国内经常访问不了v2ex,无论是电信联通移动都打不开,借此机会搭个v2ex论坛岂不美哉
当然我用的这个程序并不是v2ex官方用的那个,高仿,他的功能方面和v2ex原版差不多
有前后端
前端casnode
https://github.com/casbin/casnode
后端casdoor
https://github.com/casbin/casdoor
需要先部署后端再部署前端,后端casdoor支持多个站点同时使用
先上图
轻量
选择宝塔镜像可以方便后面守护进程之类的问题,还能省去安装宝塔的时间,还可以在宝塔上修改配置文件
顺带重置一下密码,可以用宝塔的ssh,不需要再用ssh软件了
废话不多说直接开始
具体需要
后端casdoor+前端casnode+mysql+nginx+golang+nodejs
打开宝塔后先选择安装四件套
https://p0.meituan.net/csc/e14315dbbf2e5776124a12ee492f6f2c19245.png
先把文件clone下来(轻量宝塔自带git)
casdoor
git clone https://github.com/casbin/casdoorcasnode
git clone https://github.com/casbin/casnode
国内机
casdoor
git clone https://hub.fastgit.org/casbin/casdoorcasnode
git clone https://hub.fastgit.org/casbin/casnode
环境
他需要golang和nodejs,因为yum的源直接下的太老,会出现问题,所以我建议手动装
go
wget https://studygolang.com/dl/golang/go1.15.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz
添加环境变量
都有宝塔了要什么自行车
在宝塔打开 /etc/profile,底部加两行
export PATH=$PATH:/usr/local/go/bin
在ssh输入 source /etc/profile
现在,输入go version,你将看到go版本
则安装成功.如果 你无法连接github,可以设置镜像,命令为
go env -w GOPROXY=https://goproxy.cn,direct
nodejs
wgethttps://mirrors.tuna.tsinghua.ed ... linux-x64.tar.xz
tar-xvf node-v15.1.0-linux-x64.tar.xzcd /usr/local/mv /root/node-v15.1.0-linux-x64 . //后面的.表示移动到当前目录
mv node-v15.1.0-linux-x64/ nodejs
再次编辑/etc/profile,加入
export PATH=$PATH:/usr/local/nodejs/bin
source /etc/profile
测试是否安装成功
node -vnpm -v
顺便创建两个数据库
构建casdoor
先用go吧main文件构建出来
cd casdoor go build main.go
与此同时编辑
/root/casdoor/conf里的app.conf
用刚才创建的mysql数据库
dataSourceName = 数据库名:密码@tcp(localhost:3306)/dbName = 用户名
构建完成后
cd web npm install npm run build
如果提示run `npm audit fix` to fix them, or `npm audit` for details
那就直接
npm audit fix
至此后端casdoor已经构建完成
可以运行后端看看了
cd .../main
轻量和宝塔防火墙开启8000端口
访问http://ip:8000既可看到后端
默认账号admin,密码123
当然要先为Casnode进行配置
点击组织—添加
修改名称为你想要的组织名,然后点击保存
点击应用,然后点击添加,对刚添加的应用点击修改,修改name为你想要的应用名
保存clientId和clientSecret,后面要用
修改组织,选择刚刚添加的组织;
点 击回调URLs,将框中链接修改为http://ip:7000/callback
点击 Save
点击用户,添加,然后修改添加的用户,点击组织,选择刚刚添加的组织
经过了一顿瞎几把操作之后,可以构建另一个端了
casnode
还是一样先把main构建出来
cd casnode go build main.go
与此同时编辑
/root/casnode/conf里的app.conf
dataSourceName = 数据库名:密码@tcp(localhost:3306)/dbName = 用户名之前记住的clientId和clientSecretclientId =clientSecret =
然后
web/src/下有个 Conf.js
需要修改将serverUrl修改为http://ip:7000(Casdoor 前端访问地址),将clientId修改为刚刚记录的应用的 clientId,将appname修改为设置的应用名,将organization修改为设置的组织名
(本来我已经构建好了,结果发现作者把这部分改了)
然后
cd webnpm installnpm run build
低配机构建需要很久,建议先恰个饭再来看
完事后
cd .../main
轻量和宝塔放行7000端口
http://your-ip:7000
自此已经搭建完成。
守护进程
在宝塔安装PM2管理器
casdoor一定要使用root用户运行。
至于要上域名,需要用nginx反向代理。
官方也没有过多解释,这方面得你们自己设置了
如果网站 访问量大可以配置oss
可以配置多个登陆方式比如github,QQ,微信,Google
也支持Mail and SMS services
登陆的界面设置的是casdoor的,他的css可以自己改,会写css可以改成仿v2ex的
当然建议使用>2h4g的轻量,不然负载有点高