GZCTF平台

GZCTF比赛平台搭建

GZCTF官方文档:https://gzctf.gzti.me/

环境:ubuntu22.04、docker、GZCTF、

一、ubuntu安装docker

安装命令:

sudo apt install docker.io docker-compose

然后换源:

{
        "registry-mirrors": [
            "https://6kx4zyno.mirror.aliyuncs.com",
            "https://1nj0zren.mirror.aliyuncs.com",
            "https://docker.mirrors.ustc.edu.cn",
            "http://f1361db2.m.daocloud.io",
            "https://registry.docker-cn.com",
            "http://hub-mirror.c.163.com",
            "https://mirror.ccs.tencentyun.com/",
            "https://dockerproxy.com",
            "https://docker.nju.edu.cn",
            "https://mirror.iscas.ac.cn",
            "https://docker.mirrors.sjtug.sjtu.edu.cn",
            "https://dockerhub.azk8s.cn",
            "https://docker.m.daocloud.io",
            "https://docker.m.daocloud.io",
            "https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
            "https://noohub.ru",
            "https://huecker.io",
            "http://mirror.azure.cn/",
            "https://dockerhub.timeweb.cloud",
            "https://5tqw56kt.mirror.aliyuncs.com",
            "https://docker.m.daocloud.io",
            "https://docker.1panel.live",
            "https://hub.rat.dev/",
            "https://docker.ckyl.me/",
            "https://docker.chenby.cn",
            "https://docker.hpcloud.cloud",
            "http://mirrors.ustc.edu.cn/"
        ]
}  

然后重启进程:

sudo systemctl daemon-reload        #重启daemon进程
sudo systemctl restart docker       #重启docker

docker安装成功,可以拉取镜像。

还有一种方法通过安装宝塔面板,面板里安装docker,自定义源。==》来安装docker。(推荐这种)

二、拉取GZCTF

cd /home
mkdir JUSTCTF
cd JUSTCTF
sudo touch appsettings.json
sudo touch docker-compose.yml

这两个创建好的文件,GZCTF的配置文件

1、首先是appsettings.json

{
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=<Your POSTGRES_PASSWORD>"
  },
  "EmailConfig": {
    "SendMailAddress": "a@a.com",
    "UserName": "",
    "Password": "",
    "Smtp": {
      "Host": "localhost",
      "Port": 587
    }
  },
  "XorKey": "<Your XOR_KEY>",
  "ContainerProvider": {
    "Type": "Docker", // or "Kubernetes"
    "PortMappingType": "Default", // or "PlatformProxy"
    "EnableTrafficCapture": false,
    "PublicEntry": "<Your PUBLIC_ENTRY>", // or "xxx.xxx.xxx.xxx"
    // optional
    "DockerConfig": {
      "SwarmMode": false,
      "Uri": "unix:///var/run/docker.sock"
    }
  },
  "RequestLogging": false,
  "DisableRateLimit": true,
  "RegistryConfig": {
    "UserName": "",
    "Password": "",
    "ServerAddress": ""
  },
  "CaptchaConfig": {
    "Provider": "None", // or "CloudflareTurnstile" or "GoogleRecaptcha"
    "SiteKey": "<Your SITE_KEY>",
    "SecretKey": "<Your SECRET_KEY>",
    // optional
    "GoogleRecaptcha": {
      "VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify",
      "RecaptchaThreshold": "0.5"
    }
  },
  "ForwardedOptions": {
    "ForwardedHeaders": 5,
    "ForwardLimit": 1,
    "TrustedNetworks": ["192.168.12.0/8"]
  }
}

需要修改部分:

<Your POSTGRES_PASSWORD>: 数据库密码、自己定义

<Your XOR_KEY>: 用于加密比赛私钥的随机字符串、随机定义

<Your PUBLIC_ENTRY>: 外部访问地址,可以是IP或域名

TrustedNetworks: 修改成自己的对应IP,防止网段冲突问题

2、docker-compose.yml 配置文件内容:

version: "3.0"
services:
  gzctf:
    image: gztime/gzctf:latest
    restart: always
    environment:
      - "GZCTF_ADMIN_PASSWORD=<Your GZCTF_ADMIN_PASSWORD>"
      # choose your backend language `en_US` / `zh_CN` / `ja_JP`
      - "LC_ALL=zh_CN.UTF-8"
    ports:
      - "80:8080"
    volumes:
      - "./data/files:/app/files"
      - "./appsettings.json:/app/appsettings.json:ro"
      # - "./kube-config.yaml:/app/kube-config.yaml:ro" # this is required for k8s deployment
      - "/var/run/docker.sock:/var/run/docker.sock" # this is required for docker deployment
    depends_on:
      - db

  db:
    image: postgres:alpine
    restart: always
    environment:
      - "POSTGRES_PASSWORD=<Your POSTGRES_PASSWORD>"
    volumes:
      - "./data/db:/var/lib/postgresql/data"

需要修改部分有:

<Your GZCTF_ADMIN_PASSWORD>:初始管理员密码一定要和平台相符,GZ的是大于8位并且有大小写字母和数字。
<Your POSTGRES_PASSWORD>: 数据库密码和刚刚appsettings里面的数据库密码必须保持一致

平台创建,使用这个命令来搭建平台:

sudo docker-compose up -d

在这里插入图片描述

拉取成功。

访问ip+80
在这里插入图片描述

三、上传镜像到自己github镜像库

1、准备条件
  • 获取Github的个人访问令牌(PAT),即Personal Access Token,需要确保 PAT 具有 read:packageswrite:packages 权限。

    在这里插入图片描述

    在这里插入图片描述

2、推送镜像
  • 登录 GitHub Container Registry: 在终端或命令行中,使用 GitHub 用户名和 GitHub 的个人访问令牌(PAT)登录 GitHub Container Registry。

    echo <PAT> | docker login ghcr.io -u <your-github-username> --password-stdin 
    

​ 将 <PAT> 替换为个人访问令牌,将 <your-github-username> 替换为 GitHub 用户名。

  • 标记你的 Docker 镜像: 使用以下命令将 Docker 镜像标记为 GitHub Container Registry 镜像:

  • docker tag <your-image-name>:<tag> ghcr.io/<your-github-username>/<your-image-name>:<tag>
    

​ 将 <your-image-name>:<tag> 替换为本地 Docker 镜像名与tag名,<your-github-username> 替换为 GitHub 用户名,<tag> 替换想要使用的标签(例如默认的latest标签)。

  • 推送 Docker 镜像到 GitHub: 使用以下命令将 Docker 镜像推送到 GitHub Container Registry:

    docker push ghcr.io/<your-github-username>/<your-image-name>:<tag> 
    

完成以上步骤后,就可以在 GitHub个人账号的 的 “Packages” 部分看到Docker 镜像了,但是该镜像默认为private镜像,Pull使用时需要先登录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值