A Turborepo with Strapi v4 (w/ postgres database) + Next.js powered by docker and docker-compose
Turborepo + Strapi + Next.js + Tailwind + Docker A Turborepo with Strapi v4 (w/ postgres database) + Next.js powered by docker and docker-compose.
Please make sure you have Docker and docker-compose installed in your machine. Please refer here to install them :
git clone https://github.com/theCompanyDream/turbo-strapi-nextjs
cd turbo-strapi-nextjs
.env
):cd apps/backend
cp .env.example .env
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)
# orcd
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
To develop all apps and packages, run the following command (in the project root):
docker-compose up -d
To build all apps and packages, run the following commands:
docker exec -it strapi_nextjs_turbo /bin/sh
Then run:
yarn build
This turborepo uses Yarn as a package manager. It includes the following packages/apps:
frontend
: a Next.js appbackend
: Strapi appui
: a stub React component library currently used by frontend
applicationconfig
: eslint
configurations (includes eslint-config-next
and eslint-config-prettier
)tsconfig
: tsconfig.json
s used throughout the monorepoThis turborepo has some additional tools already setup for you:
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
Learn more about the power of Turborepo: