☰
CTF Wiki 本地部署完整指南:3 条命令 5 分钟跑通离线 CTF 知识库
2026/11/6 1:42:44 网站建设 项目流程

CTF Wiki 本地部署完整指南:3 条命令 5 分钟跑通离线 CTF 知识库

【免费下载链接】ctf-wikiCome and join us, we need you!项目地址: https://gitcode.com/gh_mirrors/ct/ctf-wiki

CTF Wiki 是覆盖 Web、密码学、逆向、Pwn 等赛道的开源 CTF 知识库。本文带你完成 ctf-wiki 本地部署:从克隆仓库、装依赖到构建验证,3 条核心命令跑完,5 分钟在浏览器里看到三语站点。

什么场景下你会用到 ctf-wiki 本地部署

安全团队把 CTF 参考资料搬进内网培训环境,学习时不再依赖外网;个人学习者在本地搭一份知识库,改一行 Markdown 就能实时看到渲染效果;想给社区贡献内容的人,也需要先本地起一份站点验证排版与导航。下面按真实操作时序走一遍。

环境准备清单

项目要求说明
Git任意版本克隆仓库
Python3.6+运行构建脚本(Dockerfile 基于 python:3.8-alpine)
依赖包requirements.txtmkdocs、mkdocs-material、pymdown-extensions、typer、mkdocs-minify-plugin
网络仅首次拉代码与装包

环境就绪后,进入第一步。

上手流程:从克隆到启动 5 个步骤

1. 获取代码

目的:把仓库拉到本地工作目录。

git clone https://gitcode.com/gh_mirrors/ct/ctf-wiki

成功标志:当前目录出现ctf-wiki文件夹,内含 docs/zh/、scripts/、requirements.txt。接下来装依赖。

2. 安装依赖

目的:装齐 mkdocs 文档框架及其主题、扩展。

pip install -r requirements.txt

成功标志:终端输出Successfully installed且无 ERROR。依赖装好后就可以构建站点。

3. 构建静态站点

目的:一键生成中文、英文、繁中三语静态页面。

python3 scripts/docs.py build-all

成功标志:依次打印Building docs for: zh、Building docs for: en、Building docs for: zh-tw,最后输出绿色的Successfully built docs for: ...,项目根目录多出site/与docs_build/两个目录。构建完成后,下一步起服务。

4. 启动本地服务

目的:用内置 HTTP 服务托管刚生成的静态站点。

python3 scripts/docs.py serve

成功标志:终端显示Serving at: http://127.0.0.1:8008,浏览器打开该地址能看到首页,切换 en、zh-tw 语言路径均正常。至此部署完成;如果只想要最简方式,也可以直接看下一节的容器化方案。

5. Docker 部署(可选)

目的:跳过 Python 环境,直接起一份 nginx 托管的静态站点。

docker run -d --name=ctf-wiki -p 4100:80 ctfwiki/ctf-wiki

成功标志:访问http://localhost:4100/能看到与本地构建一致的三语站点。这条路径适合只想「看」而不想「改」的场景。

能力盘点:部署完成后你能做什么

  • 断网也能学:Web、密码学、逆向、Pwn 等全部条目离线可读,适合内网与培训环境。
  • 改文档即时生效:本地实例支持动态更新,Markdown 一改,对应页面随之刷新。
  • 贡献前自查:想给 中文文档 提内容,先本地跑一遍,排版与导航不会翻车。
  • 快速出静态包:需要对外分发时,构建脚本直接产出site/,交给任意静态服务器即可。

踩坑排查:3 个高频问题

现象:8008 端口被占用,服务起不来

原因:端口 8008 硬编码在 scripts/docs.py 的serve命令里,无法用参数改。解法:改用 Docker 部署,映射到空闲端口:

docker run -d --name=ctf-wiki -p 4100:80 ctfwiki/ctf-wiki

现象:build-all 报找不到 mkdocs 命令

原因:依赖没装进当前 Python 环境(多版本切换或全局/虚拟环境混用时常见)。解法:确认 pip 与 python 是同一套环境后重装:

pip install -r requirements.txt

现象:改了 Markdown,页面却不变

原因:serve命令只预览已构建的site/快照,不是开发服务器。解法:用live命令起带 livereload 的开发服务,改动自动刷新:

python3 scripts/docs.py live

行动收尾:更新内容与下一步

远程仓库有更新时,执行git pull后重新跑python3 scripts/docs.py build-all再启动服务即可;构建逻辑、三语导航与语言切换都在 scripts/docs.py 中,想加语言可参考其中的new_lang命令。学习路径建议从 中文文档首页 出发,按 Web、密码学、逆向、Pwn 主线推进;准备投稿前,先读docs/zh/docs/contribute/里的贡献规范。

【免费下载链接】ctf-wikiCome and join us, we need you!项目地址: https://gitcode.com/gh_mirrors/ct/ctf-wiki

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询