Installation
Step-by-step setup for local development and buyer fresh install. See Package Structure if you received a marketplace ZIP.
Buyer checklist: clone/unzip → configure .env → migrate database → run API → run frontend → use mock mode first → enable real providers when ready.
Requirements
| Requirement | Version | Notes |
|---|---|---|
| Node.js | 20+ | LTS recommended |
| npm | 9+ | Ships with Node |
| PostgreSQL | 14+ | Required for auth and modules |
| Redis | 6+ | Optional — only when QUEUES_ENABLED=true |
Mock providers by design
Billing, AI, and email use mock adapters so you can install without Stripe, OpenAI, or SMTP keys. Connect real providers later using the prepared module foundations.
Recommended buyer install flow
Backend
cd backend # or launchkit-pro-backend
npm ci
cp .env.example .envEdit .env — required before register/login:
DATABASE_URL— see Database SetupJWT_ACCESS_SECRETandJWT_REFRESH_SECRET— replace placeholders with long random stringsFRONTEND_URL=http://localhost:3000(frontend origin for CORS)QUEUES_ENABLED=false(simplest setup; no Redis workers)
Then:
npx prisma generate
npx prisma migrate deploy
npm run build
npm run start:prodVerify:
curl -s http://localhost:4000/healthDo not use npm ci --omit=dev before build
NestJS runs nest build, which needs @nestjs/cli from devDependencies. Use full npm ci, build, then optionally npm prune --omit=dev after a successful build on production servers.
Frontend
cd frontend # or launchkit-pro-frontend
npm ci
cp .env.example .env.localEdit .env.local:
NEXT_PUBLIC_API_URL=http://localhost:4000Then:
npm run build
npm run startOpen http://localhost:3000 → register → log in → dashboard.
If /auth/register returns 500, check backend terminal logs, JWT secrets, migrations, and DATABASE_URL. See Troubleshooting and Deployment Gotchas.
1. Clone or extract source
From git:
git clone <your-launchkit-pro-backend-repo> launchkit-pro-backend
git clone <your-launchkit-pro-frontend-repo> launchkit-pro-frontendFrom a marketplace ZIP, use the included backend/ and frontend/ folders.
Optional: launchkit-pro-docs (this site — can be read offline from the package without deploying a public docs URL).
2. PostgreSQL (before migrations)
Create database and app user — see Database Setup for grants, pgAdmin fields, and permission notes.
Placeholder example:
CREATE USER launchkit_user WITH PASSWORD 'replace_with_secure_password';
CREATE DATABASE launchkit_app OWNER launchkit_user;
GRANT ALL PRIVILEGES ON DATABASE launchkit_app TO launchkit_user;3. Install dependencies
Backend: npm ci (recommended) or npm install
Frontend: npm ci or npm install
4. Copy environment files
Backend: cp .env.example .env
Frontend: cp .env.example .env.local
See Environment Variables for the full reference.
5. Prisma generate and migrate
From backend folder:
npx prisma generate
npx prisma migrate deploy| Command | Who should use it |
|---|---|
migrate deploy | Buyers, production, RC/fresh install |
migrate dev | Developers changing schema locally (may need shadow DB — see Database Setup) |
TIP
Never run prisma migrate dev on production. Buyers should always use migrate deploy.
6. Start the backend
Development:
npm run start:devProduction-style:
npm run build
npm run start:prod7. Start the frontend
Development:
npm run devProduction-style:
npm run build
npm run start8. (Optional) Run buyer docs locally
This documentation ships in your package. You do not need to deploy a public docs site to develop your product.
cd launchkit-pro-docs # or docs/ in buyer ZIP
npm ci
npm run devLocal preview: http://localhost:5173 (VitePress).
Production build order (backend)
npm ci
npx prisma generate
npx prisma migrate deploy
npm run build
npm prune --omit=devChecklist
- [ ] PostgreSQL database created with correct user permissions
- [ ]
.envand.env.localconfigured (not committed) - [ ] JWT secrets set in backend
.env - [ ]
npx prisma generateandmigrate deployapplied - [ ]
GET /healthreturns OK - [ ] Frontend loads; register and login work
- [ ]
QUEUES_ENABLED=falseunless Redis is configured (Redis & Queues)
See Troubleshooting if anything fails.