local-dev

Prerequisites

In order to set up your local environment, you will need to install:

Getting Started

Fork the Meshtastic Repository

Log into GitHub and create a fork of the meshtastic/meshtastic repository.

Clone your Meshtastic Repository fork

:::note Replace YOUR_GITHUB_USERNAME with your GitHub username. :::

```shell title="Clone your Fork of the Documentation Repository" git clone https://github.com/YOUR_GITHUB_USERNAME/meshtastic.git


### Change directory into your Local Copy

```shell title="Change Directory"
cd ./meshtastic

Install Submodules

```shell title="Install Submodules" git submodule update --init --recursive


### Install Dependencies

```shell title="Install Node.js using NVM"
nvm install && nvm use

```shell title="Install dependencies using pnpm" pnpm i


### Run Development Server

```shell title="Run node.js server"
pnpm start

:::tip Before submitting a pull request, it's helpful to run the following command to ensure there are no broken links or errors:

```shell title="Build Project" pnpm build


:::

## Update Local Repository

### Verify Upstream Remote is Set

```shell title="Check Remote and Upstream Repositories"
git remote -v

If it's set, skip to Align with meshtastic/meshtastic Master branch

Update/Set Upstream if it isn't configured properly

If upstream exists, set the URL:

```shell title="Update Upstream Repository" git remote set-url upstream https://github.com/meshtastic/meshtastic.git


If upstream doesn't exist, add the URL:

```shell title="Add Upstream Repository"
git remote add upstream https://github.com/meshtastic/meshtastic.git

Align with meshtastic/meshtastic Master branch

:::caution This will delete any unfinished work. Make sure that you've saved and committed any work you wish to push up to your fork. :::

:::info The following command assumes the clone of your Meshtastic fork is in the home directory (~/meshtastic). Adjust the path to the correct path on your machine. :::

shell title="Rebase local Meshtastic to remote Meshtastic" cd ~/meshtastic ; git fetch upstream ; git checkout master ; git rebase upstream/master