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

# Install the desktop app

> Downloads, prerequisites, and the one-time first-launch prompt on macOS, Windows, and Linux.

The desktop app wraps Nora as a native window on macOS, Windows, and Linux. It manages the Docker stack for you and drops you straight into the Nora SPA once the stack is up — no separate browser tab, no `docker compose` incantations to remember.

## Downloads

Grab the latest build from the platform's releases page and pick the file for your platform.

| Platform | File | Approx. size |
| - | - | - |
| macOS (Apple Silicon) | `Nora-macos-arm64-*.dmg` | \~40 MB |
| macOS (Intel) | `Nora-macos-x64-*.dmg` | \~40 MB |
| Windows 10 or 11 | `Nora-windows-x64-*.msi` | \~50 MB |
| Linux (x86\_64) | `Nora-linux-x64-*.AppImage` | \~70 MB |

<Note>
  Current builds are **unsigned**. Nothing about the binary is broken — the OS just asks once on first launch. Follow the platform steps below and you'll only see the prompt once.
</Note>

## Prerequisites

Before you launch the app, make sure the host has:

* **Docker.** Docker Desktop on macOS or Windows, or Docker Engine plus the Compose plugin on Linux. The app shells out to `docker compose` on your behalf, so a working Docker install is required. See the [Docker download page](https://docs.docker.com/get-docker/).
* **Around 15 GB of free disk** — enough for the container images and the Postgres data volume.
* **4 GB of RAM available to Docker.** 8 GB is more comfortable if you plan to keep flows running in the background.

## First launch

<Tabs>
  <Tab title="macOS">
    1. Open the `.dmg` and drag `Nora.app` into **Applications**.
    2. Open **Applications**, right-click on `Nora.app`, and choose **Open**.
    3. macOS shows *"macOS cannot verify the developer of Nora"*. Click **Open**.
    4. On macOS 14 and later, the right-click bypass can still be blocked. If it is:
       * Open **System Settings → Privacy & Security**.
       * Scroll to the bottom for *"Nora was blocked to protect your Mac"* and click **Open Anyway**.
       * When the dialog reappears, click **Open**.
    5. From this point on, `Nora.app` opens with a normal double-click.
  </Tab>

  <Tab title="Windows">
    1. Double-click the `.msi`. The installer places `Nora.exe` in the Start Menu and under `%LOCALAPPDATA%\Nora`.
    2. On first launch, Windows Defender SmartScreen shows *"Windows protected your PC"*.
    3. Click **More info**, then **Run anyway**.
    4. Subsequent launches skip the prompt.
  </Tab>

  <Tab title="Linux">
    Make the AppImage executable and run it:

    ```bash theme={null}
    chmod +x Nora-linux-x64-*.AppImage
    ./Nora-linux-x64-*.AppImage
    ```

    Linux does not show a signing prompt. For a Dock or menu icon, use [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher) to integrate the app automatically.
  </Tab>
</Tabs>

## Where things get placed

Once the app is open, it lays out a few things on the host:

* The **app binary** lives at `/Applications/Nora.app` on macOS, `%LOCALAPPDATA%\Nora` on Windows, or wherever you saved the AppImage on Linux.
* The **Docker stack config** lives under `~/.nora/onprem/`. On first launch, the app writes `docker-compose.yml` and `.env.onprem` here (both bundled inside the app). It generates a random Postgres password for you, so you don't have to edit anything before you click \[Install Nora].
* The **Docker volumes** are `nora-onprem_pgdata` and `nora-onprem_qdrantdata`. They're normal Docker volumes and show up in `docker volume ls`.
* The **container images** land in your usual Docker image store on first install.

## Next

<CardGroup cols={2}>
  <Card title="First launch" icon="wand-magic-sparkles" href="/local-app/desktop/first-launch">
    Walk through the install wizard, the tray icon, and the SPA handoff.
  </Card>

  <Card title="Settings" icon="sliders" href="/local-app/desktop/settings">
    License key, host port, reset, and full uninstall.
  </Card>

  <Card title="Updates" icon="arrows-rotate" href="/local-app/desktop/updates">
    Check for updates online, or import an offline update tarball.
  </Card>

  <Card title="Docker Compose" icon="docker" href="/local-app/deploy/compose">
    The same compose file, run directly on a server.
  </Card>
</CardGroup>
