mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-25 15:08:47 -07:00
feat(site): Downloads page and Quest install from the latest build
When the server is pointed at the bucket CI publishes builds to (DorkNet:Downloads:BaseUrl), the site lists them on a new Downloads page and the Quest page offers "Latest build" next to "Choose file". The server reads manifest.json and the files over HTTP on the internal network and streams them through with Range support (DownloadsController); only files the manifest lists are served. The xapk reader now reads from a byte source, either the picked File or the server URL via Range requests, so the browser installer streams the APK and OBB to the headset without downloading the package first. Unset, both features stay hidden.
This commit is contained in:
@@ -412,6 +412,36 @@ for building and installing the patched APK.
|
||||
|
||||
---
|
||||
|
||||
## Client downloads
|
||||
|
||||
Optional. When CI publishes the client builds to a bucket
|
||||
(`ci/downloads/publish.py`, see `ci/jenkins/README.md`), the server can offer
|
||||
them on the public site:
|
||||
|
||||
- a **Downloads** page (`/downloads`) listing every published file with its
|
||||
size and SHA-256;
|
||||
- **Latest build** on the **Quest** page, which installs the newest Quest
|
||||
package straight from the server: the browser reads it with HTTP Range
|
||||
requests, so nothing is downloaded first.
|
||||
|
||||
The server reads `manifest.json` and the files over plain HTTP, from inside
|
||||
your network, and streams them to the browser. Only files the manifest lists
|
||||
are served. The bucket itself never needs to be public.
|
||||
|
||||
```env
|
||||
# Where manifest.json is: e.g. Garage's web endpoint on the internal network.
|
||||
DorkNet__Downloads__BaseUrl=http://garage-<service uuid>:3902
|
||||
# Optional Host header, for web endpoints that pick the bucket by host name
|
||||
# (Garage serves the bucket whose name matches it).
|
||||
DorkNet__Downloads__Host=<bucket name>
|
||||
```
|
||||
|
||||
Unset, the site hides both features. The builds contain Rec Room's own game
|
||||
files: only turn this on when the site is behind an access proxy (e.g.
|
||||
Cloudflare Access) that admits just your community.
|
||||
|
||||
---
|
||||
|
||||
## Photon Cloud
|
||||
|
||||
Use your own Photon AppIds. Rec Room's original Photon AppIds reject
|
||||
|
||||
+8
-1
@@ -85,6 +85,13 @@ pitfall in their Quest client notes.
|
||||
installer scripts; the app appears as **DorkNet** under Unknown Sources.
|
||||
Share the `.xapk` however you like: the page reads it from the player's own
|
||||
disk, so your server never hosts game files.
|
||||
5. Optionally, let players install the latest CI build without downloading it
|
||||
first: point the server at the downloads bucket CI publishes to
|
||||
(`DorkNet__Downloads__BaseUrl`, see `deploy.md` → Client downloads). The
|
||||
Quest page then offers **Latest build** next to **Choose file** and streams
|
||||
the package from the server during the install, and the site gets a
|
||||
**Downloads** page. The builds contain game files, so only do this with
|
||||
the site behind an access proxy.
|
||||
|
||||
No server component is Quest-specific beyond the placeholder-platform-id
|
||||
handling above.
|
||||
handling above and the optional downloads proxy.
|
||||
|
||||
Reference in New Issue
Block a user