ASTROFOX
Hilfe

Entwicklung

Astrofox aus dem Quellcode ausführen, bauen und paketieren.

Astrofox ist eine clientseitige Next.js-Anwendung mit React und Three.js. Für die lokale Entwicklung ist weder ein Backend noch ein Authentifizierungsdienst erforderlich.

Voraussetzungen#

  • Node.js in einer Version, die zu den Abhängigkeiten des Projekts passt
  • pnpm
  • Git

Klonen und installieren:

Web-App ausführen#

Einen Produktions-Build erstellst du mit:

Der reguläre Build-Weg wird für das Web-Deployment verwendet. Projekte und Medien bleiben auf dem Gerät des Nutzers; ein lokaler API-Dienst ist nicht erforderlich.

Desktop-App ausführen#

Der Entwicklungsbefehl für den Desktop startet die Next.js-Entwicklungsumgebung und die Electron-Shell:

Für ein Desktop-Paket in Produktionsqualität:

Es gibt auch plattformspezifische Befehle:

BUILD_TARGET=desktop erzeugt einen statischen Next.js-Export in out/, der anschließend zusammen mit dem Electron-Hauptprozess und der Preload-Brücke paketiert wird.

Plugins entwickeln#

Starte den Server für die Beispiel-Plugins:

Er sucht einen freien Port, stellt die Verzeichnisse der Beispiel-Plugins mit CORS bereit und gibt Manifest-URLs aus, die du in Astrofox installieren kannst. Den vollständigen Ablauf findest du unter Plugins entwickeln.

Hinweise zur Architektur#

  • Web- und Desktop-Builds teilen sich eine Anwendung und ein Projektformat.
  • Für die normale Ein- und Ausgabe von Projekten und Medien werden die File System Access APIs bevorzugt.
  • Die Electron-Brücke ist auf Fensterrahmen, ffmpeg, temporäre Dateien und die Integration ins Betriebssystem nach dem Export beschränkt.
  • Web-Video verwendet MediaRecorder; der Offline-Export auf dem Desktop rendert Frames und leitet sie durch die mitgelieferte ffmpeg-Binärdatei.
  • Externe JavaScript-Plugins laufen in Workern in einer Sandbox mit einer restriktiven Content Security Policy.

Quellcode und Beiträge findest du im Astrofox-GitHub-Repository.