Coder Social home page Coder Social logo

strapi-next-base's Introduction

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

strapi-next-base's People

Contributors

lowazack avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.