为什么要搭建 #
- 1.发现好多平台的题库都有一些旧
- 2.自己打比赛的时候会留下很多题目需要去复现(总是zip压缩之后就放在硬盘吃灰了)
搭建过程 #
这个博客是直接python本地跑的的并没有用Docker。
想用Docker的话就用下面的指令。
sudo docker run -d -p 8000:8000 -it ctfd/ctfd
开始正文
1.下载解压 #
cd ~
mkdir CTFd
cd CTFd
wget https://github.com/CTFd/CTFd/archive/refs/tags/3.7.2.zip
unzip unzip 3.7.2.zip
2.创建python虚拟环境 #
python3 -m venv myvenv
source myvenv/bin/activate
3.跟着官方安装教程来 #
pip install -r requirements.txt
也可以用prepare.sh来操作
可以根据需要来配置CTFd/config.ini,里面有安全配置,数据库和Redis什么的,我是在本地跑的完全不需要。
我直接运行了,默认使用SQLite数据库。
python server.py
因为我是跑在虚拟机里,host是127.0.0.1,虚拟机外访问不到,编辑一下server.py
把host改为0.0.0.0,其实也可以吧debug关了。
现在就能在虚拟机之外访问了。
访问4000开始配置,over
4.一键运行脚本 #
因为是在python venv跑的,写一个service刚才没搞出来。。先用个sh凑活一下
写一个run.sh
#!/bin/bash
source /home/yalois/CTFd/CTFd-3.7.2/myvenv/bin/activate
nohup python /home/yalois/CTFd/CTFd-3.7.2/serve.py > /home/yalois/CTFd/CTFd-3.7.2/output.log 2>&1 &
deactivate
运行脚本run.sh
source run.sh
查看运行中的程序,并结束
ps -aux | grep serve
kill [PID]