# 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 -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 \ -e DATABASE_PATH=/data/stellar.sqlite \ -v /mnt/user/appdata/stellar:/data \ stellar:local ``` Open the game at: ```text http://:8080 ``` ## Option 2: Build With Compose On Unraid From the repo root: ```bash docker compose build docker compose 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 \ -e DATABASE_PATH=/data/stellar.sqlite \ -v /mnt/user/appdata/stellar:/data \ /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 -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 \ -e DATABASE_PATH=/data/stellar.sqlite \ -v /mnt/user/appdata/stellar:/data \ stellar:local ``` If using compose: ```bash cd /mnt/user/appdata/stellar git pull docker compose up -d --build ``` ## Notes - SQLite persistence now defaults to `/data/stellar.sqlite` in containers. - The examples above bind `/mnt/user/appdata/stellar` into `/data` so profile data survives container recreation. - 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`.