File size: 18,494 Bytes
4ba9d42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<?php
require_once __DIR__ . '/storage.php';

// 简单的测试认证
$testAuth = false;
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
    $users = StorageConfig::getUsers();
    $testAuth = isset($users[$_SERVER['PHP_AUTH_USER']]) && 
                $users[$_SERVER['PHP_AUTH_USER']] === $_SERVER['PHP_AUTH_PW'];
}

if (!$testAuth) {
    header('WWW-Authenticate: Basic realm="VvvebJs HF Space Check"');
    header('HTTP/1.0 401 Unauthorized');
    die('Authentication required for Hugging Face Space check');
}

// 获取环境信息
$isHuggingFace = StorageConfig::isHuggingFaceSpace();
$envDebug = StorageConfig::debugEnvironment();
$github = StorageConfig::getGitHubConfig();
$kv = StorageConfig::getKVConfig();
$storageType = StorageConfig::getStorageType();

// 检查配置状态
function checkHuggingFaceConfig() {
    $github = StorageConfig::getGitHubConfig();
    $issues = [];
    
    // 检查是否在Hugging Face Space环境
    if (!StorageConfig::isHuggingFaceSpace()) {
        $issues[] = [
            'type' => 'warning',
            'title' => '不在 Hugging Face Space 环境',
            'message' => '当前似乎不在Hugging Face Space环境中运行,某些环境变量可能无法正确读取'
        ];
    }
    
    // 检查GitHub Token
    if (empty($github['token'])) {
        $issues[] = [
            'type' => 'error',
            'title' => 'GitHub Token 未配置',
            'message' => 'GITHUB_TOKEN 环境变量为空,请在Hugging Face Space设置中添加此私有变量'
        ];
    }
    
    // 检查GitHub基本配置
    if (empty($github['owner'])) {
        $issues[] = [
            'type' => 'error',
            'title' => 'GitHub Owner 未配置',
            'message' => 'GITHUB_OWNER 环境变量为空'
        ];
    }
    
    if (empty($github['repo'])) {
        $issues[] = [
            'type' => 'error',
            'title' => 'GitHub Repo 未配置',
            'message' => 'GITHUB_REPO 环境变量为空'
        ];
    }
    
    return $issues;
}

