emo-online-api / scripts /setup-free-24-7.ps1
Emo Online
Deploy Emo API
dd87944
Raw
History Blame Contribute Delete
2.89 kB
# Setup gratuit 24/7 — Hugging Face Spaces (sans carte bancaire)
# Usage: powershell -ExecutionPolicy Bypass -File scripts\setup-free-24-7.ps1
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
$EnvFile = Join-Path $Root "emo\backend\.env"
$HfSpaceUrl = "https://xroxx-emo-online-api.hf.space"
Write-Host ""
Write-Host "=== Emo Online — Setup gratuit (HF Spaces, sans carte) ===" -ForegroundColor Cyan
Write-Host ""
Write-Host "Koyeb, Fly.io et Render demandent une carte bancaire." -ForegroundColor Yellow
Write-Host "Solution 100% gratuite : Hugging Face Spaces (deja configure)." -ForegroundColor Green
Write-Host ""
if (-not (Test-Path $EnvFile)) {
Write-Host ".env introuvable : copie emo\backend\.env.example vers emo\backend\.env" -ForegroundColor Red
exit 1
}
function Get-EnvValue($key) {
foreach ($line in Get-Content $EnvFile) {
if ($line -match "^\s*$key=(.*)$") {
$val = $Matches[1].Trim()
if ($val.StartsWith('"') -and $val.EndsWith('"')) { $val = $val.Substring(1, $val.Length - 2) }
return $val
}
}
return ""
}
# 1. Sync secrets + deploy HF
Write-Host "[1/2] Sync HF Space..." -ForegroundColor Yellow
$hfToken = Get-EnvValue "HF_TOKEN"
if (-not $hfToken) {
Write-Host " HF_TOKEN manquant dans emo\backend\.env" -ForegroundColor Red
Write-Host " Cree un token Write : https://huggingface.co/settings/tokens" -ForegroundColor White
Write-Host " Ajoute aussi HF_TOKEN dans GitHub > Settings > Secrets (repo emo-online)" -ForegroundColor White
} else {
try {
py -3 (Join-Path $Root "scripts\sync-hf-secrets.py")
py -3 (Join-Path $Root "scripts\push-hf-clean.py")
Write-Host " HF deploy OK" -ForegroundColor Green
} catch {
Write-Host " HF deploy echoue (SSL local ?) — le push GitHub Actions le fera au prochain push main" -ForegroundColor DarkYellow
}
}
# 2. Keepalive info
Write-Host "[2/2] Keepalive GitHub Actions (ping toutes les 12 min)" -ForegroundColor Yellow
Write-Host " Workflow : .github/workflows/free-24-7.yml" -ForegroundColor DarkGray
Write-Host " Pas besoin de EMO_API_URL si tu restes sur HF (defaut deja bon)" -ForegroundColor DarkGray
Write-Host ""
Write-Host "=== Termine ===" -ForegroundColor Green
Write-Host "Frontend : https://xeroxytb.com" -ForegroundColor Cyan
Write-Host "API : $HfSpaceUrl" -ForegroundColor Cyan
Write-Host ""
Write-Host "Checklist :" -ForegroundColor Yellow
Write-Host " 1. Space HF public + secrets (MONGO_URL, GOOGLE_*, GROQ_API_KEY, etc.)" -ForegroundColor White
Write-Host " 2. GitHub secret HF_TOKEN (Write)" -ForegroundColor White
Write-Host " 3. Google OAuth redirect : $HfSpaceUrl/api/auth/google/callback" -ForegroundColor White
Write-Host " 4. Test : $HfSpaceUrl/api/ping" -ForegroundColor White
Write-Host ""