VvvebJs / hf-space-check.php
CatPtain's picture
Upload 5 files
4ba9d42 verified
<?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>