Files
documentation/products/home.md

108 lines
3.4 KiB
Markdown

# Vyla Home (Desktop)
<p class="page-description">The native desktop control center and player runtime for Windows, macOS, and Linux built on Tauri v2 and an embedded Node.js sidecar.</p>
<img class="vyla-banner" src="/src/assets/images/desktop/site_preview.webp" alt="Vyla Home desktop application preview" loading="lazy" decoding="async" fetchpriority="low" />
## Overview
**Vyla Home** is the desktop client for the Vyla ecosystem. Built with **Tauri v2** and an embedded Node.js sidecar process, Vyla Home uses native system WebViews (WebView2 on Windows, WebKit on macOS/Linux) for fast startups and hardware-accelerated video decoding with minimal memory usage.
---
## Downloads
Binary packages are available on [GitLab Releases](https://gitlab.com/vyla-entertainment/home/-/releases):
- **Windows**: [Download Setup Installer / Portable (.exe)](https://gitlab.com/vyla-entertainment/home/-/releases) (x86_64)
- **macOS**: [Download Disk Image (.dmg)](https://gitlab.com/vyla-entertainment/home/-/releases) (Universal: Apple Silicon & Intel)
- **Linux**: Build from source using the steps below.
---
## Architecture
- **Tauri Main Process (Rust)**: Manages window state, system tray icons, native menus, and hosts the WebView.
- **Stdio IPC**: Bi-directional JSON-RPC stream passing messages between Rust and the Node.js sidecar over `stdin` and `stdout`.
- **Node.js Sidecar**: Runs `ServiceManager` for local/remote failover, verifies update signatures via `UpdateClient`, manages Discord Rich Presence, and caches local media metadata.
### Storage Locations
- **Windows**: `%APPDATA%\vyla-home\vyla-home-files\`
- **macOS**: `~/Library/Application Support/vyla-home/vyla-home-files/`
- **Linux**: `~/.local/share/vyla-home/vyla-home-files/`
### Sidecar Logs
- **Windows**: `%APPDATA%\vyla-home\vyla-home-files\logs\node-debug.log`
- **macOS/Linux**: `<AppDataDir>/logs/node-debug.log`
---
## Windows Troubleshooting
If you encounter a `WebView2 runtime initialization error`:
1. Install the Microsoft Edge WebView2 Evergreen Runtime from Microsoft.
2. For portable installs, confirm `WebView2Loader.dll` is present in the `bin/` directory adjacent to the executable.
---
## Linux Build Guide
### 1. Install System Dependencies
:::code-group
<!-- tab: Fedora / RHEL -->
```bash
sudo dnf install -y \
webkit2gtk4.1-devel curl wget openssl-devel \
libappindicator-gtk3-devel librsvg2-devel \
gcc gcc-c++ make automake autoconf nodejs npm
```
<!-- tab: Ubuntu / Debian -->
```bash
sudo apt-get update && sudo apt-get install -y \
libwebkit2gtk-4.1-dev build-essential curl wget \
libssl-dev libayatana-appindicator3-dev librsvg2-dev \
nodejs npm
```
<!-- tab: Arch Linux -->
```bash
sudo pacman -Syu --needed \
webkit2gtk-4.1 base-devel curl wget openssl \
libappindicator-gtk3 librsvg nodejs npm
```
:::
### 2. Install Rust Toolchain
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
```
### 3. Clone and Build
```bash
git clone https://gitlab.com/vyla-entertainment/home.git vyla-home
cd vyla-home
npm install
npm run build:payload
npm run dev
npm run build
```
---
## Developer Workflows
```bash
npm run dev
npm run build:payload
npm run dev -- -- --env VYLA_TEST_UI=1
npm run release:full
```
If a hung process locks the binary during Windows development:
```powershell
Stop-Process -Name "vyla-home", "node", "cargo" -Force -ErrorAction SilentlyContinue
```