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 :
- Docker installation
- Docker compose installation
- Clone this repository :
git clone https://github.com/Elvincth/turbo-strapi-nextjs- Change directory
cd turbo-strapi-nextjs- Change directory to our strapi application
cd apps/backend- Create a .env file which stores strapi and postgres configuration, based on the .env.example file:
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
.envfile
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_aboveTo develop all apps and packages, run the following command (in the project root):
docker-compose up -dTo build all apps and packages, run the following commands:
docker exec -it strapi_nextjs_turbo /bin/shThen run:
yarn buildThis 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 byfrontendapplicationconfig:eslintconfigurations (includeseslint-config-nextandeslint-config-prettier)tsconfig:tsconfig.jsons used throughout the monorepo
This turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Jest test runner for all things JavaScript
- Prettier for code formatting
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/shnpx 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:
