ctfer-io/ctfer
GitHub: ctfer-io/ctfer
Stars: 3 | Forks: 0
CTFer 组件负责在 Kubernetes 环境中对 CTF 平台(CTFd)及其缓存(Redis)、数据库(PostgreSQL)和 OpenTelemetry 支持进行生产就绪的部署。
## 📦 部署
### 配置
默认配置可以工作,但你可能不会得到一个 ✨ **完美** 🤌 的设置。
为此,你可以查看完整的 [`Pulumi.yaml`](Pulumi.yaml) 配置。
我们在这里详细说明其中的一些。
#### 自定义镜像
如果你想使用自定义的 CTFd 镜像(例如带有你的插件或主题)。
```
pulumi config set --path platform.image ctferio/ctfd:3.8.1-0.9.0
```
#### 配置 [Chall-Manager](https://github.com/ctfer-io/chall-manager) URL
如果你想配置 ChallManager 的 URL。
```
pulumi config set chall-manager-url http://chall-manager-svc.ctfer:8080/api/v1
```
#### 自定义证书
如果你想使用自定义证书。
我们 **强烈** 推荐用于生产目的,特别是为了防止中间人攻击、凭证泄露等。
```
# export PULUMI_CONFIG_PASSPHRASE 之前
# https://github.com/pulumi/pulumi/issues/6015
cat /path/to/crt.pem | pulumi config set --secret --path platform.crt
cat /path/to/key.pem | pulumi config set --secret --path platform.key
```
#### 文件系统
如果你需要更大的文件系统,例如用于 CTFd 的上传。
```
pulumi config set --path plateform.storage-size 10Gi
```
#### 工作线程和副本
如果你想配置 CTFd 上的多个工作线程。
```
pulumi config set-all \
--path platform.workers 3 \
--path platform.replicas 3
```
#### 请求与限制
如果你想配置不同于默认的资源。
```
pulumi config set-all \
--path platform.requests.cpu 1 \
--path platform.requests.memory 2Gi \
--path platform.limits.cpu 1 \
--path platform.limits.memory 1Gi
```
如果你不需要离线环境设置,你可以 **直接跳过到 [部署](#lets-do-it)**。
### 离线环境
要求:
- [Hauler](https://docs.hauler.dev)
首先,将你的清单与现有设置(例如在线模拟基础设施)同步。
```
cd hack
hauler store sync -f hauler-manifest-ha.yaml
hauler store copy registry://registry.dev1.ctfer-io.lab
```
然后,配置你的 Pulumi 堆栈。
```
pulumi config set-all \
images-repository registry.dev1.ctfer-io.lab \
charts-repository oci://registry.dev1.ctfer-io.lab/hauler
```
### 开始部署!
现在完成了针对特定基础设施的最后配置,你应该可以顺利部署 CTFer 了! 💪
```
pulumi config set-all \
--path platform.hostname ctfd.dev1.ctfer-io.lab \
--path ingress-labels.name traefik \
--path db.operator-namespace cnpg-system
pulumi up
```
标签:API集成, CTFd, EVTX分析, GET参数, Go, NIDS, OpenTelemetry, PostgreSQL, Pulumi, Redis, Ruby工具, 可观测性, 安全, 安全评分, 审计日志, 容器化, 数据库, 生产环境, 缓存, 网络隔离, 自动化运维, 覆盖率, 超时处理, 部署工具