# Getting Started Local Install

### Local installation tutorial

There are some requirements for local installation:

1. Have access to the repos (mbpy endpoints and mbpy) and accepted the invites
2. Authenticated with github
   1. Install [gh command line](https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-in-git) utility. This will authenticate your device with github.
      1. On Mac, you can use [`brew`](https://brew.sh) to install it: `brew install gh`
   2. Once the `gh` command is installed, use it to login: `gh auth login`
      1. Use `HTTPS` method, and either choose to login via browser or use a token
   3. Alternatively, you could [use a Personal Acccess Token.](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
3. Have `pipx` [installed](https://pypa.github.io/pipx/installation/)
   1. On Mac, `brew install pipx` and then `pipx ensurepath`
   2. On Linux, `python3 -m pip install --user pipx` and then `python3 -m pipx ensurepath`

### Installling with pipx

Remember you have to be logged in to github for this to work `gh auth login` as above:

```
pipx install git+https://github.com/classroomtechtools/mbpy.git
```

{% hint style="danger" %}
You may need to specify exactly which python version to use, which you can by pass an explicit path to the python version, as demonstrated here:

`pipx install git+https://github.com/classroomtechtools/mbpy.git --python $(which python3.11)`
{% endhint %}

### Configure

Every time you want to add a school to mbpy, it needs to be configured. Learn how here:

{% content-ref url="../tutorials/configuration" %}
[configuration](https://guide.fariaedu.com/professional-learning-community-mbpy/6VBx07Zj330EYGI5zHno/tutorials/configuration)
{% endcontent-ref %}

### Updating

```
pipx upgrade mbpy
mbpy db migrate
```

### Local Development Install

To develop mbpy or expand its functionality, use poetry:

```
git clone --recurse-submodules https://github.com/classroomtechtools/mbpy.git
cd mbpy
poetry install
```

After that, you can use `poetry shell` from that directory, add breakpoints etc and hack away. Use `mpby` commands like usual.
