Garage Web UI: An Admin Interface for Garage Object Storage

Garage Web UI: An Admin Interface for Garage Object Storage

Summary

Garage Web UI is a simple, self-hosted web interface designed for managing the Garage Object Storage service. Built with TypeScript and Go, it provides essential features like health status monitoring, bucket management, and access key creation. This tool simplifies the administration of your S3-compatible distributed object storage.

Repository Info

Updated on November 30, 2025
View on GitHub

Tags

Click on any tag to explore related repositories

Introduction

Garage Web UI is an intuitive, self-hosted web interface designed to simplify the administration of Garage, a powerful S3-compatible, distributed object storage service. This project provides a user-friendly dashboard for managing your Garage cluster, making complex operations accessible through a graphical interface.

Key features include:

  • Monitoring Garage health status.
  • Managing cluster and layout configurations.
  • Creating, updating, and viewing bucket information.
  • An integrated objects/bucket browser for easy navigation.
  • Creating and assigning access keys for secure access.

Built with TypeScript for the frontend and Go for the backend, Garage Web UI offers a robust and responsive experience for managing your object storage infrastructure.

Installation

Garage Web UI can be easily deployed using Docker, Docker Compose, or as a standalone binary.

Using Docker CLI

docker run -p 3909:3909 -v ./garage.toml:/etc/garage.toml:ro --restart unless-stopped --name garage-webui khairul169/garage-webui:latest

Using Docker Compose

If you are already running Garage with Docker Compose, you can integrate the Web UI by adding it to your docker-compose.yml file:

services:
  garage:
    image: dxflrs/garage:v2.0.0
    container_name: garage
    volumes:
      - ./garage.toml:/etc/garage.toml
      - ./meta:/var/lib/garage/meta
      - ./data:/var/lib/garage/data
    restart: unless-stopped
    ports:
      - 3900:3900
      - 3901:3901
      - 3902:3902
      - 3903:3903

  webui:
    image: khairul169/garage-webui:latest
    container_name: garage-webui
    restart: unless-stopped
    volumes:
      - ./garage.toml:/etc/garage.toml:ro
    ports:
      - 3909:3909
    environment:
      API_BASE_URL: "http://garage:3903"
      S3_ENDPOINT_URL: "http://garage:3900"

Without Docker

For a standalone installation, download the latest binary from the release page. For example, for Linux AMD64:

wget -O garage-webui https://github.com/khairul169/garage-webui/releases/download/1.1.0/garage-webui-v1.1.0-linux-amd64
chmod +x garage-webui
sudo cp garage-webui /usr/local/bin

Then, run the program with your garage.toml configuration path:

CONFIG_PATH=./garage.toml garage-webui

You can also set up a systemd service for automatic startup:

sudo nano /etc/systemd/system/garage-webui.service

Add the following content:

[Unit]
Description=Garage Web UI
After=network.target

[Service]
Environment="PORT=3919"
Environment="CONFIG_PATH=/etc/garage.toml"
ExecStart=/usr/local/bin/garage-webui
Restart=always

[Install]
WantedBy=default.target

Reload and start the service:

sudo systemctl daemon-reload
sudo systemctl enable --now garage-webui

Examples

Once your Garage Web UI instance is running, you can access it via your web browser at http://your-ip:3909. For enhanced security, it is recommended to place it behind a reverse proxy with SSL.

To enable authentication for the Web UI, set the AUTH_USER_PASS environment variable in the format username:password_hash. You can generate the password hash using htpasswd:

htpasswd -nbBC 10 "YOUR_USERNAME" "YOUR_PASSWORD"

Then, update your docker-compose.yml or environment variables accordingly:

webui:
  ....
  environment:
    AUTH_USER_PASS: "username:$2y$10$DSTi9o..."

Why Use It

Garage Web UI offers significant advantages for anyone managing a Garage Object Storage instance:

  • Simplified Management: Provides a visual interface for tasks that would otherwise require command-line operations, making administration more accessible.
  • Comprehensive Overview: Get a quick glance at your Garage cluster's health, layout, and resource usage.
  • Efficient Operations: Easily create, modify, and delete buckets, and manage access keys without manual configuration files.
  • Self-Hosted Control: Maintain full control over your storage and its management interface within your own infrastructure.
  • Seamless Integration: Designed to work effortlessly with existing Garage deployments, especially those using Docker.

Links