Add an Electron desktop shell for the SPA
desktop/ serves the normal frontend build over a privileged app://j621 scheme, so localStorage, OPFS, Web Workers, WebCodecs and history routing behave exactly like Chrome. Development points at the Vite dev server; `npm run smoke` runs headless Electron and checks the bundled app. External links open in the system browser, and download navigations (?download=1 or media URLs) are rerouted through webContents.downloadURL, since preventing them cancels the download. The setup screen names the shell's origin when the connection test fails, and the deploy docs list app://j621 for CORS_ALLOWED_ORIGINS.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
appId: io.j621.desktop
|
||||
productName: J621
|
||||
copyright: Copyright (c) 2026 JakeBreath — Jake Labs Non-Commercial Software Licence
|
||||
|
||||
directories:
|
||||
output: release
|
||||
buildResources: build
|
||||
|
||||
# The Electron main process and preload live in dist/ (tsc output). The SPA is
|
||||
# copied from the web build as an extra resource and served over app://j621.
|
||||
files:
|
||||
- dist/**
|
||||
- package.json
|
||||
|
||||
extraResources:
|
||||
- from: ../frontend/dist
|
||||
to: dist
|
||||
filter:
|
||||
- "**/*"
|
||||
|
||||
linux:
|
||||
target:
|
||||
- deb
|
||||
- pacman
|
||||
category: AudioVideo
|
||||
synopsis: Desktop client for the J621 self-hosted media archive
|
||||
description: >-
|
||||
J621 is a self-hosted browser for an e621-linked media library. This
|
||||
desktop build talks to a J621 backend over the network, the same way the
|
||||
web app does.
|
||||
icon: build/icon.png
|
||||
|
||||
win:
|
||||
target:
|
||||
- nsis
|
||||
icon: build/icon.ico
|
||||
|
||||
nsis:
|
||||
oneClick: false
|
||||
perMachine: false
|
||||
allowToChangeInstallationDirectory: true
|
||||
shortcutName: J621
|
||||
Reference in New Issue
Block a user