49b8e27219
- Delete supabase/ directory (config.toml, push-migrations.js, ADMIN_CREATE_STOP_FIX.sql, 137 archived migration files) - Remove @supabase/ssr and @supabase/supabase-js from package.json - Strip *.supabase.co from next.config.ts image hostnames - Strip https://*.supabase.co from vercel.json CSP connect-src - Remove 'supabase/**' ignore from eslint.config.mjs - Clean supabase references from src/lib/db.ts, vitest.config.ts, db/seeds/2026-tuxedo-tour-stops.sql, src/actions/storefront.ts, scripts/import-tuxedo-stops.ts comments - Rewrite env-var docs in README, ENVIRONMENT, PRODUCTION_SETUP, PRODUCTION_DEPLOYMENT_CHECKLIST, LAUNCH_CHECKLIST, CLAUDE, MEMORY, REPORT to drop NEXT_PUBLIC_SUPABASE_URL / SUPABASE_SERVICE_ROLE_KEY / supabase link / supabase CLI references The canonical migration runner is now scripts/migrate.js (uses pg directly via DATABASE_URL). Migrations live in db/migrations/. The Supabase CLI is no longer in the codebase. The only remaining '@supabase/*' in the dep tree is @supabase/auth-js as a transitive of @neondatabase/auth (Neon Auth / Better Auth). Final source scan: grep -rln '@supabase\|rest/v1\|supabase\.co' src/ tests/ db/ scripts/ next.config.ts vercel.json eslint.config.mjs package.json returns zero. Verification: npm install clean (11 added, 21 removed, 12 changed), tsc shows same 17 pre-existing errors (Stripe dahlia API version + fetch preconnect mocks), vitest 172/175 (3 pre-existing failures in getAdminUser.test.ts), lint shows same 14 pre-existing errors. Live-tested: dev server boots in 248ms, public storefronts (/) (/login) (/pricing) (/tuxedo) (/indian-river-direct) all return 200; /admin/v2?demo=1 reaches 200 after dev_session redirect; storefront renders real brand content.
99 lines
2.5 KiB
Markdown
99 lines
2.5 KiB
Markdown
# Route Commerce - Production Setup Guide
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Copy environment variables
|
|
cp .env.example .env.local
|
|
|
|
# Start development server
|
|
npm run dev
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### 1. Neon Auth (Better Auth)
|
|
|
|
1. Set up Neon Auth on your Neon project (`neonctl neon-auth init`)
|
|
2. Copy keys to `.env.local`:
|
|
```
|
|
NEON_AUTH_BASE_URL=https://xxx.neonauth.io
|
|
NEON_AUTH_COOKIE_SECRET=<openssl rand -base64 32>
|
|
NEXT_PUBLIC_SITE_URL=https://yourdomain.com
|
|
```
|
|
3. Configure middleware in `src/middleware.ts`
|
|
|
|
### 2. Stripe Payments
|
|
|
|
1. Create Stripe account
|
|
2. Create products and prices in Stripe Dashboard
|
|
3. Update `.env.local` with:
|
|
```
|
|
STRIPE_SECRET_KEY=sk_test_xxx
|
|
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxx
|
|
STRIPE_WEBHOOK_SECRET=whsec_xxx
|
|
```
|
|
|
|
### 3. Database (Postgres / Neon)
|
|
|
|
The app talks to Postgres directly via `pg` (no Supabase, no REST gateway). Point `DATABASE_URL` at any reachable Postgres — Neon, Supabase (the underlying Postgres), RDS, etc. The Supabase JS client and PostgREST are not used.
|
|
|
|
1. Provision a Postgres database (Neon recommended — it also hosts Neon Auth)
|
|
2. Run migrations: `npm run migrate`
|
|
3. Update `.env.local` with:
|
|
```
|
|
DATABASE_URL=postgresql://user:pass@host:5432/dbname?sslmode=require
|
|
```
|
|
|
|
### 4. Optional Services
|
|
|
|
#### Sentry (Error Monitoring)
|
|
```
|
|
SENTRY_DSN=https://xxx@sentry.io/xxx
|
|
```
|
|
|
|
#### PostHog (Analytics)
|
|
```
|
|
NEXT_PUBLIC_POSTHOG_API_KEY=phc_xxx
|
|
```
|
|
|
|
## Deployment
|
|
|
|
### Vercel
|
|
|
|
1. Connect repository to Vercel
|
|
2. Add all environment variables
|
|
3. Deploy
|
|
|
|
### Other Platforms
|
|
|
|
Ensure environment variables are set before deployment.
|
|
|
|
## Key Files
|
|
|
|
- `src/middleware.ts` - Neon Auth (Better Auth) middleware
|
|
- `src/lib/stripe-billing.ts` - Stripe integration
|
|
- `src/lib/analytics.ts` - PostHog analytics
|
|
- `src/lib/sentry.ts` - Sentry error tracking
|
|
- `src/components/admin/AnalyticsDashboard.tsx` - Admin dashboard
|
|
- `src/components/onboarding/OnboardingFlow.tsx` - User onboarding
|
|
- `src/components/referral/ReferralSystem.tsx` - Referral tracking
|
|
- `src/components/changelog/ChangelogFeed.tsx` - Product updates
|
|
- `db/migrations/` - Database schema (applied via `scripts/migrate.js`)
|
|
|
|
## Scripts
|
|
|
|
```bash
|
|
npm run dev # Start development server
|
|
npm run build # Production build
|
|
npm run lint # Run ESLint
|
|
npm run migrate # Run database migrations
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- Full documentation: [CLAUDE.md](./CLAUDE.md)
|
|
- Launch checklist: [LAUNCH_CHECKLIST.md](./LAUNCH_CHECKLIST.md) |