Einstieg
Einfach benutzen
Nichts hiervon braucht man, um Videola zu benutzen. Die Download-Seite findet heraus, auf welchem System du bist, bietet diese Ausgabe zuerst an und listet die anderen; die Browser-Version braucht überhaupt keine Installation. Was folgt, ist für die, die es selbst bauen.
Voraussetzungen
| Werkzeug | Version | Wofür |
|---|---|---|
| Rust | stable, wie in rust-toolchain.toml festgelegt | der Kern, der WASM-Build, die Tauri-Hülle |
wasm-pack | ein aktuelles Release | den Kern nach WASM übersetzen |
| Node.js | 22 oder neuer | die Web-App und die Doku-Seite |
| pnpm | 11 oder neuer | den Workspace; die Wurzel-package.json pinnt pnpm@11.20.0 |
Die Tauri-Hülle braucht zusätzlich die WebView und die Toolchain der Plattform. Unter Linux sind das libwebkit2gtk-4.1-dev, libappindicator3-dev, librsvg2-dev und patchelf; Windows und macOS nutzen die WebView des Systems.
Installieren
pnpm install
pnpm wasmWarum pnpm wasm zuerst läuft
pnpm wasm führt wasm-pack build crates/videola-core-wasm --target web aus und schreibt das Ergebnis nach packages/core/src/wasm. Dieses Verzeichnis wird erzeugt und ist nicht eingecheckt, und packages/core/src/index.ts importiert daraus. Solange es fehlt, hat @videola/core einen unauflösbaren Import, und dev, typecheck, test und build scheitern alle — auch für die Web-App, weil sie von der Fassade abhängt.
Die CI behandelt das Artefakt genauso: ein eigener wasm-Job baut es und lädt es hoch, und jeder Job, der es braucht, lädt es herunter und prüft vor pnpm install, dass packages/core/src/wasm/videola_core.js vorhanden ist.
Wenn wasm-opt auf deinem Rechner abstürzt, ruf das wasm-Skript aus der package.json von Hand mit angehängtem --no-opt auf. Das ändert nur die Größe des Ergebnisses; die CI baut ohne das Flag.
Die Web-App starten
pnpm --filter videola-web devVite liefert auf http://localhost:5173 aus. Die App lädt den WASM-Kern und bietet dann Neues Projekt, Öffnen, Spur hinzufügen, Speichern, Rückgängig und Wiederholen, dazu die Umschalter für Theme und Sprache.
Die Prüfungen, die das Repository fährt:
pnpm typecheck
pnpm test
pnpm build
cargo test --workspaceDie Desktop-App starten
Die Desktop-Ausgabe öffnet mit verborgenem Fenster hinter einem kleinen Startbild und zeigt den Editor, sobald der Kern steht. Das ist keine Zierde: das Erste, was ein kalter Start tut, ist ein WASM-Modul zu übersetzen, und ein Fenster, das dabei einen leeren grauen Editor zeigt, sieht aus wie ein abgestürztes Programm. Die Hülle trägt einen Zehn-Sekunden-Zeitgeber, der das Fenster trotzdem zeigt — eine Ausgabe, deren Kern nie lädt, ist damit ein sichtbares Problem und kein Prozess ohne Fenster.
pnpm --filter videola-desktop devDie Tauri-Konfiguration zeigt mit beforeDevCommand auf den Dev-Server der Web-App und mit devUrl auf http://localhost:5173, die Hülle umschließt also dasselbe Frontend. Für einen Installer stattdessen:
pnpm --filter videola-desktop bundlebeforeBuildCommand baut zuerst die Web-App, und Tauri bündelt apps/web/dist. Konfiguriert sind die Bundle-Ziele nsis, deb, appimage und dmg; ein lokaler Build erzeugt nur die, die deine Plattform bauen kann, also gib --bundles mit, wenn du es genau wissen willst. Verpackt wird die Web-App, unverändert.
Das Docker-Image starten
docker build -f docker/Dockerfile -t videola:dev .
docker run --rm -p 8080:80 videola:devDas Image entsteht in drei Stufen: eine Rust-Stufe übersetzt den Kern nach WASM, eine Node-Stufe installiert den Workspace und baut die Web-App, und die letzte Stufe kopiert apps/web/dist in nginx:alpine. docker/nginx.conf liefert .wasm mit dem richtigen MIME-Typ aus, markiert das inhaltsgehashte JavaScript und CSS als unveränderlich, hält index.html uncached und fällt für unbekannte Pfade auf index.html zurück.
Das Image liefert ausschließlich statische Dateien aus. HTTP-API und MCP-Server sind ein eigener Prozess, apps/server — siehe Die API und der MCP-Server. Ein Render-Worker bräuchte FFmpeg und einen Compositor; beides gibt es noch nicht.