Tip:如还未搭建好sub2api请先前往上篇文章搭建sub2pai,本篇文章只教如何改sub2api源码并本地构建运行。
前言
当你搭建好之后sub2api之后,你也许会觉得默认的主题太大众化了,想自定义网站的主题和美化,
或者说你想新增一些功能来丰富自己的站点。
但是本项目不支持直接改源码来实现自定义内容。
那么在上篇非docker的搭建基础上,就有了这篇进阶版教程。
本篇文章所用的目录请根据自己项目的实际目录做出修改,不要无脑搬以免error。
测试环境:ubuntu 22.04 配合宝塔面板使用更佳!
第一步:拉取项目文件到本地

  1. 通过git下载源码
    终端运行:
1
git clone https://github.com/Wei-Shaw/sub2api.git

下载好之后文件在sub2api目录中
2. 进入项目目录
终端运行:

1
cd sub2api

第二步:修改项目内容
可以通过宝塔面板下载项目文件,然后修改项目内容。
如用宝塔面板,项目目录在/root/sub2api中(root用户)
如果是非root用户则在/home/用户名/sub2api中
修改好项目之后上传并替换源文件
第三步:构建源码

  1. 构建前端
    终端运行:
1
2
3
cd sub2api/frontend
npm install
npm run build

构建好的文件在/sub2api/backend/internal/web/dist目录中
2. 构建后端
先安装Go
终端运行:

1
2
sudo apt update
sudo apt install -y golang-go

确认安装成功:

1
go version

先确认前端构建文件是否存在

1
ls -lah /root/sub2api/backend/internal/web/dist 

应输出包含index.html的文件
然后进入后端目录:

1
cd /root/sub2api/backend

执行带 embed 标签的编译命令:
(清测过普通的make build命令,结果是编译失败,因为go.mod文件缺少了embed标签,所以只能用带embed标签的编译命令,于是我研究出了这个万无一失的指令)

1
CGO_ENABLED=0 go build -tags embed -ldflags="-s -w -X main.Version=0.1.183" -trimpath -o bin/server ./cmd/server

按自己的实际情况修改以上命令中的版本号和目录等,但是必须有embed标签。
编译成功后,新的后端程序是:/root/sub2api/backend/bin/server
*第四步:替换新文件

1
2
3
4
5
6
systemctl stop sub2api
cp -a /opt/sub2api/sub2api /opt/sub2api/sub2api.backup-$(date +%Y%m%d%H%M%S)
cp /root/sub2api/backend/bin/server /opt/sub2api/sub2api
chmod 755 /opt/sub2api/sub2api
systemctl start sub2api
systemctl status sub2api

测试:

1
curl -i http://127.0.0.1:8080/ #8080改为实际sub2api没有反代的实际端口

测试成功则返回:

1
HTTP/1.1 200 OK #确认状态码为200

更多问题欢迎进群交流点击联系