11# 🎪 Hajimi King 🏆
22
3- 人人都是哈基米大王 👑,注意项目核心的核心是query.txt的表达式 ✨
3+ 人人都是哈基米大王 👑
4+
5+ ## 🚀 核心功能
6+
7+ 1 . ** GitHub搜索Gemini Key** 🔍 - 基于自定义查询表达式搜索GitHub代码中的API密钥
8+ 2 . ** 代理支持** 🌐 - 支持多代理轮换,提高访问稳定性和成功率
9+ 3 . ** 增量扫描** 📊 - 支持断点续传,避免重复扫描已处理的文件
10+ 4 . ** 智能过滤** 🚫 - 自动过滤文档、示例、测试文件,专注有效代码
11+ 5 . ** 外部同步** 🔄 - 支持向Gemini-Balancer和GPT-Load 同步发现的密钥
412
513## 📋 目录 🗂️
614
@@ -79,73 +87,72 @@ Ctrl + C
7987
8088## 🐳 Docker部署 🌊
8189
82- ### 1. 准备部署脚本 📜
83-
84- ``` bash
85- # 将deploy.sh复制到父目录
86- cd ${deploy_directory}
87-
88- git clone < repository-url>
89-
90- cp hajimi-king/first_deploy.sh ./
91-
92- # 或者直接下载项目到某个目录,确保目录结构如下:
93- # deploy_directory/
94- # ├── first_deploy.sh
95- # └── hajimi-king/
96- # ├── app
97- # └── ...
90+ ### 方式一:使用环境变量
91+
92+ ``` yaml
93+ version : ' 3.8'
94+ services :
95+ hajimi-king :
96+ image : ghcr.io/gakkinoone/hajimi-king:latest
97+ container_name : hajimi-king
98+ restart : unless-stopped
99+ environment :
100+ # 必填:GitHub访问令牌
101+ - GITHUB_TOKENS=ghp_your_token_here_1,ghp_your_token_here_2
102+ # 可选配置
103+ - HAJIMI_CHECK_MODEL=gemini-2.5-flash
104+ - QUERIES_FILE=queries.txt
105+ volumes :
106+ - ./data:/app/data
107+ working_dir : /app
98108` ` `
99109
100- ### 2. 一键部署 🚀
110+ ### 方式二:使用.env文件
111+
112+ ` ` ` yaml
113+ version : ' 3.8'
114+ services :
115+ hajimi-king :
116+ image : ghcr.io/gakkinoone/hajimi-king:latest
117+ container_name : hajimi-king
118+ restart : unless-stopped
119+ env_file :
120+ - .env
121+ volumes :
122+ - ./data:/app/data
123+ working_dir : /app
124+ ` ` `
101125
126+ 创建 ` .env` 文件(参考 `env.example`):
102127` ` ` bash
103- # 运行部署脚本
104- chmod +x first_deploy.sh
105-
106- ./first_deploy.sh
128+ # 复制示例配置文件
129+ cp env.example .env
130+ # 编辑配置文件,填入你的GitHub Token
107131` ` `
108132
109- 部署脚本会自动完成以下步骤:
110- 1 . ✅ 检查Docker环境 🔍
111- 2 . ✅ 创建data目录 📁
112- 3 . ✅ 复制配置文件(.env, queries.txt)📄
113- 4 . ✅ 交互式配置GitHub Token 🎛️
114- 5 . ✅ 构建Docker镜像 🏗️
115- 6 . ✅ 启动服务 🎉
116-
117- ### 3. Docker服务管理 🎛️
133+ # ## 启动服务
118134
119135` ` ` bash
120- # 查看服务状态
121- docker-compose ps
122-
123- # 查看实时日志
124- docker-compose logs -f
125-
126- # 停止服务
127- docker-compose down
136+ # 创建数据目录和查询文件
137+ mkdir -p data
138+ echo "AIzaSy in:file" > data/queries.txt
128139
129- # 重启服务
140+ # 启动服务
130141docker-compose up -d
131142
132- # 进入容器调试
133- docker-compose exec hajimi-king /bin/bash
143+ # 查看日志
144+ docker-compose logs -f
134145` ` `
135146
136- ### 4. 文件位置 🗺️
147+ # ## 代理配置
137148
138- 部署后的文件结构:
139- ```
140- deploy_directory/
141- ├── .env # 环境配置
142- ├── docker-compose.yml # Docker编排配置
143- ├── data/ # 数据目录
144- │ ├── queries.txt # 搜索查询配置
145- │ ├── keys_valid_*.txt # 发现的有效密钥
146- │ ├── keys_valid_detail_*.log # 详细日志
147- │ └── scanned_shas.txt # 已扫描文件记录
148- └── hajimi-king/ # 源码目录
149+ 如果需要使用代理访问GitHub或Gemini API,推荐使用本地WARP代理:
150+
151+ > 🌐 **代理方案**:[warp-docker](https://github.com/cmj2002/warp-docker) - 本地WARP代理解决方案
152+
153+ 在 `.env` 文件中配置:
154+ ` ` ` bash
155+ PROXY=http://localhost:1080
149156` ` `
150157
151158---
@@ -162,24 +169,33 @@ deploy_directory/
162169
163170# ## 🟡 重要配置(建议了解)🤓
164171
165- | 变量名 | 默认值 | 说明 |
166- | --------| --------------------| ---------------------------|
167- | ` DATA_PATH ` | ` ./data ` | 数据存储目录路径 📂 |
168- | ` DATE_RANGE_DAYS ` | ` 730 ` | 仓库年龄过滤(天数),只扫描指定天数内的仓库 📅 |
169- | ` QUERIES_FILE ` | ` queries.txt ` | 搜索查询配置文件路径(表达式严重影响搜索的高效性) 🎯 |
170- | ` HAJIMI_CHECK_MODEL ` | ` gemini-2.5-flash ` | 用于验证key有效的模型 🤖 |
172+ | 变量名 | 默认值 | 说明 |
173+ |--------|--------------------|-------------------------------------------------|
174+ | `DATA_PATH` | `/app/data` | 数据存储目录路径 📂 |
175+ | `DATE_RANGE_DAYS` | `730` | 仓库年龄过滤(天数),只扫描指定天数内的仓库 📅 |
176+ | `QUERIES_FILE` | `queries.txt` | 搜索查询配置文件路径(表达式严重影响搜索的高效性) 🎯 |
177+ | `HAJIMI_CHECK_MODEL` | `gemini-2.5-flash` | 用于验证key有效的模型 🤖 |
178+ | `GEMINI_BALANCER_SYNC_ENABLED` | `false` | 是否启用Gemini Balancer同步 🔗 |
179+ | `GEMINI_BALANCER_URL` | 空 | Gemini Balancer服务地址(http://your-gemini-balancer.com) 🌐 |
180+ | `GEMINI_BALANCER_AUTH` | 空 | Gemini Balancer认证信息(密码) 🔐 |
181+ | `GPT_LOAD_SYNC_ENABLED` | `false` | 是否启用GPT Load Balancer同步 🔗 |
182+ | `GPT_LOAD_URL` | 空 | GPT Load 服务地址(http://your-gpt-load.com) 🌐 |
183+ | `GPT_LOAD_AUTH` | 空 | GPT Load 认证Token(页面密码) 🔐 |
184+ | `GPT_LOAD_GROUP_NAME` | 空 | GPT Load 组名,多个用逗号分隔(group1,group2) 👥 |
171185
172186# ## 🟢 可选配置(不懂就别动)😅
173187
174- | 变量名 | 默认值 | 说明 |
175- | --------| --------------------------------------------------------------------| ------|
176- | ` PROXY ` | 空 | 代理服务器地址,格式:` http://proxy:port ` 🌐 |
177- | ` VALID_KEY_DETAIL_PREFIX ` | ` logs/keys_valid_detail_ ` | 详细日志文件名前缀 📝 |
178- | ` VALID_KEY_PREFIX ` | ` keys/keys_valid_ ` | 有效密钥文件名前缀 🗝️ |
179- | ` RATE_LIMITED_KEY_PREFIX ` | ` keys/key_429_ ` | 频率限制密钥文件名前缀 ⏰ |
180- | ` RATE_LIMITED_KEY_DETAIL_PREFIX ` | ` logs/key_429_detail_ ` | 频率限制详细日志文件名前缀 📊 |
181- | ` SCANNED_SHAS_FILE ` | ` scanned_shas.txt ` | 已扫描文件SHA记录文件名 📋 |
182- | ` FILE_PATH_BLACKLIST ` | ` readme,docs,doc/,.md,example,sample,tutorial,test,spec,demo,mock ` | 文件路径黑名单,逗号分隔 🚫 |
188+ | 变量名 | 默认值 | 说明 |
189+ |----------------------------------|------------------------------------|------|
190+ | `PROXY` | 空 | 代理服务器地址,格式:`http://proxy:port` 🌐 |
191+ | `VALID_KEY_PREFIX` | `keys/keys_valid_` | 有效密钥文件名前缀 🗝️ |
192+ | `RATE_LIMITED_KEY_PREFIX` | `keys/key_429_` | 频率限制密钥文件名前缀 ⏰ |
193+ | `KEYS_SEND_PREFIX` | `keys/keys_send_` | 发送到外部应用的密钥文件名前缀 🚀 |
194+ | `VALID_KEY_DETAIL_PREFIX` | `logs/keys_valid_detail_` | 详细日志文件名前缀 📝 |
195+ | `RATE_LIMITED_KEY_DETAIL_PREFIX` | `logs/key_429_detail_` | 频率限制详细日志文件名前缀 📊 |
196+ | `VALID_KEY_DETAIL_PREFIX` | `logs/keys_valid_detail_` | 有效密钥文件名前缀 🗝️ |
197+ | `SCANNED_SHAS_FILE` | `scanned_shas.txt` | 已扫描文件SHA记录文件名 📋 |
198+ | `FILE_PATH_BLACKLIST` | `readme,docs,doc/,.md,example,...` | 文件路径黑名单,逗号分隔 🚫 |
183199
184200# ## 配置文件示例 💫
185201
@@ -190,17 +206,30 @@ deploy_directory/
190206GITHUB_TOKENS=ghp_your_token_here_1,ghp_your_token_here_2
191207
192208# 重要配置(可选修改)
193- DATA_PATH=. /data
209+ DATA_PATH=/app /data
194210DATE_RANGE_DAYS=730
195211QUERIES_FILE=queries.txt
196- HAJIMI_CHECK_MODEL=gemini-2.5-flash-preview-05-20
212+ HAJIMI_CHECK_MODEL=gemini-2.5-flash
213+ PROXY=
214+
215+ # Gemini Balancer同步配置
216+ GEMINI_BALANCER_SYNC_ENABLED=false
217+ GEMINI_BALANCER_URL=
218+ GEMINI_BALANCER_AUTH=
219+
220+ # GPT Load Balancer同步配置
221+ GPT_LOAD_SYNC_ENABLED=false
222+ GPT_LOAD_URL=
223+ GPT_LOAD_AUTH=
224+ GPT_LOAD_GROUP_NAME=group1,group2,group3
197225
198226# 高级配置(建议保持默认)
199- PROXY=
200- VALID_KEY_DETAIL_PREFIX=logs/keys_valid_detail_
201227VALID_KEY_PREFIX=keys/keys_valid_
202228RATE_LIMITED_KEY_PREFIX=keys/key_429_
229+ KEYS_SEND_PREFIX=keys/keys_send_
230+ VALID_KEY_DETAIL_PREFIX=logs/keys_valid_detail_
203231RATE_LIMITED_KEY_DETAIL_PREFIX=logs/key_429_detail_
232+ KEYS_SEND_DETAIL_PREFIX=logs/keys_send_detail_
204233SCANNED_SHAS_FILE=scanned_shas.txt
205234FILE_PATH_BLACKLIST=readme,docs,doc/,.md,example,sample,tutorial,test,spec,demo,mock
206235` ` `
@@ -218,6 +247,7 @@ FILE_PATH_BLACKLIST=readme,docs,doc/,.md,example,sample,tutorial,test,spec,demo,
218247
219248# 基础搜索
220249AIzaSy in:file
250+ AizaSy in:file filename:.env
221251` ` `
222252
223253> 📖 **搜索语法参考**:[GitHub Code Search Syntax](https://docs.github.com/en/search-github/searching-on-github/searching-code) 📚
@@ -231,18 +261,6 @@ AIzaSy in:file
231261- ✅ 定期轮换GitHub Token 🔄
232262- ✅ 不要将真实的API密钥提交到版本控制 🙈
233263- ✅ 定期检查和清理发现的密钥文件 🧹
234- - ✅ 运行在安全的网络环境中 🏠
235-
236- ## 📞 故障排除 🩺
237-
238- | 问题 | 解决方案 |
239- | ------| ----------|
240- | GitHub API限流 ⏰ | 添加更多GitHub Token或减少并发数 🔧 |
241- | Docker构建失败 💥 | 检查网络连接,清理Docker缓存 🧽 |
242- | 找不到密钥 🔍 | 检查queries.txt配置,调整搜索关键词 🎯 |
243- | 容器启动失败 🚫 | 检查.env文件配置,确保GitHub Token有效 ✅ |
244-
245- ---
246264
247265💖 **享受使用 Hajimi King 的快乐时光!** 🎉✨🎊
248266
0 commit comments