Local Development
Run the full stack locally with Docker Compose.
Services
docker compose up -d starts three services:
| Service | Port | Purpose |
|---|---|---|
| PostgreSQL | 5432 | Main database |
| MinIO | 9000 / 9001 | S3-compatible file storage |
| Mailpit | 8025 | Email catch-all UI |
Viewing emails
All emails sent locally are captured by Mailpit. Open http://localhost:8025 to view them. This includes verification emails, password reset emails, and any email your app sends.
No Resend API key is needed locally.
Viewing stored files
MinIO has a browser UI at http://localhost:9001. Default credentials: minioadmin / minioadmin.
Database access
Connect with any Postgres client (e.g. TablePlus, psql):
Host: localhost
Port: 5432
User: postgres
Password: postgres
Database: shipforgeOr use Drizzle Studio:
pnpm db:studioUseful scripts
| Command | Description |
|---|---|
pnpm dev | Start Next.js dev server |
pnpm db:push | Push schema changes to local DB |
pnpm db:studio | Open Drizzle Studio |
pnpm lint | Run ESLint |
pnpm type-check | Run TypeScript type check |
pnpm test | Run Vitest unit tests |
pnpm test:e2e | Run Playwright E2E tests |