$configIssues = checkHuggingFaceConfig();
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>VvvebJs Hugging Face Space 配置检查</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        .config-value { background-color: #f8f9fa; padding: 2px 6px; border-radius: 3px; font-family: monospace; }
        .status-ok { color: #28a745; }
        .status-error { color: #dc3545; }
        .status-warning { color: #ffc107; }
        .env-debug { background: #f8f9fa; padding: 10px; border-radius: 5px; font-family: monospace; font-size: 12px; }
    </style>
</head>
<body>
    <div class="container mt-5">

        <div class="row">

            <div class="col-md-10 mx-auto">

                <h1 class="mb-4">🚀 VvvebJs Hugging Face Space 配置检查</h1>

                

                <!-- 环境检测 -->

                <div class="card mb-4">

                    <div class="card-header">

                        <h3>🌐 运行环境检测</h3>

                    </div>

                    <div class="card-body">

                        <div class="row">

                            <div class="col-md-6">

                                <p><strong>Hugging Face Space:</strong> 

                                    <span class="<?= $isHuggingFace ? 'status-ok' : 'status-warning' ?>">

                                        <?= $isHuggingFace ? '✅ 是' : '⚠️ 否' ?>

                                    </span>

                                </p>

                                <p><strong>Space ID:</strong> 

                                    <span class="config-value"><?= htmlspecialchars($envDebug['space_id']) ?></span>

                                </p>

                                <p><strong>主机:</strong> 

                                    <span class="config-value"><?= htmlspecialchars($envDebug['host']) ?></span>

                                </p>

                            </div>

                            <div class="col-md-6">

                                <p><strong>环境变量来源:</strong> Hugging Face Space Settings</p>

                                <p><strong>检查方法:</strong> $_SERVER 和 $_ENV</p>

                                <p><strong>优先级:</strong> Space环境变量 > .env文件</p>

                            </div>

                        </div>

                    </div>

                </div>



                <!-- 配置问题检查 -->

                <?php if (!empty($configIssues)): ?>

                <div class="card mb-4">

                    <div class="card-header">

                        <h3 class="status-error">❌ 发现配置问题</h3>

                    </div>

                    <div class="card-body">

                        <?php foreach ($configIssues as $issue): ?>

                        <div class="alert alert-<?= $issue['type'] === 'error' ? 'danger' : 'warning' ?> mb-3">

                            <h5><?= htmlspecialchars($issue['title']) ?></h5>

                            <p><?= htmlspecialchars($issue['message']) ?></p>

                        </div>

                        <?php endforeach; ?>

                        

                        <div class="alert alert-info">

                            <h5>🔧 如何在 Hugging Face Space 中配置环境变量:</h5>

                            <ol>

                                <li>访问你的 <a href="https://huggingface.co/spaces" target="_blank">Hugging Face Spaces</a></li>

                                <li>点击进入你的 Space 项目</li>

                                <li>点击 <strong>Settings</strong> 标签页</li>

                                <li>在 <strong>Variables and secrets</strong> 部分添加以下环境变量:</li>

                                <ul>

                                    <li><code>GITHUB_TOKEN</code> (Private Secret) - 你的GitHub Personal Access Token</li>

                                    <li><code>GITHUB_OWNER</code> (Public) - GitHub用户名或组织名</li>

                                    <li><code>GITHUB_REPO</code> (Public) - 仓库名</li>

                                    <li><code>GITHUB_BRANCH</code> (Public) - 分支名(通常是main)</li>

                                    <li><code>GITHUB_PATH</code> (Public) - 存储路径(如: pages/)</li>

                                </ul>

                                <li>添加后点击 <strong>Restart this Space</strong> 使环境变量生效</li>

                            </ol>

                        </div>

                    </div>

                </div>

                <?php else: ?>

                <div class="alert alert-success">

                    <h3 class="status-ok">✅ 配置检查通过</h3>

                    <p>所有必需的环境变量都已正确设置在Hugging Face Space中。</p>

                </div>

                <?php endif; ?>



                <!-- 当前配置详情 -->

                <div class="card mb-4">

                    <div class="card-header">

                        <h3>📋 当前环境变量配置</h3>

                    </div>

                    <div class="card-body">

                        <div class="row">

                            <div class="col-md-6">

                                <h5>存储配置</h5>

                                <p><strong>存储类型:</strong> <span class="config-value"><?= htmlspecialchars($storageType) ?></span></p>

                                

                                <h5 class="mt-4">GitHub 环境变量</h5>

                                <p><strong>GITHUB_TOKEN:</strong> 

                                    <span class="config-value <?= empty($github['token']) ? 'status-error' : 'status-ok' ?>">

                                        <?php 

                                        if (empty($github['token'])) {
                                            echo '❌ 未设置';
                                        } else {
                                            echo '✅ ' . substr($github['token'], 0, 8) . '... (长度: ' . strlen($github['token']) . ')';
                                        }
                                        ?>
                                    </span>
                                </p>
                                <p><strong>GITHUB_OWNER:</strong> <span class="config-value"><?= htmlspecialchars($github['owner']) ?></span></p>

                                <p><strong>GITHUB_REPO:</strong> <span class="config-value"><?= htmlspecialchars($github['repo']) ?></span></p>

                                <p><strong>GITHUB_BRANCH:</strong> <span class="config-value"><?= htmlspecialchars($github['branch']) ?></span></p>

                                <p><strong>GITHUB_PATH:</strong> <span class="config-value"><?= htmlspecialchars($github['path']) ?></span></p>

                            </div>

                            <div class="col-md-6">

                                <h5>用户配置</h5>

                                <p><strong>当前用户:</strong> <span class="config-value"><?= htmlspecialchars(StorageConfig::getCurrentUser()) ?></span></p>

                                <p><strong>用户路径:</strong> <span class="config-value"><?= htmlspecialchars(StorageConfig::getUserPath()) ?></span></p>

                                

                                <h5 class="mt-4">EdgeOne KV 配置</h5>

                                <p><strong>EDGEONE_KV_API_KEY:</strong> 

                                    <span class="config-value">

                                        <?= !empty($kv['api_key']) ? '✅ ' . substr($kv['api_key'], 0, 8) . '...' : '❌ 未设置' ?>

                                    </span>

                                </p>

                                <p><strong>EDGEONE_KV_SECRET_KEY:</strong> 

                                    <span class="config-value">

                                        <?= !empty($kv['secret_key']) ? '✅ ' . substr($kv['secret_key'], 0, 8) . '...' : '❌ 未设置' ?>

                                    </span>

                                </p>

                                <p><strong>EDGEONE_KV_ZONE_ID:</strong> <span class="config-value"><?= htmlspecialchars($kv['zone_id']) ?></span></p>

                                <p><strong>EDGEONE_KV_NAMESPACE:</strong> <span class="config-value"><?= htmlspecialchars($kv['namespace']) ?></span></p>

                            </div>

                        </div>

                    </div>

                </div>



                <!-- 环境调试信息 -->

                <div class="card mb-4">

                    <div class="card-header">

                        <h3>🔍 环境调试信息</h3>

                    </div>

                    <div class="card-body">

                        <div class="env-debug">

                            <?= json_encode($envDebug, JSON_PRETTY_PRINT) ?>

                        </div>

                        <small class="text-muted">这些信息有助于调试环境变量读取问题</small>

                    </div>

                </div>



                <!-- 测试工具 -->

                <div class="card mb-4">

                    <div class="card-header">

                        <h3>🧪 测试工具</h3>

                    </div>

                    <div class="card-body">

                        <div class="row">

                            <div class="col-md-3">

                                <a href="github-advanced-test.php" class="btn btn-primary w-100">GitHub 完整测试</a>

                            </div>

                            <div class="col-md-3">

                                <a href="github-test.php" class="btn btn-info w-100">GitHub 基础测试</a>

                            </div>

                            <div class="col-md-3">

                                <a href="config-check.php" class="btn btn-secondary w-100">通用配置检查</a>

                            </div>

                            <div class="col-md-3">

                                <a href="editor.html" class="btn btn-success w-100">返回编辑器</a>

                            </div>

                        </div>

                    </div>

                </div>



                <!-- Hugging Face Space 特殊说明 -->

                <div class="card">

                    <div class="card-header">

                        <h3>📚 Hugging Face Space 配置指南</h3>

                    </div>

                    <div class="card-body">

                        <div class="accordion" id="hfAccordion">

                            <div class="accordion-item">

                                <h2 class="accordion-header">

                                    <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#hf1">

                                        如何添加环境变量?

                                    </button>

                                </h2>

                                <div id="hf1" class="accordion-collapse collapse show" data-bs-parent="#hfAccordion">

                                    <div class="accordion-body">

                                        <ol>

                                            <li>登录 <a href="https://huggingface.co" target="_blank">Hugging Face</a></li>

                                            <li>进入你的 Space: <strong>catptain-vvvebjs</strong></li>

                                            <li>点击 <strong>Settings</strong> 标签</li>

                                            <li>找到 <strong>Variables and secrets</strong> 部分</li>

                                            <li>点击 <strong>New variable</strong> 或 <strong>New secret</strong></li>

                                            <li>添加必需的环境变量</li>

                                            <li>点击 <strong>Restart this Space</strong></li>

                                        </ol>

                                    </div>

                                </div>

                            </div>

                            <div class="accordion-item">

                                <h2 class="accordion-header">

                                    <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#hf2">

                                        Public变量 vs Private密钥?

                                    </button>

                                </h2>

                                <div id="hf2" class="accordion-collapse collapse" data-bs-parent="#hfAccordion">

                                    <div class="accordion-body">

                                        <strong>Private Secrets (私有密钥):</strong>

                                        <ul>

                                            <li><code>GITHUB_TOKEN</code> - GitHub访问令牌,必须保密</li>

                                            <li><code>EDGEONE_KV_API_KEY</code> - API密钥</li>

                                            <li><code>EDGEONE_KV_SECRET_KEY</code> - 密钥</li>

                                            <li>用户密码变量</li>

                                        </ul>

                                        <strong>Public Variables (公开变量):</strong>

                                        <ul>

                                            <li><code>GITHUB_OWNER</code></li>

                                            <li><code>GITHUB_REPO</code></li>

                                            <li><code>GITHUB_BRANCH</code></li>

                                            <li><code>GITHUB_PATH</code></li>

                                            <li><code>STORAGE_TYPE</code></li>

                                            <li>用户名变量</li>

                                        </ul>

                                    </div>

                                </div>

                            </div>

                            <div class="accordion-item">

                                <h2 class="accordion-header">

                                    <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#hf3">

                                        环境变量不生效?

                                    </button>

                                </h2>

                                <div id="hf3" class="accordion-collapse collapse" data-bs-parent="#hfAccordion">

                                    <div class="accordion-body">

                                        <strong>解决步骤:</strong>

                                        <ol>

                                            <li>确认在Hugging Face SpaceSettings中正确添加了所有环境变量</li>

                                            <li>检查变量名拼写是否完全正确(区分大小写)</li>

                                            <li>确认GitHub Token有正确的权限(需要repo权限)</li>

                                            <li>保存环境变量后,一定要点击 <strong>"Restart this Space"</strong></li>

                                            <li>等待Space重启完成(通常需要1-2分钟)</li>

                                            <li>重新访问这个配置检查页面验证</li>

                                        </ol>

                                    </div>

                                </div>

                            </div>

                        </div>

                    </div>

                </div>

            </div>

        </div>

    </div>



    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>

</body>

</html>