From 23ac4969630e214f6bd4118f39690108f07fd5fc Mon Sep 17 00:00:00 2001 From: jason Date: Sun, 22 Mar 2026 23:59:52 -0500 Subject: [PATCH] Add Unraid deployment guide --- UNRAID.md | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 UNRAID.md diff --git a/UNRAID.md b/UNRAID.md new file mode 100644 index 0000000..e27b63f --- /dev/null +++ b/UNRAID.md @@ -0,0 +1,126 @@ +# Unraid Deployment + +This project currently ships as a single container: + +- the React client is built into `client/dist` +- the Express server serves both static assets and API routes +- the container listens on port `3000` + +## Prerequisites + +- Unraid server with Docker enabled +- Git access to the repository +- Internet access for `npm ci` during image build + +## Option 1: Build On Unraid From Source + +Clone the repo somewhere persistent on the Unraid host: + +```bash +cd /mnt/user/appdata +git clone https://git.alwisp.com/jason/stellar.git +cd stellar +``` + +Build the image from the repo root: + +```bash +docker build -f docker/Dockerfile -t stellar:local . +``` + +Start the container: + +```bash +docker run -d \ + --name stellar \ + --restart unless-stopped \ + -p 8080:3000 \ + -e PORT=3000 \ + -e LOG_LEVEL=info \ + stellar:local +``` + +Open the game at: + +```text +http://:8080 +``` + +## Option 2: Build With Compose On Unraid + +From the repo root: + +```bash +docker compose -f docker/docker-compose.yml build +docker compose -f docker/docker-compose.yml up -d +``` + +This uses the repo’s single-service compose file and exposes the app on port `8080`. + +## Option 3: Pull A Prebuilt Image + +If you publish an image to your registry, run: + +```bash +docker pull /stellar: +docker run -d \ + --name stellar \ + --restart unless-stopped \ + -p 8080:3000 \ + -e PORT=3000 \ + -e LOG_LEVEL=info \ + /stellar: +``` + +## Health Check + +The server exposes: + +```text +/healthz +``` + +Example: + +```bash +curl http://:8080/healthz +``` + +Expected response: + +```json +{"status":"ok"} +``` + +## Updating + +If building from source: + +```bash +cd /mnt/user/appdata/stellar +git pull +docker build -f docker/Dockerfile -t stellar:local . +docker rm -f stellar +docker run -d \ + --name stellar \ + --restart unless-stopped \ + -p 8080:3000 \ + -e PORT=3000 \ + -e LOG_LEVEL=info \ + stellar:local +``` + +If using compose: + +```bash +cd /mnt/user/appdata/stellar +git pull +docker compose -f docker/docker-compose.yml up -d --build +``` + +## Notes + +- There is no persistent SQLite mount yet because M3 persistence has not been implemented. +- When SQLite is added, bind-mount a host path such as `/mnt/user/appdata/stellar/data` into the container. +- If Unraid already uses port `8080`, change the host-side port mapping and browse to that port instead. +- Logs are written to container stdout/stderr and can be viewed from the Unraid Docker UI or with `docker logs stellar`.