A modern web-based administration interface for managing Garage distributed object storage clusters.
8.5K
A modern web-based administration interface for managing Garage distributed object storage clusters. Monitor cluster health, manage buckets and access keys, configure layouts, and more — all from a single dashboard.
Compatible with Garage Admin API v2.
Versioning: The major version of this project tracks the Garage Admin API version. v2.x corresponds to Admin API v2. There is no v1.0 or v0.x — Admin API v1 and v0 were already deprecated when this project was created.
The easiest way to run the console is with Docker. A single image bundles both the frontend and API.
# Clone the repository
git clone https://github.com/eyebrowkang/garage-admin-console.git
cd garage-admin-console
# Edit docker-compose.yml — change the three required environment variables
# Then start the service:
docker compose up -d
The console is available at http://localhost:3001.
See docker-compose.yml for all available options. At minimum you must set:
| Variable | Description |
|---|---|
JWT_SECRET | Random string for JWT signing |
ENCRYPTION_KEY | Exactly 32 characters for AES-256 encryption |
ADMIN_PASSWORD | Console login password |
Data is persisted in the /data volume (SQLite database).
docker build -t garage-admin-console .
docker run -d \
-p 3001:3001 \
-v garage-data:/data \
-e JWT_SECRET=change-me-to-a-random-string \
-e ENCRYPTION_KEY=change-me-exactly-32-characters! \
-e ADMIN_PASSWORD=change-me-admin-password \
garage-admin-console
git clone https://github.com/eyebrowkang/garage-admin-console.git
cd garage-admin-console
pnpm install
# If pnpm blocks native builds (Prisma)
pnpm approve-builds
Create the API environment file from the provided template:
cp api/.env.example api/.env
Edit api/.env with your settings. See api/.env.example for all available variables and their descriptions. JWT_SECRET, ENCRYPTION_KEY, and ADMIN_PASSWORD are required — the API will refuse to start if any are missing.
pnpm -C api db:push
The database file is created at api/data.db automatically.
pnpm dev
pnpm build
pnpm -C api start
Serve web/dist/ with your preferred web server (Nginx, Caddy, etc.) and configure reverse proxy for /api/* routes to the API server.
garage-admin-console/
├── api/ # Backend-For-Frontend (Express + Prisma)
├── web/ # Frontend SPA (React + Vite)
├── e2e/ # End-to-end tests (Playwright)
└── web/public/garage-admin-v2.json # Garage Admin API OpenAPI specification
The console uses a Backend-For-Frontend (BFF) proxy pattern:
Browser → Frontend → BFF API → Garage Cluster
| Command | Description |
|---|---|
pnpm dev | Start development servers |
pnpm build | Build for production |
pnpm lint | Run ESLint |
pnpm format | Format code with Prettier |
pnpm -C web test | Run unit tests |
npx playwright test | Run E2E tests |
pnpm -C api db:push | Push schema to database |
pnpm -C api db:studio | Open Prisma Studio GUI |
JWT_SECRET, ENCRYPTION_KEY, and ADMIN_PASSWORDThis project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0),
consistent with the Garage project. See LICENSE for the full text.
The following assets are sourced from the Garage project repository and are governed by Garage's own license terms:
web/public/garage.svg, web/public/garage.png,
web/public/garage-notext.svg, and web/public/garage-notext.pngweb/public/garage-admin-v2.jsonContent type
Image
Digest
sha256:66694ef73…
Size
67.3 MB
Last updated
4 months ago
docker pull eyebrowkang/garage-admin-console