记一次CTFd搭建经历
# 前言
一直不想更新博客,最近组织了校内 ctf 内部比赛,之前学长搭建的 CTFd 平台版本有点过时于是打算重新部署一个最新版的,期间遇到了很多问题 同时也十分感谢 VaalaCat 师傅的耐心指点。
现将本人搭建 CTFd 的一点经验分享出来
CTFd Version 3.4.3
# 搭建
我这里参考的是 vaalacat 师傅的博客再次致谢
# 准备环境
- docker
- docker-compose
# 配置准备
首先创建一个 swarm
1 | docker swarm init |
然后加入
1 | docker node update --label-add='name=linux-1' $(docker node ls -q) |
镜像源可以根据自己网络需要进行更改 /etc/docker/daemon.json
修改后 重启生效
1 | sudo systemctl daemon-reload |
# 安装
参考以及使用 VaalaCat 师傅的仓库
# 下载
首先使用 VaalaCat 师傅仓库中的 ctfd ,已经做好了镜像换源等工作。
1 | PLAINTEXT |
# 配置
1 | conf/frp/frps.ini # token 保持一致 |
由于我 frps 使用的是 host 网络模式 将原有配置修改
host 模式 frps 端口随容器开起
1 | [common] |
1 | [common] |

docker-compose.yml 修改如下
1 | version: '3' |
然后安装 whale 插件以及启动
1 | git submodule update --init |
启动后访问你设置的端口 进入面板让后在 admin panle 中 whale 修改 frp
| 名称 | 参数 |
|---|---|
| API URL | http://frpc:7400 |
| Http Domain Suffix | 看自己是否有配置需求我直接采用 IP + 端口映射此处保持默认 |
| Direct IP AddressFor | 服务器的 ip 地址 |
| Direct Minimum Port | 27000 #最小端口号看自己需求设置 |
| Direct Maximum Port | 27200 |
| Frpc config template | 复制上面 frpc 配置即可 |
| Frps config template [generated] | 复制上面 frps 配置即可 |
submit 提交
# 题目创建
此处以 WEB 动态容器为例
| 名称 | 参数 |
|---|---|
| Challenge Types | dynamic_docker |
| Name: | 题目名称随意 |
| Category: | WEB |
| Message: | 题目信息随意 |
| Docker Image | 选择你本地构建的镜像或者是云端镜像 |
| Frp Redirect Type | Direct |
| Frp Redirect Port | 80 #设置你镜像中开发服务的端口 |
| 其它 | 默认 |

随后开起容器即可 不出意外搭建完成
如果出现故障 docker logs xxx 查看具体日志 可以 exec -it 进入容器具体分析
# 美化工作
# 主题推荐
我用的主题是 ctfd-neon-theme


还有推荐 CTFd-theme-pixo
更多主题 <-<-
# 主题使用教程
1 | git clone https://github.com/hmrserver/CTFd-theme-pixo.git ./CTFd/themes/pixo |
登录 进入 admin panel -> config -> Theme 修改即可
# 参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Cc's Blog!
评论
TwikooWaline





