Appearance
Getting Started
Prerequisites
- Node.js 20+ dan pnpm 9+
- Cloudflare account dengan Workers dan Pages enabled
- Resend account untuk email (magic link)
- Google OAuth credentials untuk Google login
Setup
1. Clone dan Install
bash
git clone <repo-url>
cd xprivate
pnpm install2. Environment Variables
Buat .dev.vars di root untuk local development:
bash
# Database
DB=<your-d1-database-binding>
# Auth
BETTER_AUTH_SECRET=<random-secret>
GOOGLE_CLIENT_ID=<your-google-client-id>
GOOGLE_CLIENT_SECRET=<your-google-client-secret>
# Email
RESEND_API_KEY=<your-resend-api-key>
# R2 Storage
STORAGE_BUCKET=<your-r2-bucket-name>Untuk production, set secrets via Cloudflare dashboard atau wrangler secret put.
3. Database Setup
bash
# Generate migrations
cd packages/db
pnpm db:generate
# Apply migrations (local)
pnpm db:migrate:local
# Apply migrations (production)
pnpm db:migrate:prod4. Run Development
bash
# API (Cloudflare Worker local)
cd apps/api
pnpm dev
# Web (Vite dev server)
cd apps/web
pnpm dev
# Docs (VitePress dev server)
cd apps/docs
pnpm dev5. Deploy
bash
# Deploy API
cd apps/api
pnpm deploy
# Deploy Web
cd apps/web
pnpm deploy
# Deploy Docs
cd apps/docs
pnpm deployProject Structure
apps/
web/ # React + Vite frontend
api/ # oRPC API backend
docs/ # VitePress documentation (this site)
packages/
db/ # D1 schema, Drizzle ORM, migrations
auth/ # better-auth config
email/ # Resend email sender
storage/ # R2 client for uploads
shared/ # Types and utilitiesCommon Commands
| Command | Description |
|---|---|
pnpm install | Install all dependencies |
pnpm build | Build all packages and apps |
pnpm biome format --write . | Format all code |
pnpm biome check | Lint and format check |
pnpm db:generate | Generate Drizzle migrations |
pnpm db:migrate | Apply migrations |
Troubleshooting
worker-configuration.d.ts not found
File ini di-generate otomatis oleh wrangler types saat pnpm install. Kalau hilang:
bash
npx wrangler typesD1 migration failed
Pastikan database binding sudah benar di wrangler.jsonc dan .dev.vars.
Auth callback error
Pastikan Google OAuth redirect URI sudah di-set di Google Console:
- Local:
http://localhost:8788/api/auth/callback/google - Production:
https://<your-domain>/api/auth/callback/google
Next Steps
- Baca Architecture untuk memahami arsitektur sistem.
- Baca Authentication untuk flow auth dan role system.
- Baca Database untuk schema dan konvensi.
- Lihat MVP Plan untuk roadmap pengembangan.