This commit is contained in:
126
UNRAID.md
Normal file
126
UNRAID.md
Normal file
@@ -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://<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 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 <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`.
|
||||
Reference in New Issue
Block a user