Files
myeasycms-v2/docs/installation/clone-repository.mdoc
Giancarlo Buomprisco 7ebff31475 Next.js Supabase V3 (#463)
Version 3 of the kit:
- Radix UI replaced with Base UI (using the Shadcn UI patterns)
- next-intl replaces react-i18next
- enhanceAction deprecated; usage moved to next-safe-action
- main layout now wrapped with [locale] path segment
- Teams only mode
- Layout updates
- Zod v4
- Next.js 16.2
- Typescript 6
- All other dependencies updated
- Removed deprecated Edge CSRF
- Dynamic Github Action runner
2026-03-24 13:40:38 +08:00

218 lines
6.3 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
status: "published"
title: "Clone the Next.js Supabase SaaS Kit Repository"
label: "Clone the Repository"
order: 4
description: "Set up your development environment and clone the Next.js Supabase SaaS Kit Turbo repository."
---
{% sequence title="Setup Steps" description="Get your development environment ready and clone the repository." %}
[Install prerequisites](#prerequisites)
[Clone the repository](#cloning-the-repository)
[Install dependencies](#install-dependencies)
[Configure Git remotes](#configure-git-remotes)
{% /sequence %}
## Prerequisites
Before cloning, install these tools:
| Tool | Required Version | Installation |
|------|-----------------|--------------|
| Node.js | **20.10.0+** | [nodejs.org](https://nodejs.org) or use nvm |
| pnpm | **10.19.0+** | `npm i -g pnpm` |
| Docker | Latest | [Docker Desktop](https://www.docker.com/products/docker-desktop/) |
| Git | Latest | [git-scm.com](https://git-scm.com) |
{% alert type="error" title="Node.js Version" %}
The kit requires Node.js 20.10.0 or later. Earlier versions will fail during installation due to engine requirements in package.json.
{% /alert %}
### Verify Your Setup
```bash
node -v # Should output v20.10.0 or higher
pnpm -v # Should output 10.19.0 or higher
docker -v # Should output Docker version
```
### Why Docker?
Supabase runs locally using Docker containers. You don't need to understand Docker internals; just have it running when you start the development server.
**macOS alternatives**: [OrbStack](https://orbstack.dev/) is faster than Docker Desktop and works as a drop-in replacement.
## Cloning the Repository
### Using SSH (recommended)
```bash
git clone git@github.com:makerkit/next-supabase-saas-kit-turbo my-saas
cd my-saas
```
### Using HTTPS
```bash
git clone https://github.com/makerkit/next-supabase-saas-kit-turbo my-saas
cd my-saas
```
If you haven't configured SSH keys, see [GitHub's SSH setup guide](https://docs.github.com/en/authentication/connecting-to-github-with-ssh).
### Windows Users
Place the repository near your drive root (e.g., `C:\projects\my-saas`) to avoid path length issues with Node.js modules.
**Avoid**: OneDrive folders, deeply nested paths, or paths with spaces.
## Install Dependencies
```bash
pnpm i
```
This installs all workspace dependencies across the monorepo. The first install takes a few minutes.
### Warnings in the terminal
You may see the following warnings in the terminal:
```
WARN Failed to create bin at /vercel/path0/node_modules/.pnpm/node_modules/.bin/supabase. ENOENT: no such file or directory
```
This is just a warning [caused by PNPM and Supabase](https://github.com/supabase/cli/issues/3489) and can be safely ignored.
Another warning you may see is:
```
Ignored build scripts: core-js-pure, sharp, unrs-resolver.
Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.
```
This is by design! We don't want to run scripts from dependencies that are not needed for the project to run properly. This is a security precaution.
## Configure Git Remotes
### Automatic Setup (recommended)
Run the setup generator to configure remotes and create your own repository:
```bash
pnpm turbo gen setup
```
This interactive script:
1. Removes the original `origin` remote
2. Adds `upstream` pointing to the MakerKit repository
3. Prompts you to create and connect your own repository
### Manual Setup
If the automatic setup fails or you prefer manual control:
**1. Remove the original origin:**
```bash
git remote rm origin
```
**2. Add upstream for updates:**
```bash
git remote add upstream git@github.com:makerkit/next-supabase-saas-kit-turbo
```
**3. Create your repository on GitHub, then add it as origin:**
```bash
git remote add origin git@github.com:your-username/your-repo.git
git push -u origin main
```
**4. Verify remotes:**
```bash
git remote -v
# origin git@github.com:your-username/your-repo.git (fetch)
# origin git@github.com:your-username/your-repo.git (push)
# upstream git@github.com:makerkit/next-supabase-saas-kit-turbo (fetch)
# upstream git@github.com:makerkit/next-supabase-saas-kit-turbo (push)
```
## Pulling Updates
To get the latest changes from MakerKit:
```bash
git pull upstream main
```
Run this regularly to stay current with bug fixes and new features.
### Automate Post-Merge Dependency Install
Create a Git hook to automatically run `pnpm i` after pulling:
```bash
cat > .git/hooks/post-merge << 'EOF'
#!/bin/bash
pnpm i
EOF
chmod +x .git/hooks/post-merge
```
This prevents the common issue of missing dependencies after pulling updates.
## Common Pitfalls
Avoid these issues that trip up most users:
1. **Wrong Node.js version**: The kit requires Node.js 20.10.0+. Using Node 18 or earlier causes silent failures and missing features.
2. **Docker not running**: Supabase commands hang indefinitely if Docker isn't started. Always open Docker Desktop before running `supabase:web:start`.
3. **Windows long paths**: Node.js modules create deeply nested folders. Place your project near the drive root (e.g., `C:\projects\my-saas`).
4. **OneDrive sync conflicts**: OneDrive can corrupt `node_modules`. Keep your project outside OneDrive-synced folders.
5. **Forgetting to set upstream**: Without the `upstream` remote, you can't pull MakerKit updates. Run `git remote -v` to verify both `origin` and `upstream` exist.
6. **Skipping `pnpm i` after updates**: Pulling changes often adds new dependencies. Always run `pnpm i` after `git pull upstream main`.
## Troubleshooting
### "Permission denied" when cloning
Your SSH key isn't configured. Either:
- Set up SSH keys following [GitHub's guide](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)
- Use HTTPS instead: `git clone https://github.com/makerkit/next-supabase-saas-kit-turbo`
### "Engine requirements not met"
Your Node.js version is too old. Install Node.js 20.10.0+ using nvm:
```bash
nvm install 20
nvm use 20
```
### Git username mismatch
If you encounter permission issues, verify your Git username matches your GitHub account:
```bash
git config user.username
```
Set it if needed:
```bash
git config --global user.username "your-github-username"
```
## Next Steps
With the repository cloned, proceed to [running the project](/docs/next-supabase-turbo/installation/running-project) to start development.