尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗TanStack Start (React 19) + Supabase + OpenRouter, déployé sur Vercel via Nitro.
cp .env.example .env # puis remplissez les valeurs
npm install
npm run dev # http://localhost:3000
npm run typecheck · npm run lint · npm run build
L'ancien backend était un projet Supabase géré par Lovable Cloud. Créez votre propre projet sur supabase.com, puis :
pg_cron et pg_net.drizzle/migrations/0000 → 0017) :
DATABASE_URL="postgresql://…" npm run db:migrate
(ou collez chaque fichier .sql, dans l'ordre, dans le SQL Editor).https://VOTRE-DOMAINE/** dans Redirect URLs.https://<ref>.supabase.co/auth/v1/callback).select public.configure_app_url('https://VOTRE-DOMAINE');
(active le worker du Studio et la purge quotidienne des médias via pg_cron).insert into public.user_roles (user_id, role) values ('<votre-user-id>', 'admin');
vercel.json fournit les commandes, aucun preset à choisir).DATABASE_URL, inutile à l'exécution). Les variables VITE_* doivent exister au build.TECHNOVA_APP_URL sur l'URL finale et redéployez.Créez vos propres applications OAuth, toutes avec la redirect URI
https://VOTRE-DOMAINE/oauth/connect/return :
| Service | Où créer l'app | Variables |
|---|---|---|
| GitHub | Settings → Developer settings → OAuth Apps | GITHUB_OAUTH_CLIENT_ID/SECRET |
| Google Drive | Google Cloud Console → Identifiants (API Drive activée) | GOOGLE_DRIVE_OAUTH_CLIENT_ID/SECRET |
| Notion | notion.so/my-integrations → intégration publique | NOTION_OAUTH_CLIENT_ID/SECRET |
Un connecteur sans variables s'affiche « Configuration requise ».
TECHNOVA_CONN_CRYPTO_KEY), state OAuth signé HMAC.service_role uniquement.security_events, en-têtes HTTP de sécurité.web_fetch) ne peuvent pas viser le réseau interne (anti-SSRF).x-worker-token ou CRON_SECRET).POST /api/ai/chat avec Authorization: Bearer tn_live_… (clé créée dans le tableau de bord) :
{ "model": "openai/gpt-4o-mini", "messages": [{ "role": "user", "content": "Bonjour" }], "idempotency_key": "…" }