Skip to content

Latest commit

 

History

History
91 lines (67 loc) · 1.7 KB

File metadata and controls

91 lines (67 loc) · 1.7 KB

NestJS API Example

Minimal NestJS API demonstrating ShipNode deployment with Prisma.

Features

  • Health check endpoint (/health)
  • TypeScript support
  • Decorator-based routing
  • Environment-based port configuration
  • Prisma ORM integration

Local Development

pnpm install
pnpm dev

Server runs on http://localhost:3000

Project Structure

nestjs-api/
├── src/
│   ├── app.module.ts
│   └── main.ts           # NestJS bootstrap
├── prisma/
│   └── schema.prisma     # Database schema
├── package.json
├── shipnode.conf
└── README.md

Code

// src/main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  
  app.enableShutdownHooks();
  
  const port = process.env.PORT || 3000;
  await app.listen(port);
  console.log(`Server running on port ${port}`);
}
bootstrap();

ShipNode Config

APP_TYPE=backend
SSH_USER=root
SSH_HOST=your-server-ip
REMOTE_PATH=/var/www/nestjs-api
PM2_APP_NAME=nestjs-api
BACKEND_PORT=3000
DOMAIN=api.yourdomain.com

Pre-Deploy Hook

ShipNode auto-detects NestJS and Prisma. The pre-deploy hook runs:

npx prisma generate
npx prisma migrate deploy

Deploy

shipnode deploy

Endpoints

  • GET / - Welcome message
  • GET /health - Health check (ShipNode monitoring)

Next Steps