Step 1
Download, fork or clone the boilerplate from github and install dependencies.
git clone https://github.com/The-SaaS-Factory/backend-saas-boilerplate-node-apollo-graphql-TS.gitcd backend-saas-boilerplate-node-apollo-graphql-TSnpm installStep 2
Create a MySQL DB in your local environment (Xampp, Wamp, Laragon, etc).
Step 3
Copy the .env.example file to .env and update the environment variables accordingly.
The DATABASE_URL variable is the connection string to your MySQL DB.
Example: mysql://root:root@localhost:3306/saas-boilerplate
Clerk is already installed in the boilerplate. Only you need update the VITE_CLERK_PUBLISHABLE_KEY variable in the .env file.
https://clerk.com/docs/quickstarts/react#set-environment-keys (opens in a new tab)
Step 4
Run the prisma commands to push the schema to the database and generate the client.
npx prisma db pushStep 5
Put some data in the database by running the seed command. (Recommended)
Run the seed
npx prisma db seed Step 6
Run the development server.
npm run startStep 7
Create the admin user:
In the local App
- Go to http://localhost:5173/home (opens in a new tab)
- Click on the "Sign up" button.
In Clerk
- Go to https://dashboard.clerk.com/ (opens in a new tab) and access to your Clerk App
- Create a organization and put the user as owner.
- Edit the organizations and put in publicMetadata this:
{
"permissions": [
"superAdmin:totalAccess"
]
}When we edit an organization in Clerk, a webhook is sent to our application. In this way we synchronize the permissions that we have just placed with the permissions of our Database
For it to work we must have run seed or manually placed the permissions in the permissions table of our database
The other important thing is to have configured the webhook in clerk... For local development we suggest ngrok