mirror of
https://github.com/linsa-io/linsa.git
synced 2026-01-12 12:20:23 +01:00
37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
# Linsa desktop
|
||
|
||
Electron shell that mirrors the same structure we use in the `as` project: `electron-vite` bundling the main, preload, and React renderer. The window loads the Linsa web app by default (dev URL: `http://localhost:5625`) and falls back to the bundled renderer if the web app cannot be reached.
|
||
|
||
## Running locally
|
||
|
||
```bash
|
||
pnpm install
|
||
pnpm --filter @linsa/web dev
|
||
pnpm --filter @linsa/desktop dev
|
||
```
|
||
|
||
By default the Electron shell loads the existing web app. Override the target with `WEB_DEV_URL` or `WEB_URL` when needed.
|
||
|
||
Set a Jazz Cloud key to sync state instead of keeping it only on the device:
|
||
|
||
```bash
|
||
cd packages/desktop
|
||
echo "VITE_JAZZ_API_KEY=your_jazz_key" >> .env
|
||
# optional: point to a custom peer
|
||
# echo "VITE_JAZZ_PEER=ws://localhost:4200" >> .env
|
||
```
|
||
|
||
### Optional environment
|
||
|
||
- `WEB_URL` / `WEB_DEV_URL` – where to load the web app from.
|
||
- `VITE_JAZZ_API_KEY` / `VITE_JAZZ_PEER` – used by the fallback renderer for sync.
|
||
|
||
## What it does
|
||
|
||
- Uses `electron-vite` to bundle `main`, `preload`, and the React renderer.
|
||
- Loads the web client first and falls back to the bundled renderer if needed.
|
||
- Wraps the renderer with `JazzReactProvider` (storage in IndexedDB) and a simple Jazz schema to keep track of folders you want scanned.
|
||
- Opens an OS folder picker (via the preload bridge) to add/remove code folders.
|
||
- Scans those folders for git repos and lets you open them in VS Code, Terminal, or Finder.
|
||
- Shows the current Jazz sync status so we can expand to syncing folder lists later.
|