- Windows portable ZIP remains, but has been fixed so that it isn't poisoned by being a web download - Velopack installer offered on all platforms: Linux AppImage, Windows setup.exe, Mac setup.pkg - Mac updated to Qt6 which has a modern Chromium as opposed to Qt5 that didn't - Application log now shown on settings panel - Automated cross-platform builds via Gitea actions Reviewed-on: #1
2.4 KiB
Development
This document covers the developer-facing ways to run MediaHive locally. The main README.md covers end-user startup across platforms (installer/AppImage downloads, uvx --from mediahive[gui] mediahive on Linux/other).
Requirements
- Python 3.14+
uv- Node.js 18+
Install Dependencies
uv sync --extra gui --group dev
cd frontend
npm install
Run The Backend Directly
uv run mediahive /path/to/media/folder
This starts the FastAPI backend and serves the built frontend.
Run Frontend + Backend In Development
uv run scripts/devserver.py /path/to/media/folder
This starts the FastAPI backend with auto-reload plus the Vite frontend dev server.
Run The Desktop App In Development
uv run --extra gui python -m mediahive.winmain /path/to/media/folder
This launches the same pywebview-based desktop flow used by the Windows build.
Building And Releasing
The helper scripts are directly executable via their uv run shebang (on Windows, run them with uv run scripts/<name>.py):
./scripts/guibuild.pybuilds the PyInstaller desktop app and packages it with Velopack underbuild/: per-userSetup.exe(Windows),.pkginstaller (macOS),.AppImage(Linux), plus the update feed inbuild/velopack/. On Windows it also creates a-win64-portable.zip(no auto-updates). Requires node/npm and the .NET SDK (>= 10 runtime) installed on the build host;vpkand ffmpeg are downloaded once into a persistent user cache (~/.cache/mediahive-build,%LOCALAPPDATA%\mediahive-buildon Windows)../scripts/release.pypublishes a release to the Gitea releases page, uploading the platform artifacts and the Velopack update feed files — installed apps auto-update from the latest release.
Python packaging builds the frontend automatically through the hatch build hook scripts/fastapi-vue/buildhook.py (see pyproject.toml), so wheels and sdists always ship a fresh mediahive/frontend-build.
Notes
- The selected media folder is scanned continuously by the backend.
- The desktop app remembers the chosen folder between launches.
- HTTP and WebSocket endpoints are documented in API.md.
- MPC-BE integration details (Windows only) live in mpc-be.md.
- Scanner/indexer design notes and the v0.5.0 rescan fixes are reviewed in scanning-review.md.