Files
i-want-to-heal-mmo/DEPLOYMENT.md
T
2026-07-10 23:47:37 -04:00

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

  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:
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.