This is a pnpm turborepo Next.js with Material UI.
This turborepo uses pnpm as a package manager. It includes the following packages/apps:
web
: another Next.js app with Material UIeslint-config-custom
:eslint
configurationstsconfig
:tsconfig.json
s used throughout the monorepo
Each package/app is 100% TypeScript.
To build all apps and packages, run the following command:
cd my-app
pnpm run build
To develop all apps and packages, run the following command:
cd my-app
pnpm run dev
This repo is configured to be built with Docker, and Docker compose. To build all apps in this repo:
# Create a network, which allows containers to communicate
# with each other, by using their container name as a hostname
docker network create app_network
# Build prod using new BuildKit engine
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f docker-compose.yaml build
# Start prod in detached mode
docker-compose -f docker-compose.yaml up -d
Open http://localhost:3000.
To shutdown all running containers:
# Stop all running containers
docker kill $(docker ps -aq) && docker rm $(docker ps -aq)
To clear space:
# Free space
docker system prune -af --volumes
This example includes optional remote caching. In the Dockerfiles of the apps, uncomment the build arguments for TURBO_TEAM
and TURBO_TOKEN
. Then, pass these build arguments to your Docker build.
You can test this behavior using a command like:
docker build -f apps/web/Dockerfile . --build-arg TURBO_TEAM=“your-team-name” --build-arg TURBO_TOKEN=“your-token“ --no-cache