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
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
- GitHub Repository: khairul169/garage-webui
- Garage Object Storage: Official Website
- Screenshots: View Screenshots