V8CDN - 一款简洁的Cloudflare Partner管理面板
Pluto Lv2

What’s this?

这是一款Cloudflare Partner面板程序,后端基于gin,前端使用vue.js

项目地址

演示地址

演示图


部署

配置说明

  • 后端配置
1
2
3
4
5
6
7
8
9
10
11
12
app_name: v8cdn # 应用名称
debug: false # Debug
listen: 0.0.0.0:8080 # 监听 ip + 端口
jwt_secret: v8cdn # jwt秘钥,自己随便设置
static: dist # 前端目录
cloudflare:
email: email # cloudflare partner邮箱
host_key: host_key # cloudflare partner host_key
RateLimit:
enabled: false # 是否启用api请求频率限制
fill_interval: 30 # 时间周期,单位:秒
capacity: 30 # 单位时间周期内最大只能请求多少次,超过了返回频率限制error
  • 前端配置
1
2
3
4
5
window["V8CDN"] = {
appName: "V8CDN", // 项目名称
apiUrl: "//cdn.v8cdn.cc", // 后端api
instructions: "https://blog.aoaostar.com/10.html", // 使用说明跳转地址
};

使用说明

  • releases下载对应的包
  • 然后运行即可
1
2
chmod +x v8cdn
nohup ./v8cdn > log.log 2>&1 &
进程守护
  • vi /usr/lib/systemd/system/v8cdn.service
  • 添加以下内容,其中app_pathv8cdn所在的路径
1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=v8cdn
After=network.target

[Service]
Type=simple
WorkingDirectory=app_path
ExecStart=app_path/v8cdn
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • 然后执行systemctl daemon-reload重载配置
1
2
3
4
启动: systemctl start v8cdn
关闭: systemctl stop v8cdn
自启: systemctl enable v8cdn
状态: systemctl status v8cdn

反向代理

  • 由于项目运行在8080端口,所以需要nginx反向代理
1
2
3
4
5
6
7
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_pass http://127.0.0.1:8080;
}
  • 使用gin代理静态资源需要注释以下内容,否则静态文件无法加载
1
2
3
4
5
6
7
8
9
10
11
12
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}

配置前端

  • 下载前端
    https://github.com/aoaostar/v8cdn-panel/releases
  • dist目录复制到后端根目录
  • 修改前端项目根目录下的config.js内容
  • 没有cloudflare partner的可以使用别人的后端api,这样无需搭建后端,只需要配置前端的api就行了
  • 没看懂看下方目录结构

目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.
├── config.yaml
├── dist
│ ├── config.js
│ ├── css
│ │ ├── app.51c8db65.css
│ │ └── chunk-vendors.3ec84ff3.css
│ ├── favicon.ico
│ ├── fonts
│ │ ├── element-icons.535877f5.woff
│ │ └── element-icons.732389de.ttf
│ ├── img
│ │ ├── logo.2afbdd11.png
│ │ ├── prototype-1.61488008.png
│ │ ├── prototype-2.6cdf2ad6.png
│ │ ├── prototype-3.12a59943.png
│ │ └── prototype-4.723e3a43.png
│ ├── index.html
│ └── js
│ ├── app.d4502f7d.js
│ ├── app.d4502f7d.js.map
│ ├── chunk-vendors.3f91d629.js
│ └── chunk-vendors.3f91d629.js.map
├── logs
│ └── 2021-09-07.log
└── v8cdn

交叉编译

  • 本文标题:V8CDN - 一款简洁的Cloudflare Partner管理面板
  • 本文作者:Pluto
  • 创建时间:2022-04-13 14:42:56
  • 本文链接:https://blog.aoaostar.com//post/b67e2890/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论