Add portable Windows desktop downloads and release uploads
This commit is contained in:
22
docs/desktop.md
Normal file
22
docs/desktop.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# MineGeo Desktop
|
||||
|
||||
The Windows x64 client is a portable Electron EXE. Open it directly; no installation or administrator access is needed. It connects to https://minegeo.vercel.app and requires internet access. Website updates appear automatically on reload; Electron runtime updates require a new EXE.
|
||||
|
||||
The EXE extracts its runtime into a temporary directory while running. Sign-in, cookies, and site preferences persist separately in `%APPDATA%/minegeo-desktop`. Removing the EXE does not clear that profile. External HTTPS links open in the default browser. The client has no Node.js bridge to the remote site, uses Chromium sandboxing and context isolation, and denies device permissions.
|
||||
|
||||
## Build and publish
|
||||
|
||||
From the repository root:
|
||||
|
||||
```powershell
|
||||
npm --prefix desktop ci
|
||||
npm run desktop:build
|
||||
npm run desktop:publish
|
||||
npm run deploy
|
||||
```
|
||||
|
||||
`desktop:build` generates the multi-resolution Windows icon from `app/icon.png` and builds `desktop/dist/MineGeo-1.0.0-windows-x64.exe`. `desktop:publish` copies only the portable EXE and SHA-256 checksum into `public/desktop/` and updates the shared release metadata used by both download buttons. Bump `desktop/package.json` before future releases, rebuild, and publish. The desktop toolchain has its own lockfile and is excluded from the Vercel build.
|
||||
|
||||
Run `npm run desktop:dev` during desktop development. Run `desktop/dist/win-unpacked/MineGeo.exe --smoke-test` to verify that the packaged client loads production with its security settings. The smoke test exits with a nonzero status if loading fails or times out.
|
||||
|
||||
This initial release is unsigned and Windows may display an unknown-publisher warning. Signing future releases requires the publisher's code-signing certificate; no signing credentials are bundled. macOS and Linux builds are not included in this release.
|
||||
@@ -1,5 +1,17 @@
|
||||
# Deploy MineGeo
|
||||
|
||||
The portable Windows Electron client and release process are described in
|
||||
[Desktop client](desktop.md). Build and publish the EXE before deploying changes
|
||||
to desktop download links. Public desktop releases are included in the upload;
|
||||
the local Electron source, build cache, and packaging toolchain are excluded.
|
||||
|
||||
For the Vercel plugin deployment of Desktop 1.0.0, the public installer parts
|
||||
are staged in Supabase Storage's `minegeo-desktop-builds` bucket under the
|
||||
release SHA-256. The deployment snapshot downloads and verifies each part before
|
||||
the existing assembly script verifies the complete EXE. Keep these immutable
|
||||
parts for rebuilding that snapshot. No Storage credentials are included in the
|
||||
snapshot, and players download the assembled EXE from `/desktop/` on MineGeo.
|
||||
|
||||
Optional Discord map and multiplayer-party announcements use `DISCORD_BOT_TOKEN`,
|
||||
`DISCORD_MAPS_CHANNEL_ID`, and `DISCORD_PARTIES_CHANNEL_ID`. All published parties
|
||||
use the same configured channel. Follow [Discord bot setup](discord-integration.md)
|
||||
@@ -19,7 +31,8 @@ invite links. Blank, malformed, or unsupported URLs hide the corresponding
|
||||
button. Each button opens its configured destination in a new tab.
|
||||
|
||||
Run `npm run deploy` from the project directory. The script collects all web
|
||||
source files and public assets, uploads them in one request, waits for the build,
|
||||
source files and public assets, uploads large release files separately and the
|
||||
remaining source in one request, waits for the build,
|
||||
and prints the deployment URL. It uses the [Vercel deployments API](https://vercel.com/docs/rest-api/deployments/create-a-new-deployment). The database credentials already configured in
|
||||
Vercel remain there. Mod captures are processed by the deployed Vercel API:
|
||||
upload finalization starts background image processing with Next.js `after`,
|
||||
|
||||
Reference in New Issue
Block a user