3.7 KiB
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
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:
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:
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:
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
- Open Apps.
- Open Discover.
- Open the three-dot menu.
- Select Install via YAML.
- Name the app
iwanttoheal-mmo. - Paste:
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:
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:
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.