Skip to content

Latest commit

 

History

History
50 lines (33 loc) · 2.74 KB

README.md

File metadata and controls

50 lines (33 loc) · 2.74 KB

Zerops x Nest.js

Nest.js is an amazing and popular Node.js framework. This recipe aims to showcase, through a simple file upload demo application, advanced concepts that unlock the scalebility powers of Nest.js by running it on Zerops.

nestjs


Deploy on Zerops

You can either click the deploy button to deploy directly on Zerops, or manually copy the import yaml to the import dialog in the Zerops app.

Deploy on Zerops


Recipe features

  • Load balanced Nest.js API running on Zerops Node.js service
  • Zerops PostgreSQL 16 service as database
  • Zerops Object Storage (S3 compatible) service as file system
  • Idempotent TypeORM database migrations setup
  • Logs set up to use syslog and accessible through Zerops GUI
  • Utilization of Zerops built-in environment variables system
  • Mailpit as SMTP mock server
  • Adminer for quick database management tool

Production vs. development

Base of the recipe is ready for production, the difference comes down to:

  • Use highly available version of the PostgreSQL database (change mode from NON_HA to HA in recipe YAML, db service section)
  • Use at least two containers for the Nest.js service to achieve high reliability and resilience (add minContainers: 2 in recipe YAML, api service section)
  • Use production-ready third-party SMTP server instead of Mailpit (change SMTP_ secret variables in recipe YAML, api service section)
  • Disable public access to Adminer or remove it altogether (remove service adminer from recipe YAML)

Changes made over the default installation

If you want to modify your existing Nest.js app to efficiently run on Zerops, these are the general steps we took:

  • Add zerops.yml to your repository, our example includes health checks and idempotent migrations
  • Utilize Zerops environment variables management to securely pass environment variables to your app
  • Add multer, aws-sdk packages and utilize them to upload files to S3 compatible Zerops object storage


Need help setting your project up? Join Zerops Discord community.