Deploying a Node.js App
Deployment means making your app accessible on the internet, running on a server, cloud platform, or container. Common options include Render, Railway, Heroku, AWS, and Docker containers.
Preparing for deployment involves setting environment variables, configuring a start script, and often using a process manager for reliability.
Preparing your app
Make sure your `package.json` has a `start` script, remove hardcoded config in favor of environment variables, and specify a Node engine version.
Process managers
Tools like PM2 keep your app running, automatically restarting it on crashes and enabling clustering in production.
// package.json
"scripts": { "start": "node server.js" },
"engines": { "node": ">=18" }A start script and engine version help hosting platforms run your app correctly.
pm2 start server.js --name my-app
pm2 statusโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโ
โ id โ name โ status โ
โ 0 โ my-app โ online โPM2 keeps the app running and restarts it automatically on crashes.
Key points
- Deployment makes your app publicly accessible.
- Use environment variables for configuration, never hardcode secrets.
- A 'start' script in package.json tells platforms how to run your app.
- Process managers like PM2 improve reliability in production.
