CTFd折腾记录
2017年2月1日
去年看到不少高校都有自己的ctf练习平台,就想着给学校社团也搭一个,期间也尝试过fbctf,界面确实够炫酷,可就是太臃肿,就想着试试CTFd,测试一段时间,觉着还算稳定,就把折腾的思路记录一下,免得大家多走弯路。
Flask安装
需求的环境是要能使用apt的(ubuntu或者debian之类)
以下全部在ubuntu16.04下测试
安装git
1sudo apt install git安装pip
1sudo apt install python-pip安装Flask
1sudo pip install Flask下载&安装&运行CTFd
1234sudo git clone https://github.com/isislab/CTFd.gitcd CTFdsudo ./prepare.shsudo python serve.py
但是,看各位师傅说这样直接运行性能很差,所以也可以用gunicorn
|
|
至此平台就搭建完成了,在浏览器访问你的服务器公网ip:4000就可以进入了.
Nginx + uwsgi
看画船师傅说flask和gunicorn在低配服务器上性能不好(官方也说只能用来测试),就折腾了一下Nginx + uwsgi
安装nginx&uwsgi
12sudo apt install nginxsudo pip install uwsgi配置nginx
在/etc/nginx/sites-available/目录,创建一个站点文件(删除default文件)
123456789server {listen 80;server_name www.site.com;location / {include uwsgi_params;uwsgi_pass unix:/tmp/uwsgi.sock;}}cp文件到/etc/nginx/sites-enable/下(删除default文件)
运行
切换到CTFd目录下
12service nginx startsudo uwsgi -s /tmp/uwsgi.sock -w "CTFd:create_app()"访问站点,若502错误
1sudo chmod 777 /tmp/uwsgi.sock启动/停止一键脚本(画船师傅的)
start.sh
123sudo nohup uwsgi -s /tmp/uwsgi.sock -w "CTFd:create_app()"&service nginx startsudo chmod 777 /tmp/uwsgi.sockstop.sh
12ps -ef | grep uwsgi | grep -v grep | awk '{print $2}' | xargs kill -9service nginx stop
参考: