Release v0.1.1 2026-07-10
This commit is contained in:
+121
@@ -0,0 +1,121 @@
|
||||
# TrueNAS deployment
|
||||
|
||||
This game uses the same proven local-Gitea pattern as `testgame`: clone from the
|
||||
Gitea bare repository on the TrueNAS filesystem, mount that working checkout
|
||||
into one Node container, and update it with a local Git pull plus app restart.
|
||||
|
||||
## Paths
|
||||
|
||||
```text
|
||||
Local Gitea bare repository:
|
||||
/mnt/.ix-apps/app_mounts/gitea/data/git/repositories/phenom/i-want-to-heal-mmo.git
|
||||
|
||||
Runnable working checkout:
|
||||
/mnt/usbssds/apps/iwanttoheal-mmo/app
|
||||
|
||||
Public URL:
|
||||
https://iwanttoheal.phenomrom.com
|
||||
|
||||
Container/host port:
|
||||
4173
|
||||
```
|
||||
|
||||
The bare Gitea repository is not a runnable application directory. Use a local
|
||||
`git clone`; do not copy the bare repository with `cp`. Local clone/pull keeps
|
||||
the source transfer on TrueNAS and creates the working tree the container needs.
|
||||
|
||||
## First installation
|
||||
|
||||
This configuration uses a separate `iwanttoheal-mmo` working directory, so it
|
||||
does not modify the old app checkout or its data.
|
||||
|
||||
Confirm the new repository path. If the first command fails, use the search:
|
||||
|
||||
```sh
|
||||
sudo test -d /mnt/.ix-apps/app_mounts/gitea/data/git/repositories/phenom/i-want-to-heal-mmo.git
|
||||
sudo find /mnt -type d -name "i-want-to-heal-mmo.git" -prune -print 2>/dev/null
|
||||
```
|
||||
|
||||
Clone entirely through the local filesystem:
|
||||
|
||||
```sh
|
||||
sudo mkdir -p /mnt/usbssds/apps/iwanttoheal-mmo
|
||||
sudo git config --global --add safe.directory \
|
||||
/mnt/.ix-apps/app_mounts/gitea/data/git/repositories/phenom/i-want-to-heal-mmo.git
|
||||
sudo git clone \
|
||||
/mnt/.ix-apps/app_mounts/gitea/data/git/repositories/phenom/i-want-to-heal-mmo.git \
|
||||
/mnt/usbssds/apps/iwanttoheal-mmo/app
|
||||
sudo chown -R truenas_admin:truenas_admin /mnt/usbssds/apps/iwanttoheal-mmo
|
||||
```
|
||||
|
||||
Verify the checkout:
|
||||
|
||||
```sh
|
||||
git -C /mnt/usbssds/apps/iwanttoheal-mmo/app remote -v
|
||||
git -C /mnt/usbssds/apps/iwanttoheal-mmo/app branch --show-current
|
||||
ls /mnt/usbssds/apps/iwanttoheal-mmo/app/package.json
|
||||
```
|
||||
|
||||
Expected branch: `main`. Expected origin: local Gitea path above.
|
||||
|
||||
## Install as a TrueNAS app
|
||||
|
||||
1. Open **Apps**.
|
||||
2. Open **Discover**.
|
||||
3. Open the three-dot menu.
|
||||
4. Select **Install via YAML**.
|
||||
5. Name the app `iwanttoheal-mmo`.
|
||||
6. Paste:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
iwanttoheal:
|
||||
image: node:24-bookworm-slim
|
||||
command: >-
|
||||
sh -lc "corepack pnpm install --frozen-lockfile && corepack pnpm run build && corepack pnpm start"
|
||||
environment:
|
||||
HOST: 0.0.0.0
|
||||
PORT: "4173"
|
||||
init: true
|
||||
ports:
|
||||
- "4173:4173"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /mnt/usbssds/apps/iwanttoheal-mmo/app:/app
|
||||
working_dir: /app
|
||||
```
|
||||
|
||||
This game has no server database. Do not add `db:init`, `/app/data`, cookie,
|
||||
CORS, or proxy environment settings from the older game.
|
||||
|
||||
The separate volume protects the old app files and data. The YAML still maps
|
||||
host port `4173`, so the old and MMO apps cannot run simultaneously while both
|
||||
use that host port. Stop the old app, or assign this app an unused host port and
|
||||
separate reverse-proxy hostname.
|
||||
|
||||
After deployment, test from the TrueNAS shell or another LAN machine:
|
||||
|
||||
```sh
|
||||
curl -I http://TRUENAS-IP:4173
|
||||
```
|
||||
|
||||
Expected result: HTTP `200`. Keep the existing HTTPS reverse proxy pointed at
|
||||
`TRUENAS-IP:4173` for `iwanttoheal.phenomrom.com`.
|
||||
|
||||
## Update workflow
|
||||
|
||||
Push `main` from the development Mac. Then run on TrueNAS:
|
||||
|
||||
```sh
|
||||
git -C /mnt/usbssds/apps/iwanttoheal-mmo/app pull --ff-only \
|
||||
/mnt/.ix-apps/app_mounts/gitea/data/git/repositories/phenom/i-want-to-heal-mmo.git \
|
||||
main
|
||||
```
|
||||
|
||||
This transfers Git objects locally from Gitea storage; it does not download the
|
||||
game through HTTPS. Restart `iwanttoheal-mmo` in the TrueNAS Apps UI afterward. The
|
||||
container startup command installs locked dependencies, rebuilds the browser
|
||||
bundle, and starts port `4173`.
|
||||
|
||||
For simultaneous operation, keep the new app name/directory and also assign an
|
||||
unused host port plus a separate reverse-proxy hostname.
|
||||
Reference in New Issue
Block a user