Files
stellar/UNRAID.md
jason 23ac496963
Some checks failed
CI / validate (push) Has been cancelled
Add Unraid deployment guide
2026-03-22 23:59:52 -05:00

127 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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://<your-unraid-ip>: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 repos 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 <your-registry>/stellar:<tag>
docker run -d \
--name stellar \
--restart unless-stopped \
-p 8080:3000 \
-e PORT=3000 \
-e LOG_LEVEL=info \
<your-registry>/stellar:<tag>
```
## Health Check
The server exposes:
```text
/healthz
```
Example:
```bash
curl http://<your-unraid-ip>: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`.