|
| 1 | +## Example app using Couchbase |
| 2 | + |
| 3 | +[Couchbase](https://www.couchbase.com/) is a modern database for enterprise applications. This example will show you how to connect to and use Couchbase in your Next.js app. |
| 4 | + |
| 5 | +If you want to learn more about Couchbase, visit the following pages: |
| 6 | + |
| 7 | +- [Couchbase Docs](https://docs.couchbase.com/) |
| 8 | +- [Couchbase Developer Portal](https://developer.couchbase.com/) |
| 9 | +- [Couchbase Cloud](https://cloud.couchbase.com/sign-up) |
| 10 | + |
| 11 | +## Preview |
| 12 | + |
| 13 | +Preview the example live on [StackBlitz](http://stackblitz.com/): |
| 14 | + |
| 15 | +[](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-couchbase) |
| 16 | + |
| 17 | +## Deploy your own |
| 18 | + |
| 19 | +Once you have access to the environment variables you'll need, deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example): |
| 20 | + |
| 21 | +[](https://vercel.com/new/git/external?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-couchbase&project-name=with-couchbase&repository-name=with-couchbase&env=COUCHBASE_USER,COUCHBASE_PASSWORD,COUCHBASE_ENDPOINT,COUCHBASE_BUCKET,IS_CLOUD_INSTANCE&envDescription=Required%20to%20connect%20the%20app%20with%20Couchbase) |
| 22 | + |
| 23 | +## How to use |
| 24 | + |
| 25 | +Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the example: |
| 26 | + |
| 27 | +```bash |
| 28 | +npx create-next-app --example with-couchbase with-couchbase-app |
| 29 | +# or |
| 30 | +yarn create next-app --example with-couchbase with-couchbase-app |
| 31 | +``` |
| 32 | + |
| 33 | +Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). |
| 34 | + |
| 35 | +## Configuration |
| 36 | + |
| 37 | +### Set up a Couchbase database |
| 38 | + |
| 39 | +Set up a Couchbase database either locally or with [Couchbase Cloud](https://cloud.couchbase.com/sign-up). |
| 40 | + |
| 41 | +Local installation can be accomplished through a variety of methods, but [Docker](https://docs.couchbase.com/server/current/install/getting-started-docker.html) is the simplest. |
| 42 | + |
| 43 | +After Couchbase is installed, set up a cluster by following [this tutorial](https://docs.couchbase.com/server/current/manage/manage-nodes/create-cluster.html). |
| 44 | + |
| 45 | +- _NOTE:_ the **eventing** and **analytics** services can be unchecked if memory is a constraint (this is often the case with docker and other local installations). |
| 46 | + |
| 47 | +A variety of sample buckets can be installed to get up and running with a data model quickly. |
| 48 | + |
| 49 | +### Set up environment variables |
| 50 | + |
| 51 | +Copy the `env.local.example` file in this directory to `.env.local` (which will be ignored by Git): |
| 52 | + |
| 53 | +```bash |
| 54 | +cp .env.local.example .env.local |
| 55 | +``` |
| 56 | + |
| 57 | +Set each variable on `.env.local`: |
| 58 | + |
| 59 | +- `COUCHBASE_USERNAME` - The username of an authorized user on your Couchbase instance |
| 60 | +- `COUCHBASE_PASSWORD` - The corresponding password for the username specified above |
| 61 | +- `COUCHBASE_ENDPOINT` - The endpoint to connect to. Use `localhost` for a local instance of Couchbase, or the Wide Area Network address for a cloud instance. |
| 62 | +- `COUCHBASE_BUCKET` - The bucket you'd like to connect to for testing. |
| 63 | +- `IS_CLOUD_INSTANCE` - `true` if you are trying to connect to an instance of Couchbase Cloud, `false` otherwise. |
| 64 | + |
| 65 | +### Run Next.js in development mode |
| 66 | + |
| 67 | +```bash |
| 68 | +npm install |
| 69 | +npm run dev |
| 70 | +# or |
| 71 | +yarn install |
| 72 | +yarn dev |
| 73 | +``` |
| 74 | + |
| 75 | +Your app should be up and running on [http://localhost:3000](http://localhost:3000)! If it doesn't work, post on [GitHub discussions](https://github.com/vercel/next.js/discussions). |
| 76 | + |
| 77 | +You will either see a message stating "You are connected to Couchbase" or "You are NOT connected to Couchbase". Ensure that you have provided the correct environment variables. |
| 78 | + |
| 79 | +When you are successfully connected, you can refer to the [Couchbase Node.js SDK docs](https://docs.couchbase.com/nodejs-sdk/current/hello-world/start-using-sdk.html) for further instructions on how to query your database. |
| 80 | + |
| 81 | +## Deploy on Vercel |
| 82 | + |
| 83 | +You can deploy this app to the cloud with [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). |
| 84 | + |
| 85 | +#### Deploy Your Local Project |
| 86 | + |
| 87 | +To deploy your local project to Vercel, push it to GitHub/GitLab/Bitbucket and [import to Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example). |
| 88 | + |
| 89 | +## Notes |
| 90 | + |
| 91 | +- When you import your project on Vercel, make sure to click on **Environment Variables** and set the keys to match your `.env.local` file. |
| 92 | + |
| 93 | +- For a cloud deployment on Vercel, the **Environment Variables** values will need to **correspond to a cloud instance of Couchbase** (localhost will **NOT** connect from a remote server such as Vercel). Find info on [getting started with Couchbase cloud](https://developer.couchbase.com/tutorial-cloud-getting-started/). |
| 94 | + |
| 95 | + - _Important:_ you will have to allowlist 0.0.0.0/0 as the IP address, since Vercel's serverless deployments use [dynamic IP addresses](https://vercel.com/docs/solutions/databases#allowing-&-blocking-ip-addresses) |
0 commit comments