51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
---
|
|
title: Run Bun as a daemon with PM2
|
|
sidebarTitle: PM2 with Bun
|
|
mode: center
|
|
---
|
|
|
|
[PM2](https://pm2.keymetrics.io/) is a process manager that runs your applications as daemons (background processes).
|
|
|
|
PM2 offers process monitoring, automatic restarts, and scaling. It keeps your application running when you deploy it to a cloud-hosted virtual private server (VPS).
|
|
|
|
---
|
|
|
|
You can use PM2 with Bun in two ways: as a CLI option or in a configuration file.
|
|
|
|
### With `--interpreter`
|
|
|
|
To start your application with PM2 and Bun as the interpreter, run:
|
|
|
|
```bash terminal icon="terminal"
|
|
pm2 start --interpreter ~/.bun/bin/bun index.ts
|
|
```
|
|
|
|
---
|
|
|
|
### With a configuration file
|
|
|
|
Alternatively, create a file named `pm2.config.cjs` in your project directory and add the following content.
|
|
|
|
```js pm2.config.cjs icon="file-code"
|
|
module.exports = {
|
|
name: "app", // Name of your application
|
|
script: "index.ts", // Entry point of your application
|
|
interpreter: "bun", // Bun interpreter
|
|
env: {
|
|
PATH: `${process.env.HOME}/.bun/bin:${process.env.PATH}`, // Add "~/.bun/bin/bun" to PATH
|
|
},
|
|
};
|
|
```
|
|
|
|
---
|
|
|
|
After saving the file, start your application with PM2.
|
|
|
|
```bash terminal icon="terminal"
|
|
pm2 start pm2.config.cjs
|
|
```
|
|
|
|
---
|
|
|
|
Your JavaScript/TypeScript web server now runs as a daemon with PM2, using Bun as the interpreter.
|