個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A Netflix-inspired digital publishing platform built with Next.js 14.
Release authority: docs/NEXT_GO.md governs launch status, the hard gates (G1–G13), and the Go/No-Go decision.
Current status: NO-GO / NOT RELEASE-READY until all 13 gates are evidenced TRUE. This README is a subordinate snapshot (CCR-001).
Full project documentation: docs/MANGU_PUBLISHERS_END_TO_END.md — business, architecture, env, deploy, migrations, Phase 2, and operator roadmap in one place.
GitHub Copilot CLI: docs/COPILOT_CLI.md — install, auth, and custom agents (AGENTS.md, .github/agents/).檢視完整 README ↗A Netflix-inspired digital publishing platform built with Next.js 14.
Release authority: docs/NEXT_GO.md governs launch status, the hard gates (G1–G13), and the Go/No-Go decision. Current status: NO-GO / NOT RELEASE-READY until all 13 gates are evidenced TRUE. This README is a subordinate snapshot (CCR-001).
Full project documentation: docs/MANGU_PUBLISHERS_END_TO_END.md — business, architecture, env, deploy, migrations, Phase 2, and operator roadmap in one place.
GitHub Copilot CLI: docs/COPILOT_CLI.md — install, auth, and custom agents (AGENTS.md, .github/agents/).
Vercel is the canonical production platform (ADR-001, Option B — ACCEPTED).
Cloud Run (cloudbuild.yaml) and AWS Amplify configs are retained for compatibility and emergency use only — they are not GO evidence targets.
npm install
cp .env.local.example .env.local
NEXT_PUBLIC_SUPABASE_URL - Your Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY - Your Supabase anon keySUPABASE_SERVICE_ROLE_KEY - Your Supabase service role keySTRIPE_SECRET_KEY - Your Stripe secret keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY - Your Stripe publishable keySTRIPE_WEBHOOK_SECRET - Your Stripe webhook secretOPENAI_API_KEY - Your OpenAI API keynpm run dev
The platform uses Supabase with PostgreSQL. You'll need to:
Migrations are located in supabase/migrations/ and must be applied in this exact order:
20260116000000_initial_schema.sql - Creates profiles table and core schema (required for health check)20260117000000_analytics_events.sql - Analytics event tracking20260117000001_analytics_sessions.sql - Session tracking20260117000002_book_stats_materialized.sql - Materialized views for performance20260117000003_revenue_tracking.sql - Revenue and payment tracking20260117000004_author_payouts.sql - Author payout system20260117000005_book_pricing.sql - Pricing logic and discounts20260117000006_storage_policies.sql - Storage bucket policies20260118000000_critical_fixes.sql - Bug fixes and corrections20260120000006_performance_optimizations.sql - Performance indexes20260121000000_profile_trigger.sql - Profile trigger consistency fixes20260122000000_social_features.sql - Social features schema20260619124500_add_content_type_to_books.sql - Adds content_type to books (idempotent)20260619162409_add_content_type.sql - content_type follow-up (idempotent, safe re-run)20260619170000_add_retailer_urls.sql - Retailer URL fieldsTo apply migrations:
Option 1: Using Supabase Dashboard (Recommended for first-time setup)
Option 2: Using Supabase CLI
# Install Supabase CLI if you haven't already
npm install -g supabase
# Link your project
supabase link --project-ref your-project-ref
# Apply all migrations
supabase db push
Verification: After running migrations, verify the setup by checking:
/api/health endpoint should return "status": "healthy" with database check passingprofiles table should exist (required for authentication)/app
/(auth) - Authentication pages
/(consumer) - Public-facing pages
/(portals) - Author and partner portals
/api - API routes
/components - React components
/lib - Utilities and business logic
/types - TypeScript type definitions
npm run dev - Start development servernpm run build - Build for productionnpm run start - Start production servernpm run lint - Run ESLintnpm run type-check - Run TypeScript type checkingRun the same quality checks as CI (quality-checks + unit-tests + build-test):
./scripts/ci-local.sh
Production deploys use Vercel (Git integration or CLI) from main:
vercel deploy --prod
Validate /api/health?ready=1 and critical smoke routes on the canonical origin after deploy.
Google Cloud Build + Cloud Run (cloudbuild.yaml) is retained for compatibility and emergency use only; it is not a GO evidence target:
cloudbuild.yaml from main/api/health and critical smoke routes on the custom domaindocker build -t mangu-publishers .
docker run -p 3000:3000 mangu-publishers
MIT