Unraid-progressive-web-app

Unraid-progressive-web-app

Docker app from Laurensguijt's Repository

Overview

Open-source, self-hostable PWA to monitor and control Unraid via its GraphQL API. Default URL: http://[IP]:[PORT:2442]

Unraid PWA

Self-hostable, mobile-first web app to monitor and control Unraid via the GraphQL API.

Unraid PWA icon

Screenshots

Dashboard screenshot Storage screenshot

Shares screenshot Docker screenshot

VM screenshot

Install On Unraid (Terminal)

This app is not yet in Community Applications. Install it manually with Docker Compose.

Using Pre-built Image (Recommended)

Pre-built Docker images are automatically published to GitHub Container Registry.

Run these commands on your Unraid server terminal:

cd /mnt/user/appdata
git clone https://github.com/laurensguijt/Unraid-PWA.git
cd Unraid-PWA

# Optional: customize environment values
cp .env.example .env
nano .env

# Start using pre-built image
docker compose up -d

# Check status
docker compose ps

Building From Source

If you prefer to build the image locally:

cd /mnt/user/appdata
git clone https://github.com/laurensguijt/Unraid-PWA.git
cd Unraid-PWA

# Optional: customize environment values
cp .env.example .env
nano .env

# Build and start
docker compose up -d --build

# Check status
docker compose ps

Open:

  • http://<UNRAID-IP>:2442

First run in the UI:

  1. Add your Unraid server URL (https://<unraid-ip>:3443)
  2. Add your Unraid API key
  3. Save setup

Update On Unraid

cd /mnt/user/appdata/Unraid-PWA
git pull
docker compose up -d --build

Stop / Start

cd /mnt/user/appdata/Unraid-PWA
docker compose down
docker compose up -d

Data Persistence

Persistent app data is stored in:

  • backend/data/servers.enc (encrypted server credentials)
  • backend/data/encryption.key (local encryption key)
  • backend/data/audit.log (write action audit log)

Back up the backend/data folder.

Configuration

.env is optional. Defaults work out of the box.

Available variables (see .env.example):

  • UNRAID_BFF_PORT (default 3001, mapped to host port 2442 in docker-compose.yml)
  • UNRAID_BFF_ORIGIN (CORS allowlist for cross-origin /api requests; same-origin usage on http://<UNRAID-IP>:2442 does not need this)
  • UNRAID_BFF_ENCRYPTION_KEY (optional override; if empty, app auto-generates and persists backend/data/encryption.key)
  • UNRAID_BFF_ALLOW_SELF_SIGNED (true/false)
  • UNRAID_BFF_TRUST_PROXY (false, true, or proxy mode)

Local Development

npm --prefix backend install
npm --prefix frontend install
npm run dev:backend
npm run dev:frontend

Frontend dev URL:

  • http://localhost:5173

Quality Checks

npm run lint
npm run test
npm run test:e2e

License

MIT (LICENSE).

Install Unraid-progressive-web-app on Unraid in a few clicks.

Find Unraid-progressive-web-app in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Unraid-progressive-web-app Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/laurensguijt/unraid-pwa:latest
Last Updated2026-07-18
First Seen2026-02-26

Runtime arguments

Web UI
http://[IP]:[PORT:3001]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

Host port for the Unraid-PWA web interface.

Target
3001
Default
2442
App DataPathrw

Persistent data (servers.enc, encryption.key, audit.log).

Target
/app/data
Default
/mnt/user/appdata/unraid-pwa
UNRAID_BFF_ALLOW_SELF_SIGNEDVariable

Allow self-signed certs for Unraid server connections (true/false).

Default
true
UNRAID_BFF_TRUST_PROXYVariable

Set true if you run behind a reverse proxy (or specific proxy mode if supported).

Default
false
UNRAID_BFF_ORIGINVariable

CORS allowlist. Usually leave default when accessing via http://UNRAID-IP:2442.

Default
http://localhost:2442
UNRAID_BFF_ENCRYPTION_KEYVariable

Optional override. If empty, the app generates /app/data/encryption.key.