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

# Packaging

> electron-builder setup, included resources, worker entries, and version injection.

Catalyst builds through electron-vite and packages through electron-builder.

## Build configuration

| File                      | Role                                                                       |
| ------------------------- | -------------------------------------------------------------------------- |
| `electron.vite.config.ts` | Main, preload, renderer, aliases, worker entry, and app version define.    |
| `electron-builder.yml`    | App ID, product name, installer targets, resources, and platform metadata. |
| `package.json`            | Scripts, dependencies, app version, and Node requirement.                  |

## Version injection

The renderer receives `__APP_VERSION__` from `package.json` through Vite define configuration. The Settings page and update UI use that value for display and comparison.

## Included resources

The builder unpacks resources such as icons, logos, and bundled plugin files:

```text theme={null}
resources/
  plugins/
    CatalystAnalytics.jar
```

The analytics plugin must be present in packaged resources for automatic install during Paper and Purpur server creation.

## Backup worker entry

The backup worker has its own main-process build entry so it can be loaded by the backup manager at runtime.

## Windows installer

The Windows target uses NSIS with the product name `Catalyst` and executable name `catalyst`. App data is not deleted on uninstall by the builder configuration.

<Info>
  If packaging changes touch resources, test creating a Paper or Purpur server in the packaged app to confirm the analytics plugin is still copied correctly.
</Info>
