本项目采取docker-compose部署,部署前请检查必要网络状态、80端口是否开启、docker等基础设置是否完整
前置条件
操作系统:Linux(Centos/欧拉/乌班图等)最低2G/2核
语言环境:python3.11
数据库:MySql8.0
缓存:Redis
代理服务器:Nginx
容器引擎:Docker
部署方式:Docker-Compsoe
代码拉取
首先我们需要安装拉取snowctf-docker配置文件项目
git clone https://github.com/TheMoonu/snowctf-docker.git
创建配置文件
进入项目需要关注以下两文件,此时需要创建两个文件(1).env (2)snow.env ,然后将env.template内容复制到.env文件中,snow.env.template内容复制到snow.env文中即可
env.template -----> .env
snow.env.template -----> snow.env
修改配置
以下是snow.env配置方式,邮件可根据情况配置。
# 个性化配置 SNOW_LOGO_NAM、SNOW_SITE_END_TITLE等参数可根据实际情况修改主要是网站logo标题
SNOW_SECRET_KEY=#!kta!1e0)24p@9#=*=ra$r!0k0+p4@w+a%7g1bboo1+ad@4_(
SNOW_DEBUG=False
SNOW_LOGO_NAME=SNOWCTF
SNOW_SITE_END_TITLE=SNOWCTF
SNOW_SITE_DESCRIPTION=成功需要后天的努力,所有今天和明天休息!——奥德彪
SNOW_SITE_KEYWORDS=网络安全,漏洞靶场,人工智能安全,安全技能学习,CTF,漏洞POC库
SNOW_PROTOCOL_HTTPS=http
# 邮箱配置
SNOW_EMAIL_HOST=smtp.gmail.com # 邮件服务器地址
SNOW_EMAIL_HOST_USER=your-email@gmail.com # 发件人邮箱地址
SNOW_EMAIL_HOST_PASSWORD=your-email-password # 发件人邮箱密码
SNOW_EMAIL_PORT=465 # 邮件服务器端口
SNOW_EMAIL_USE_SSL=True
SNOW_DEFAULT_FROM_EMAIL=SECSNOW<your-email@gmail.com> # 默认发件人邮箱地址
SNOW_ACCOUNT_EMAIL_VERIFICATION=optional #是否强制需要邮箱认证
#站点ID
SITE_ID = 2
以下是 .env文件配置,这个一般不需要更改,当然可按需求修改mysql密码MYSQL_ROOT_PASSWORD,SNOW_IMAGE是镜像名称参数,secsnow/snowctf:1.0 是我自己构建的镜像可直接从docker镜像仓库拉取,若你需要使用自己的镜像,需要拉取snowctf源码自行构建镜像
# db
MYSQL_IMAGE=mysql:8.0
MYSQL_ROOT_PASSWORD=R4MmGnntRa4TY64s #可按需修改
# redis
REDIS_IMAGE=redis
# web
SNOW_IMAGE=secsnow/snowctf:1.0
SNOW_MYSQL_NAME=snowctf
# nginx
NGINX_IMAGE=nginx
NGINX_PORT=80
运行项目
配置完成后检查无误,进行snowctf-docker目录运行:
docker-compose up -d
会自动拉取镜像,运行成功后如下图所示:
然后依次运行以下命令:
构建数据库
docker exec -it snow_web python manage.py makemigrations
docker exec -it snow_web python manage.py migrate
收集静态文件
docker exec -it snow_web python manage.py collectstatic
创建管理员
根据提示设置管理员账号即可
docker exec -it snow_web python manage.py createsuperuser
初始化重启
然后重启一下服务
docker-compose down
docker-compose up -d
访问项目
若前面流程都不出问题的情况下访问你80端口即可
交流
如果有问题或者BUG反馈,请加入QQ群
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://www.secsnow.cn/blog/subject/article/install-snowctf/
许可协议:署名-非商业性使用 4.0 国际许可协议