Skip to content

Commit

Permalink
docs: Add guide for deploying a Bun app to Render (#11248)
Browse files Browse the repository at this point in the history
Co-authored-by: Jess Lin <[email protected]>
Co-authored-by: Jess Lin <[email protected]>
  • Loading branch information
3 people authored May 22, 2024
1 parent 9399b70 commit cd5a97b
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ bun upgrade --canary
- [Build an HTTP server using StricJS and Bun](https://bun.sh/guides/ecosystem/stric)
- [Containerize a Bun application with Docker](https://bun.sh/guides/ecosystem/docker)
- [Create a Discord bot](https://bun.sh/guides/ecosystem/discordjs)
- [Deploy a Bun application on Render](https://bun.sh/guides/ecosystem/render)
- [Read and write data to MongoDB using Mongoose and Bun](https://bun.sh/guides/ecosystem/mongoose)
- [Run Bun as a daemon with PM2](https://bun.sh/guides/ecosystem/pm2)
- [Run Bun as a daemon with systemd](https://bun.sh/guides/ecosystem/systemd)
Expand Down
77 changes: 77 additions & 0 deletions docs/guides/ecosystem/render.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
name: Deploy a Bun application on Render
---

[Render](https://render.com/) is a cloud platform that lets you flexibly build, deploy, and scale your apps.

It offers features like auto deploys from GitHub, a global CDN, private networks, automatic HTTPS setup, and managed PostgreSQL and Redis.

Render supports Bun natively. You can deploy Bun apps as web services, background workers, cron jobs, and more.

---

As an example, let's deploy a simple Express HTTP server to Render.

---

Create a new GitHub repo named `myapp`. Git clone it locally.

```bash
git clone [email protected]:my-github-username/myapp.git
cd myapp
```

---

Add the Express library.

```bash
bun add express
```

---
Define a simple server with Express:

```app.ts
import express from "express";

const app = express();
const port = process.env.PORT || 3001;

app.get("/", (req, res) => {
res.send("Hello World!");
});

app.listen(port, () => {
console.log(`Listening on port ${port}...`);
});
```

---
Commit your changes and push to GitHub.

```bash
git add app.ts bun.lockb package.json
git commit -m "Create simple Express app"
git push origin main
```

---

In your [Render Dashboard](https://dashboard.render.com/), click `New` > `Web Service` and connect your `myapp` repo.

---

In the Render UI, provide the following values during web service creation:

| | |
| ----------- | --------- |
| **Runtime** | `Node` |
| **Build Command** | `bun install` |
| **Start Command** | `bun app.js` |

---

That's it! Your web service will be live at its assigned `onrender.com` URL as soon as the build finishes.

You can view the [deploy logs](https://docs.render.com/logging#logs-for-an-individual-deploy-or-job) for details. Refer to [Render's documentation](https://docs.render.com/deploys) for a complete overview of deploying on Render.

0 comments on commit cd5a97b

Please sign in to comment.