Sign inSign up

khairul169/garage-webui

By khairul169

•Updated about 1 year ago

WebUI for Garage Object Storage Service

Image
Developer tools
Databases & storage
2

1M+

khairul169/garage-webui repository overview

⁠Garage Web UI

A simple admin web UI for Garage⁠, a self-hosted, S3-compatible, distributed object storage service.

⁠Features

  • Garage health status
  • Cluster & layout management
  • Create, update, or view bucket information
  • Integrated objects/bucket browser
  • Create & assign access keys

⁠Installation

You can install it using the command line or with Docker Compose.

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

If you install Garage using Docker, you can install this web UI alongside Garage as follows:

services:
  garage:
    image: dxflrs/garage:v1.0.1
    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:3903
       - 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"
⁠Configuration

To simplify installation, the Garage Web UI uses values from the Garage configuration, such as rpc_public_addr, admin.admin_token, s3_web.root_domain, etc.

Example content of config.toml:

metadata_dir = "/var/lib/garage/meta"
data_dir = "/var/lib/garage/data"
db_engine = "sqlite"
metadata_auto_snapshot_interval = "6h"

replication_factor = 3
compression_level = 2

rpc_bind_addr = "[::]:3901"
rpc_public_addr = "localhost:3901" # Required
rpc_secret = "YOUR_RPC_SECRET_HERE"

[s3_api]
s3_region = "garage"
api_bind_addr = "[::]:3900"
root_domain = ".s3.domain.com"

[s3_web] # Optional, if you want to expose bucket as web
bind_addr = "[::]:3902"
root_domain = ".web.domain.com"
index = "index.html"

[admin] # Required
api_bind_addr = "[::]:3903"
admin_token = "YOUR_ADMIN_TOKEN_HERE"
metrics_token = "YOUR_METRICS_TOKEN_HERE"

However, if it fails to load, you can set these environment variables instead:

  • CONFIG_PATH: Path to the Garage config.toml file. Defaults to /etc/garage.toml.
  • API_BASE_URL: Garage admin API endpoint URL.
  • API_ADMIN_KEY: Admin API key.
  • S3_REGION: S3 Region.
  • S3_ENDPOINT_URL: S3 Endpoint url.
⁠Running

Once your instance of Garage Web UI is started, you can open the web UI at http://your-ip:3909⁠. You can place it behind a reverse proxy to secure it with SSL.

⁠Troubleshooting

Make sure you are using the latest version of Garage. If the data cannot be loaded, please check whether your instance of Garage has the admin API enabled and the ports are accessible.

If you encounter any problems, please do not hesitate to submit an issue here⁠. You can describe the problem and attach the error logs.

Tag summary

Content type

Image

Digest

sha256:17c793551…

Size

9.3 MB

Last updated

about 1 year ago

docker pull khairul169/garage-webui