Serverless Postgres DB with automatic DB & git branch synchronization
This plugin integrates neon.tech with Strapi. It does the following:
The neon parent branch will always be the main branch. Therefore this plugin follows the develop-preview-ship principle. This will make working with Strapi way more easy since therefore Strapi is always "seeded" with live data.
The neon-sdk
dependency requires at least node v18. Therefore this package also requires at least node v18
1npm i strapi-neon-tech-db-branches
1pnpm i strapi-neon-tech-db-branches
First create a new project in neon.tech and copy your credentials for the following Setup.
During development the git-branch does not have to be set and is automatically read from your .git/head/refs
file.
This plugin can be configured via Environment variables or via plugins.js config:
NEON_API_KEY
get it from here: https://console.neon.tech/app/settings/api-keysNEON_PROJECT_NAME
the neon project under wich your DB runsNEON_ROLE
create it manually under roles for your project firstGIT_BRANCH || GITHUB_REF_NAME || VERCEL_GIT_COMMIT_REF
The branch can be pinned via one of these env variables (will use first available). If set, plugin will not use branch from git then. Usefull for deployment or in CI1module.exports = {
2 ...
3 'strapi-neon-tech-db-branches': {
4 enabled: true,
5 config: {
6 neonApiKey: "09hx...0a8yjd", // get it from here: https://console.neon.tech/app/settings/api-keys
7 neonProjectName: "strapi-project-xyz", // the neon project under wich your DB runs
8 neonRole: "sample-user", // create it manually under roles for your project first
9 //(gitBranch: "main") // branch can be pinned via this config option. Will not use branch from git then. Usefull for preview/production deployment
10 }
11 },
12 ...
13}
For a production/preview deployment you generally do not want to deploy your whole git repo but instead build and bundle your application. Make sure to start the bundled application with environment variable GIT_BRANCH
set. Best Option is to add this env variable in your CI Pipeline to the preview deployment. In Github Actions the git branch name is available during the CI run with ${{ github.ref_name }}
.
If you have any API liveness probes/checks for your containers, make sure to use a route wich does not trigger DB usage. Otherwise your neon endpoints will run even on inactivity. DB get's triggered for example on /index.html
so better use something from the static folder like /assets/images/logo_login.png/assets/images/logo_login.png
Strapi Plugin developed and maintained by trieb.work cloud consulting
npm install strapi-neon-tech-db-branches
Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.