From 24c7fa2c22040d35231083dde70f29e7ddd4247f Mon Sep 17 00:00:00 2001
From: Bruno Tot Enable GitHub actions to create and approve pull requests.
+
+ - Go to **Settings** > **Actions** > **General** > **Workflow permissions**.
+ - Enable the following settings:
+ - ✅ `Read and write permissions`.
+ - ✅ `Allow GitHub Actions to create and approve pull requests`.
+ - Save changes.
+
+ Run existing actions for the first time.
+
+ - Go to **Actions** > **typedoc-generator.yml**.
+ - Click on the `Run workflow` button.
+ - Repeat the process for all `test-` prefixed workflows.
+ - After all workflows finish, navigate to **Settings** > **Pages**.
+ - Select the `gh-pages` branch as the deployment source.
+ - Save changes.
+
+ Configure branch protection rules to prevent direct pushes to the `main` branch, require pull requests for merging, and all status checks to pass before merging.
+
+ - Navigate to **Settings** > **Branches** > **Add classic branch protection rule**.
+ - Set the branch name pattern to `main`.
+ - Enable the following settings:
+ - ✅ `Require a pull request before merging`
+ - ✅ `Require status checks to pass before merging`
+ - ✅ `Require branches to be up to date before merging`
+ - Disable the setting:
+ - ❌ `Require approvals`
+ - Select the following workflows as required for all pull requests:
- **test-app-node-express**
- **test-app-vite-react**
- **test-lib-commons**
- **test-lib-api-client**
- - save configuration
+ - Save the configuration.
+
+ 1. Create your repository
----
+Create your monorepo repository using [this template](https://github.com/new?template_name=mern-monorepo-starter&template_owner=brunotot).
-2. **Configure GitHub workflow permissions**
+Enable GitHub actions to create and approve pull requests.
+2. Configure GitHub permissions
- - Go to **Settings** > **Actions** > **General** > **Workflow permissions**.
- - Enable the following settings:
- - ✅ `Read and write permissions`.
- - ✅ `Allow GitHub Actions to create and approve pull requests`.
- - Save changes.
+Enable GitHub actions to create and approve pull requests.
- 3. Configure GitHub actions
- Run existing actions for the first time.
+Run existing actions for the first time.
- - Go to **Actions** > **typedoc-generator.yml**.
- - Click on the `Run workflow` button.
- - Repeat the process for all `test-` prefixed workflows.
- - After all workflows finish, navigate to **Settings** > **Pages**.
- - Select the `gh-pages` branch as the deployment source.
- - Save changes.
+- Go to **Actions** > **typedoc-generator.yml**.
+- Click on the `Run workflow` button.
+- Repeat the process for all `test-` prefixed workflows.
+- After all workflows finish, navigate to **Settings** > **Pages**.
+- Select the `gh-pages` branch as the deployment source.
+- Save changes.
- 4. Configure GitHub ci
-4. **Configure GitHub CI**
+Configure branch protection rules to prevent direct pushes to the `main` branch, require pull requests for merging, and all status checks to pass before merging.
- Configure branch protection rules to prevent direct pushes to the `main` branch, require pull requests for merging, and all status checks to pass before merging.
+- Navigate to **Settings** > **Branches** > **Add classic branch protection rule**.
+- Set the branch name pattern to `main`.
+- Enable the following settings:
+ - ✅ `Require a pull request before merging`
+ - ✅ `Require status checks to pass before merging`
+ - ✅ `Require branches to be up to date before merging`
+- Disable the setting:
+ - ❌ `Require approvals`
+- Select the following workflows as required for all pull requests:
+ - **test-app-node-express**
+ - **test-app-vite-react**
+ - **test-lib-commons**
+ - **test-lib-api-client**
+- Save changes.
- - Navigate to **Settings** > **Branches** > **Add classic branch protection rule**.
- - Set the branch name pattern to `main`.
- - Enable the following settings:
- - ✅ `Require a pull request before merging`
- - ✅ `Require status checks to pass before merging`
- - ✅ `Require branches to be up to date before merging`
- - Disable the setting:
- - ❌ `Require approvals`
- - Select the following workflows as required for all pull requests:
- - **test-app-node-express**
- - **test-app-vite-react**
- - **test-lib-commons**
- - **test-lib-api-client**
- - Save the configuration.
-
- 1. Create your repository
Create your monorepo repository using [this template](https://github.com/new?template_name=mern-monorepo-starter&template_owner=brunotot).
2. Configure GitHub permissions
Enable GitHub actions to create and approve pull requests.
@@ -67,7 +67,7 @@ Enable GitHub actions to create and approve pull requests.
3. Configure GitHub actions
Run existing actions for the first time.
@@ -81,7 +81,7 @@ Run existing actions for the first time.
4. Configure GitHub ci
Configure branch protection rules to prevent direct pushes to the `main` branch, require pull requests for merging, and all status checks to pass before merging.
@@ -105,10 +105,41 @@ Configure branch protection rules to prevent direct pushes to the `main` branch,
### Local installation
-1. clone previously created repository into your local machine
-2. install dependencies with `pnpm install`
-3. configure `.env.development.local` variables for **app-node-express** (see env schema defined at [env.setup.ts](https://github.com/brunotot/mern-monorepo-starter/blob/main/packages/app-node-express/src/setup/env.setup.ts#L13))
-4. you can now run your **app-node-express** with `pnpm run app-node-express:dev`
+1. Clone to local machine
+
+Clone previously created repository into your local machine.
+
+```sh
+git clone https://github.com/YOUR_USER/YOUR_REPO.git
+```
+
+2. Install dependencies
+
+Install dependencies with `pnpm`
+
+```sh
+pnpm install
+```
+
+3. Configure environment variables
+
+Configure `.env.development.local` variables for **app-node-express** (see env schema defined at [env.setup.ts](https://github.com/brunotot/mern-monorepo-starter/blob/main/packages/app-node-express/src/setup/env.setup.ts#L13))
+
+4. Run a sample app locally
+
+You can now run your **app-node-express** with `pnpm run app-node-express:dev`
+
+
@@ -16,34 +27,23 @@
TOC
-- [What is `typescript-monorepo-starter`?](#what-is-typescript-monorepo-starter)
-- [Prerequisites](#prerequisites)
-- [Installation](#installation)
+- [🧐 What is `typescript-monorepo-starter`?](#-what-is-typescript-monorepo-starter)
+- [🔧 Prerequisites](#-prerequisites)
+- [💻 Installation](#-installation)
- [GitHub repository setup](#github-repository-setup)
- [Local installation](#local-installation)
-- [Deploy](#deploy)
+- [🚢 Deploy](#-deploy)
- [Deploy with Railway](#deploy-with-railway)
-- [Recommended VSCode extensions](#recommended-vscode-extensions)
-
-## What is `typescript-monorepo-starter`?
-
-`typescript-monorepo-starter` is a GitHub template designed to kickstart your next **TypeScript 5** project, offering an opinionated, ready-to-use monorepo structure that takes care of all the tricky configuration for you.
-
-The following [packages](https://github.com/brunotot/typescript-monorepo-starter/tree/main/packages) are implemented and at your disposal:
-
-- [app-node-express](https://expressjs.com/) [[TS Compiler](https://www.typescriptlang.org/), [NodeJS](https://nodejs.org/en/about), [Express API](https://expressjs.com/en/starter/hello-world.html), [MongoDB](https://www.mongodb.com/company/what-is-mongodb), [Keycloak](https://www.keycloak.org/), [Railway](https://railway.app/)]
-- [app-vite-react](https://reactjs.org/) [[Vite](https://vitejs.dev/guide/why.html), [ReactJS](https://react.dev/), [Railway](https://railway.app/)]
-- [lib-api-client](https://www.typescriptlang.org/) [[TS Compiler](https://www.typescriptlang.org/), [ts-rest](https://ts-rest.com/)]
-- [lib-commons](https://www.typescriptlang.org/) [[TS Compiler](https://www.typescriptlang.org/)]
+- [🧩 Recommended VSCode extensions](#-recommended-vscode-extensions)
-## Prerequisites
+## 🔧 Prerequisites
- **PNPM**
- **Node.js**
- **Git**
- **VS Code** (Optional)
-## Installation
+## 💻 Installation
### GitHub repository setup
@@ -141,7 +141,7 @@ You can now run your **app-node-express** with `pnpm run app-node-express:dev`
-## Deploy
+## 🚢 Deploy
### Deploy with Railway
@@ -151,7 +151,7 @@ You can now run your **app-node-express** with `pnpm run app-node-express:dev`
4. select **`typescript-monorepo-starter`** template
5. finally, deploy changes 🚀
-## Recommended VSCode extensions
+## 🧩 Recommended VSCode extensions
- [Auto Import - ES6, TS, JSX, TSX](https://marketplace.visualstudio.com/items?itemName=NuclleaR.vscode-extension-auto-import)
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
From 32f999c32b92889c7e22e18b2b60d5097bf84c6b Mon Sep 17 00:00:00 2001
From: Bruno Tot 1. Create your repository
-
-Create your monorepo repository using [this template](https://github.com/new?template_name=mern-monorepo-starter&template_owner=brunotot).
+1. Create your repository
Create your monorepo repository using this template.2. Configure GitHub permissions
+2. Configure GitHub permissions
Enable GitHub actions to create and approve pull requests.Configure GitHub actions
Run existing actions for the first time.Run workflow
button.test-
prefixed workflows.gh-pages
branch as the deployment source.3. Configure GitHub actions
-
-Run existing actions for the first time.
-
-- Go to **Actions** > **typedoc-generator.yml**.
-- Click on the `Run workflow` button.
-- Repeat the process for all `test-` prefixed workflows.
-- After all workflows finish, navigate to **Settings** > **Pages**.
-- Select the `gh-pages` branch as the deployment source.
-- Save changes.
-
-4. Configure GitHub ci
-
-Configure branch protection rules to prevent direct pushes to the `main` branch, require pull requests for merging, and all status checks to pass before merging.
-
-- Navigate to **Settings** > **Branches** > **Add classic branch protection rule**.
-- Set the branch name pattern to `main`.
-- Enable the following settings:
- - ✅ `Require a pull request before merging`
- - ✅ `Require status checks to pass before merging`
- - ✅ `Require branches to be up to date before merging`
-- Disable the setting:
- - ❌ `Require approvals`
-- Select the following workflows as required for all pull requests:
- - **test-app-node-express**
- - **test-app-vite-react**
- - **test-lib-commons**
- - **test-lib-api-client**
-- Save changes.
-
-Configure GitHub ci
Configure branch protection rules to prevent direct pushes to the main
branch, require pull requests for merging, and all status checks to pass before merging.main
.Require a pull request before merging
Require status checks to pass before merging
Require branches to be up to date before merging
Require approvals
Create your repository
Create your monorepo repository using this template.Configure GitHub permissions
Enable GitHub actions to create and approve pull requests.Configure GitHub permissions
Enable GitHub actions to create and approve pull requests.Read and write permissions
Allow GitHub Actions to create and approve pull requests
Configure GitHub actions
Run existing actions for the first time.Run workflow
button.test-
prefixed workflows.gh-pages
branch as the deployment source.1. Clone to local machine
+1. Clone to local machine
Clone previously created repository into your local machine.git clone https://github.com/YOUR_USER/YOUR_REPO.git
Install dependencies
Install dependencies with pnpm
.pnpm install
Configure environment variables
Configure .env.development.local
variables for app-node-express (see env schema defined at env.setup.ts2. Install dependencies
-
-Install dependencies with `pnpm`
-
-```sh
-pnpm install
-```
-
-3. Configure environment variables
-
-Configure `.env.development.local` variables for **app-node-express** (see env schema defined at [env.setup.ts](https://github.com/brunotot/mern-monorepo-starter/blob/main/packages/app-node-express/src/setup/env.setup.ts#L13))
-
-4. Run a sample app locally
-
-You can now run your **app-node-express** with `pnpm run app-node-express:dev`
-
-Run a sample app locally
You can now run your app-node-express with:pnpm run app-node-express:dev
Create new Railway project
Create a new project through Railway's dashboard and connect it to your GitHub monorepoImport template to your Railway project
+ Create
and choose From Template
typescript-monorepo-starter
Deploy
Deploy all project changes by clicking Deploy
button 🚀