博主 @Vicosna 已经对CTFd v3.3.1官方源码进行了更换国内镜像源、添加CTFd-Whale子模块、配置frp网络、设置静态文件CDN加速等工作,可前往使用作者修改的版本进行安装部署。请前往获取:GitHub - ollyhsu/CTFd: CTFs as you need them
本人环境为腾讯云轻型应用服务器学生价20米三个月真香,操作系统:CentOS7.6-Docker20
使用Xshll连接进行操作(根据个人习惯选择)
此次仅记录了搭建成功的大概过程,也是再N次失败后的一次小小复盘,其中有很多过程在不同机器和系统版本中可能出现报错,
其解决方法自行百度或科学上网查找。
有时间会更新本地虚拟机详细搭建过程。
git安装:
sudo yum install -y git
Docker环境安装
基础配置
yum makeclean yum makecache yum install -y git vim yum install -y yum-utils device-mapper-persistent-data lvm2 bind-utils
设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum install -y docker docker version
启动并加入开机启动
systemctl start docker systemctl enable docker
配置Docker加速
vi /etc/docker/daemon.json
我这边使用的阿里云的镜像加速器,可自行申请
添加一下内容
{ "registry-mirrors": ["https://m7mz8a5m.mirror.aliyuncs.com"] }
重新启动Docker并查看Docker信息
systemctl daemon-reload systemctl restart docker docker info
验证是否安装成功
docker version
安装 Docker Compose
安装python-pip并检查是否安装成功(cenos7有可能会出现报错)
如果使用pip安装失败可尝试Centos7安装docker与docker-compose - lywJee - 博客园 (cnblogs.com)
yum -y install epel-release yum -y install python-pip pip -V
升级php
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
安装docker-compose并查看docker compose版本
pip install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose --version
查看版本信息
通过
docker --version
来验证Docker安装是否成功docker --version
通过
docker-compose --version
来验证Docker Compose安装是否成功docker-compose --version
如果能正常返回版本信息,到这里基本完成了环境的准备环节
Docker集群设置
启用Docker Swarm,并为生成的Manager节点取一个别名
docker swarm init # 初始化 docker node ls # 查看节点ID docker node update --label-add name=linux-1 <节点 ID> # 添加别名
下载CTFd修改版
博主 @Vicosna 已经对CTFd v3.3.1官方源码进行了更换国内镜像源、添加CTFd-Whale子模块、配置frp网络、设置静态文件CDN加速等工作,可前往使用作者修改的版本进行安装部署。
git clone -b frp https://github.com/vicosna/CTFd.git # 修改版(根目录不建议修改名字)
cd CTFd # 进入CTFd目录
git submodule update --init # 更新CTFd-Whale子模块
# ——————————————————————————————————————————————————————
# 如果你访问Github的速度不佳,也可以使用博主提供的CSDN和Gitee版(可选)
git clone -b https://codechina.csdn.net/vicosna/CTFd.git # CSDN
cd CTFd # 进入CTFd目录
sed -i 's/github.com/codechina.csdn.net/g' .gitmodules # 修改子模块Url
git submodule update --init # 更新CTFd-Whale子模块
# ——————————————————————————————————————————————————————
git clone -b frp https://gitee.com/vicosna/CTFd.git # Gitee
cd CTFd # 进入CTFd目录
sed -i 's/github.com/gitee.com/g' .gitmodules # 修改子模块Url
git submodule update --init # 更新CTFd-Whale子模块
构建镜像
运行
docker-compose build
命令,等待
如果没有错误的话就会返回:Successfully tagged ctfd_ctfd:latest
部署容器
运行
docker-compose up -d
部署容器,耐心等待~
如果全部显示done,就成功啦!
再使用
docker ps -a
查看一下当前正在运行的容器是否都正常。
访问你的服务器的公网IP就能打开平台界面啦,由于CTFd最新版启用了nginx端口转发,我们直接访问
80
端口即可,当然CTFd的默认端口8000
也可以访问。
大概就是这样子