Trovo — Quick Start

From clone to running locally in a few minutes. Full docs: index.html

01Prerequisites

02Install & run

Demo credentials

RoleEmailPassword
Adminadmin@trovo.appadmin123
Providerprovider@trovo.appprovider123
Useruser@trovo.appuser123

03Environment variables (quick reference)

Required to boot: DATABASE_URL, AUTH_SECRET (≥16 chars), ENCRYPTION_KEY (64 hex chars), plus one of OPENAI_API_KEY / GOOGLE_AI_API_KEY.
VariablePurpose
DATABASE_URLNeon PostgreSQL connection string
AUTH_SECRET / AUTH_URLNextAuth secret + base URL
ENCRYPTION_KEY64 hex chars — node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
OPENAI_API_KEY / GOOGLE_AI_API_KEYAI provider (at least one)
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY / GOOGLE_MAPS_API_KEYMaps JS + Geocoding
STRIPE_*Payments + subscriptions
PAYPAL_*Optional second payment method
R2_*Listing photo uploads
RESEND_API_KEYEmail (stub-logs without it)

Full descriptions: .env.example and the Environment Variables section in index.html.

04Deploy to production (Vercel)

Full production playbook (credential rotation, payment go-live, webhooks): docs/DEPLOY.md.

05Stripe & PayPal quick setup

Stripe

PayPal

06Customization

07Troubleshooting

IssueFix
App won't start / env errorDATABASE_URL, AUTH_SECRET, or ENCRYPTION_KEY missing/invalid. ENCRYPTION_KEY must be exactly 64 hex chars.
Map shows RefererNotAllowedMapErrorAdd your domain (and localhost) to the public Maps key's HTTP-referrer restriction, and enable the Maps JavaScript API.
AI not respondingNo valid OPENAI_API_KEY / GOOGLE_AI_API_KEY, or the per-user rate limit (10/hr) was hit.
Stripe webhook signature failureSTRIPE_WEBHOOK_SECRET doesn't match the endpoint. Re-copy it (CLI prints a different secret than the dashboard).
First build: "Can't reach database server"Neon auto-suspended and cold-started. Retry / redeploy — it succeeds once the DB is awake.
Emails not sendingNo RESEND_API_KEY set → email is stub-logged to the console. Add a key to send for real.
PayPal subscription button missingThe PAYPAL_PLAN_* ids are unset. Run pnpm paypal:setup and paste them in.

08Support

Stuck on setup? Reach out — we're glad to help.

devsnack26@gmail.com