> ## Documentation Index
> Fetch the complete documentation index at: https://hmis-docs.derrickmugabwa.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Native Windows setup

> Install and run HMIS natively on a Windows development workstation.

Use the native setup for application development when you do not need the complete OIE, PACS, and simulator stack. It uses SQLite by default and starts the Laravel server, queue listener, and Vite together.

## Prerequisites

* Git
* PHP 8.5
* Composer 2
* Node.js 22 and npm

Confirm the tools before cloning:

```powershell theme={null}
php -v
composer --version
node --version
npm --version
git --version
```

<Steps>
  <Step title="Clone the repository">
    ```powershell theme={null}
    git clone https://github.com/derrickmugabwa/hmis_app.git
    Set-Location hmis_app
    ```
  </Step>

  <Step title="Run the project setup">
    The Composer setup script installs PHP and Node dependencies, creates `.env` when missing, generates `APP_KEY`, runs migrations, and builds frontend assets.

    ```powershell theme={null}
    composer setup
    ```
  </Step>

  <Step title="Create local reference data">
    For a disposable local database, run the development seeder:

    ```powershell theme={null}
    php artisan db:seed
    ```

    This creates a development administrator. Sign in with `admin@example.com` and `password`, then change the password if the database will be retained.
  </Step>

  <Step title="Start the development processes">
    ```powershell theme={null}
    composer dev
    ```

    Keep this terminal open. The script starts the application server, the database queue listener, and Vite.
  </Step>

  <Step title="Open HMIS">
    Use the URL printed by `php artisan serve`, normally `http://127.0.0.1:8000`.
  </Step>
</Steps>

<Warning>
  Never run the broad `DatabaseSeeder` in staging or production. It creates the known `admin@example.com` / `password` account and example organization data.
</Warning>

## Useful development commands

```powershell theme={null}
php artisan migrate
php artisan test --compact
npm run build
vendor\bin\pint --dirty --format agent
php artisan schedule:list
php artisan queue:failed
```

## Reset disposable local data

This command deletes all local database content and recreates it. Use it only against the SQLite database or another confirmed disposable development database.

```powershell theme={null}
php artisan migrate:fresh --seed
```

## Stop the environment

Press `Ctrl+C` in the terminal running `composer dev`. Confirm no separate queue or Vite process remains before changing branches or deleting the working directory.

Continue with [environment and test data](/platform/local-development/environment-and-data) and [local verification](/platform/local-development/verification).
