CTFriend
Agentic AI framework that leverages MCP servers to aid CTF participants.
Table of Contents
About The Project
Built With
Getting Started
Prerequisites
Installation
Usage
Grafana Setup
Prometheus Setup
PostgreSQL Seetup
Setup Dashboards
Roadmap
Contributing
License
Contact
Acknowledgments
关于项目

CTFriend是一个代理框架,它利用MCP服务器提供 基于外部聊天的服务器,以帮助CTF参与者。此外,CTFriend 提供日志记录,以深入了解人类与人工智能的交互。
(back to top)
构建于
- python
- FastMCP
- 码头工人
- Postgres
- 格拉法纳
(back to top)
入门指南
设置CTFriend时,设置已被打包到由Docker Compose控制的Docker容器中。同时,为了便于网络使用,可以进行裸机安装。部署应该使用Docker完成。
先决条件
唯一需要的前提是Docker和Docker compose。要安装Docker compose,请按照Docker中的本教程进行操作。
安装
- 克隆仓库
git clone git@github.com:TribeCTF/TribeCTF-AI.git- 设置环境变量
cp .env.example .env
# replace POSTGRES_PASSWORD and TOKEN_SECRET_KEY- 安装Docker容器
_确保docker正在运行_
docker-compose up --build(back to top)
生成用户令牌
CTFriend使用白名单令牌,每个用户都有自己的个人令牌来识别他们以及他们在系统中的聊天记录。要创建此令牌,请使用以下说明。
登录ctfriend容器并运行以下命令:
cd app
python3 token_manager.py whitelist [email]用法
使用此空间显示如何使用项目的有用示例。其他截图、代码示例和演示在这个领域效果很好。您还可以链接到更多资源。
_有关更多示例,请参阅 文档_
(back to top)
Grafana设置
配置Grafana:
打开您的网络浏览器,转到http://\:3000。
使用以下方式登录:
- 用户名:admin
- 密码:admin。
Prometheus设置
添加Prometheus数据源:
转到“连接”->“数据源”->“添加新数据源”。
选择“普罗米修斯”。
对于“Prometheus服务器URL”,请输入 http://prometheus:9090.
点击“保存并测试”。
PostgreSQL设置
添加PostgreSQL数据源:
转到“连接”->“数据源”->“添加新数据源”。
选择“PostgreSQL”。
使用以下连接详细信息:
- 名称:postgres_db
- 主机:db:5432
- 数据库:指标
- 用户:\
- 密码:\
- TLS/SSL模式:禁用
- 版本:15
- 时间刻度数据库:True
Postgres Settings1 Postgres Settings2
点击“保存并测试”。如果你想让Grafana的数据源自动链接到聊天数据仪表板,你可能需要给它一个特定的UID,比如postgres_db。
设置仪表板
导入仪表板:
转到“仪表板”->“新建”->“导入”。
上传grafana-system-dashboard.json文件。出现提示时选择“Prometheus”数据源。
对grafana-chat-dashboard.json文件重复该过程,选择“PostgreSQL”数据源。
(back to top)
备份
# view/manage cron jobs
crontab -l
# edit a cron job
crontab -e
# job for backing up CTFriend
*/5 * * * * "/home/ctfadmin/CTFriend/backup.sh" >> "/home/ctfadmin/CTFriend/crontab.out" 2>&1路线图
- \[x\] UI框架设置
- \[x\] API关键支持
- \[\]多LLM支持
- \[x\] 双子座 - \[x\] OpenAI - \[x\] 奥拉马
- \[x\] MCP支持
- \[x\] CyberChef - \[x\] RAG知识库
(back to top)
贡献
贡献使开源社区成为一个学习、激励和创造的好地方。你所做的任何贡献都是 非常感谢.
如果你有一个建议可以让这变得更好,请分叉仓库并创建一个pull请求。您也可以使用标签“增强”简单地打开一个问题。 别忘了给这个项目一颗星!再次感谢!
- 分叉项目
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支机构(
git push origin feature/AmazingFeature) - 打开拉取请求
(back to top)
许可证
在无许可证下分发。看 LICENSE.txt 了解更多信息。
(back to top)
致谢
(back to top)
