---
id: installing
title: Installing
slug: installing
---
### Install as a package
Install `@supabase/server` via your package manager.
```sh Terminal
npm install @supabase/server
```
```sh Terminal
yarn add @supabase/server
```
```sh Terminal
pnpm add @supabase/server
```
### Use via JSR (Deno / Bun)
`@supabase/server` is also published to [JSR](https://jsr.io/@supabase/server) for Deno and Bun environments.
```sh Terminal
deno add jsr:@supabase/server
```
```sh Terminal
bunx jsr add @supabase/server
```
### Optional peer dependencies on Deno
Some entry points rely on optional peer dependencies. `@supabase/server/middleware/postgres` and `@supabase/server/middleware/postgres-admin` need `pg`. Deno resolves an optional peer only when your own code imports it. A pin in `deno.json` alone is not enough: `deno check` passes and the function fails at startup with `Could not find package 'pg'`.
Add a bare import once, at the top of your entry module — no separate `deno add npm:pg` or `package.json` entry is needed. `deno info` lists `npm:/pg@...` once the package is in the module graph.
Deno 2.9 and later apply a minimum dependency age to npm packages. To use a release published the same day, pass `--minimum-dependency-age 0` to `deno check`.
```ts index.ts
import 'pg'
import { withPostgresClient } from '@supabase/server/middleware/postgres'
```
```sh Terminal
deno info index.ts | grep "npm:/pg@"
```