Release v0.1.0 2026-07-10
This commit is contained in:
@@ -13,6 +13,29 @@ pnpm dev
|
||||
|
||||
The development server listens on `0.0.0.0:4173`.
|
||||
|
||||
## Android / AYN Thor test APK
|
||||
|
||||
The Android host uses Capacitor, locks to landscape, requests immersive mode and
|
||||
60 Hz, and sends controller input directly to the game WebView. Build an
|
||||
installable debug APK:
|
||||
|
||||
```bash
|
||||
pnpm android:apk
|
||||
```
|
||||
|
||||
Output is written under `android/app/build/outputs/apk/debug/`. With Android
|
||||
platform tools and a connected Thor, build and install it with:
|
||||
|
||||
```bash
|
||||
pnpm android:install
|
||||
```
|
||||
|
||||
The first Android milestone uses the complete single-display fallback. Press
|
||||
Select (or Tab with a keyboard) to switch between the main game surface and the
|
||||
620 × 540 tactical surface. Native routing to both physical Thor displays is the
|
||||
next milestone; it needs two Android display contexts backed by one shared game
|
||||
state rather than two independent WebViews.
|
||||
|
||||
## TrueNAS deployment
|
||||
|
||||
The production preview server uses the existing deployment address and port:
|
||||
@@ -21,10 +44,19 @@ The production preview server uses the existing deployment address and port:
|
||||
- Host/container port: `4173`
|
||||
- App directory: `/mnt/usbssds/apps/iwanttoheal/app`
|
||||
|
||||
Copy the repository into the app directory, then deploy `compose.yaml`. The old
|
||||
app's `db:init` step is intentionally omitted because this game has no database.
|
||||
Clone the repository into the app directory, then deploy `compose.yaml`. Compared
|
||||
with the old game configuration:
|
||||
|
||||
- use `corepack pnpm install --frozen-lockfile`, not `npm ci`;
|
||||
- remove `npm run db:init` because this game has no server database;
|
||||
- remove `COOKIE_SECURE`, `CORS_ORIGINS`, and `TRUST_PROXY`; the static Vite
|
||||
preview server does not consume them;
|
||||
- remove `/app/data`; offline saves live in each player's browser/Android WebView
|
||||
storage, not on TrueNAS.
|
||||
|
||||
The existing reverse proxy can keep forwarding the public hostname to port
|
||||
`4173`.
|
||||
`4173`. Add server data and authentication environment variables only when an
|
||||
actual sync API is introduced.
|
||||
|
||||
## Publish updates to Gitea
|
||||
|
||||
@@ -34,18 +66,25 @@ The repository target is:
|
||||
https://git.whoagland.com/phenom/i-want-to-heal-mmo.git
|
||||
```
|
||||
|
||||
Publish a checked update from the `main` branch:
|
||||
Create a Gitea access token with repository write permission, expose it only for
|
||||
the publishing process, then publish from `main`:
|
||||
|
||||
```bash
|
||||
export GITEA_TOKEN="..."
|
||||
pnpm publish:gitea -- --message "Describe the update"
|
||||
```
|
||||
|
||||
The script installs locked dependencies, builds, runs tests, commits all project
|
||||
changes, and pushes `main`. If the TrueNAS app directory is mounted locally, it
|
||||
also performs a fast-forward-only pull. Otherwise it prints the clone/pull command
|
||||
to run on TrueNAS before restarting the app. The pull refuses to run when the
|
||||
TrueNAS checkout still points at the old game's repository; move or archive that
|
||||
checkout and clone the new repository first.
|
||||
The script installs locked dependencies, builds the web app, runs web and Android
|
||||
checks, builds a debug APK, commits all project changes, pushes `main`, creates a
|
||||
version tag and Gitea prerelease, and uploads the APK plus its SHA-256 file. It
|
||||
uses `package.json` version unless that version is already tagged, then advances
|
||||
the patch number. Pass `--version 0.2.0` to choose an explicit version.
|
||||
|
||||
If the TrueNAS app directory is mounted locally, publishing also performs a
|
||||
fast-forward-only pull. Otherwise it prints the clone/pull command to run on
|
||||
TrueNAS before restarting the app. The pull refuses to run when the TrueNAS
|
||||
checkout still points at the old game's repository; move or archive that checkout
|
||||
and clone the new repository first.
|
||||
|
||||
Preview checks without changing Git or TrueNAS:
|
||||
|
||||
@@ -53,8 +92,9 @@ Preview checks without changing Git or TrueNAS:
|
||||
pnpm publish:gitea -- --dry-run
|
||||
```
|
||||
|
||||
Gitea credentials must come from Git's credential manager or an SSH remote. Do
|
||||
not store access tokens in this repository.
|
||||
Git push credentials still come from Git's credential manager. Gitea release API
|
||||
credentials come from `GITEA_TOKEN`. Never store access tokens or Android signing
|
||||
keys in this repository.
|
||||
|
||||
## Controls
|
||||
|
||||
@@ -81,4 +121,6 @@ Touch controls on lower display support party targeting, ability casting, map, a
|
||||
- Android layout targets: approximately 960×540 CSS pixels top and 620×540 CSS pixels bottom
|
||||
- Lower-screen typography scales against its own container, never the main page viewport
|
||||
|
||||
Current build is browser-based for fast iteration. Shipping to separate physical Thor displays needs an Android host that presents the game viewport and tactical React surface on distinct display contexts.
|
||||
Current Android build is an installable single-display test host. Shipping to both
|
||||
physical Thor displays still needs distinct Android display contexts that project
|
||||
one authoritative game state.
|
||||
|
||||
Reference in New Issue
Block a user