GarageStack

GarageStack

Docker app from joz's Repository

Overview

GarageStack is an open-source vehicle monitoring dashboard for MG / SAIC electric and plug-in hybrid vehicles. It connects to the MG iSmart cloud via the SAIC MQTT Gateway and stores all data locally in an embedded PostgreSQL database. Features include a live dashboard, charging and efficiency statistics, trip history with heatmap visualisation, and Web Push notifications. Everything runs in a single container -- no external database or MQTT broker required.

Runtime arguments

Web UI
http://[IP]:[PORT:80]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

Web UI PortPorttcp

Host port for the GarageStack web interface. Open this in your browser.

Target
80
Default
8080
Value
8080
MQTT PortPorttcp

Host port for the internal Mosquitto MQTT broker. Only expose if you need direct MQTT access from other devices.

Target
1883
Default
1883
Value
1883
Data DirectoryPathrw

Persistent storage for the PostgreSQL database, MQTT data, application logs, and ASP.NET Data Protection keys. Back this up regularly.

Target
/data
Default
/mnt/user/appdata/garagestack
Value
/mnt/user/appdata/garagestack
MG iSmart EmailVariable

Your MG iSmart account email address. Must be the vehicle OWNER account -- shared or secondary accounts lack the write permissions needed to register alarm switches and will result in API error 1100003. Use a separate account on the MG phone app to avoid session conflicts.

Target
SAIC_USER
MG iSmart PasswordVariable

Your MG iSmart account password.

Target
SAIC_PASSWORD
MG RegionVariable

Region your vehicle is registered in: eu (Europe), cn (China), or row (Rest of World).

Target
SAIC_REGION
Default
eu
Value
eu
Database PasswordVariable

Password for the embedded PostgreSQL database. Set a strong random value -- you will not need to enter this again. Generate one with: openssl rand -base64 24

Target
POSTGRES_PASSWORD
JWT SecretVariable

Secret used to sign login tokens. Must be at least 32 characters. Generate with: openssl rand -base64 32

Target
JWT_SECRET
App URLVariable

The exact URL you use to open GarageStack in your browser, e.g. http://192.168.1.100:8080. Must match exactly -- wrong value causes login to fail.

Target
CORS_ORIGIN
Default
http://localhost:8080
Value
http://localhost:8080
VAPID Public KeyVariable

VAPID public key for Web Push notifications. Leave empty to disable push notifications (the rest of the app works fine without them). Generate a key pair with: npx web-push generate-vapid-keys

Target
VAPID_PUBLIC_KEY
VAPID Private KeyVariable

VAPID private key for Web Push notifications. Keep this secret.

Target
VAPID_PRIVATE_KEY
Database NameVariable

PostgreSQL database name. Only change this if you know what you are doing.

Target
POSTGRES_DB
Default
garagestack
Value
garagestack
Database UserVariable

PostgreSQL database user. Only change this if you know what you are doing.

Target
POSTGRES_USER
Default
garagestack
Value
garagestack

Details

Repository
ghcr.io/joszz/garagestack:latest
Last Updated2026-05-31
First Seen2026-05-31

Run GarageStack on Unraid.

GarageStack is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.