Skip to content

A Turborepo with Strapi v4 (w/ postgres database) + Next.js powered by docker and docker-compose

Notifications You must be signed in to change notification settings

Elvincth/turbo-strapi-nextjs

Repository files navigation

Turborepo + Strapi + Next.js + Docker

A Turborepo with Strapi v4 (w/ postgres database) + Next.js powered by docker and docker-compose.

⚠️ Prerequisites

Please make sure you have Docker and docker-compose installed in your machine. Please refer here to install them :

  1. Docker installation
  2. Docker compose installation

Getting Started

  1. Clone this repository :
git clone https://github.com/Elvincth/turbo-strapi-nextjs
  1. Change directory
cd turbo-strapi-nextjs

Setup strapi configuration (.env) :

  1. Change directory to our strapi application
cd apps/backend
  1. Create a .env file which stores strapi and postgres configuration, based on the .env.example file:
cp .env.example .env
  1. Define the admin JWT Token

    In order to make the admin login work you need to define the secret you want to use in .env file

Generate a secure token:

openssl rand 64 | base64 # (linux/macOS users)
# or
node -e "console.log(require('crypto').randomBytes(64).toString('base64'))" # (all users)

Add it to your env variables (apps/backend/.env):

ADMIN_JWT_SECRET=token_generated_above

Develop

To develop all apps and packages, run the following command (in the project root):

docker-compose up -d

Build

To build all apps and packages, run the following commands:

docker exec -it strapi_nextjs_turbo /bin/sh

Then run:

yarn build

What's inside?

This turborepo uses Yarn as a package manager. It includes the following packages/apps:

Apps and Packages

  • frontend: a Next.js app
  • backend: Strapi app
  • ui: a stub React component library currently used by frontend application
  • config: eslint configurations (includes eslint-config-next and eslint-config-prettier)
  • tsconfig: tsconfig.jsons used throughout the monorepo

Utilities

This turborepo has some additional tools already setup for you:

Remote Caching

Turborepo can use a technique known as Remote Caching (Beta) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.

By default, Turborepo will cache locally. To enable Remote Caching (Beta) you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:

docker exec -it strapi_nextjs_turbo /bin/sh
npx turbo login

This will authenticate the Turborepo CLI with your Vercel account.

Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your turborepo:

npx turbo link

Useful Links

Learn more about the power of Turborepo:

Credits

About

A Turborepo with Strapi v4 (w/ postgres database) + Next.js powered by docker and docker-compose

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published