TheShipStack Docs

Local Development

Run the full stack locally with Docker Compose.

Services

docker compose up -d starts three services:

ServicePortPurpose
PostgreSQL5432Main database
MinIO9000 / 9001S3-compatible file storage
Mailpit8025Email 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: shipforge

Or use Drizzle Studio:

pnpm db:studio

Useful scripts

CommandDescription
pnpm devStart Next.js dev server
pnpm db:pushPush schema changes to local DB
pnpm db:studioOpen Drizzle Studio
pnpm lintRun ESLint
pnpm type-checkRun TypeScript type check
pnpm testRun Vitest unit tests
pnpm test:e2eRun Playwright E2E tests

On this page