garage-webui 설치 - Garage 클러스터와 버킷을 브라우저에서 관리하기
요약: Garage 에 garage-webui 를 붙여 레이아웃·버킷·키를 브라우저에서 관리한다. compose 서비스 하나와 htpasswd 로그인 설정.
개요
Garage 는 CLI 가 본체다. 다만 레이아웃을 짜고 버킷과 키를 엮는 일은 화면으로 보면 훨씬 빠르다.
Garage 에는 공식 웹 콘솔이 없고 서드파티 UI 가 여럿 있다. 이 글은 그중 가장 단순한 garage-webui 를 다룬다.
Garage 가 이미 돌고 있는 상태에서 compose 에 서비스 하나를 더하는 식으로 진행한다.
Garage 자체의 설치와 CLI 구성은 앞선 글에서 다룬다.
설치
Docker 와 Docker Compose 가 설치돼 있어야 한다. 설치는 아래 글에서 다룬다.
webui 서비스 추가
앞선 글의 compose 에 webui 서비스를 하나 더한다. 완성된 파일은 저장소에 있다. sample/docker/garage-webui
1# docker-compose.yml
2
3services:
4 garage:
5 image: dxflrs/garage:v2.4.1
6 container_name: garage
7 restart: unless-stopped
8 ports:
9 - "3900:3900" # S3 API, signed requests only
10 # - "3901:3901" # RPC, only needed to join other nodes
11 - "3902:3902" # static website hosting, public read
12 # - "3903:3903" # admin API, reached by webui over the compose network
13 env_file:
14 - .env
15 volumes:
16 - ./garage.toml:/etc/garage.toml:ro
17 - ./meta:/var/lib/garage/meta
18 - ./data:/var/lib/garage/data
19
20 webui:
21 image: khairul169/garage-webui:1.1.0
22 container_name: garage-webui
23 restart: unless-stopped
24 depends_on:
25 - garage
26 ports:
27 - "3909:3909"
28 environment:
29 API_BASE_URL: "http://garage:3903"
30 S3_ENDPOINT_URL: "http://garage:3900"
31 API_ADMIN_KEY: "${GARAGE_ADMIN_TOKEN}"
32 AUTH_USER_PASS: "${AUTH_USER_PASS}"
33 volumes:
34 - ./garage.toml:/etc/garage.toml:ro
로그인 붙이기
계정과 비밀번호 해시 생성
1# htpasswd -nBC 10 {id}
2htpasswd -nBC 10 admin
프롬프트가 두 번 물어보고 마지막 줄에 계정:해시 형태로 찍는다. 이 줄을 통째로 복사한다.
1New password:
2Re-type new password:
3admin:$2y$10$H9W.......yn6ze54n2
.env 에 붙여넣기
1# htpasswd -nBC 10 admin
2AUTH_USER_PASS=admin:$2y$10$H9W.......yn6ze54n2
재시작
환경변수는 컨테이너를 만들 때 박힌다. 바꿔도 컨테이너를 다시 만들지 않으면 반영되지 않는다.
1docker compose up -d --force-recreate
2
3[+] Restarting 2/2
4 ✔ Container garage-webui Started 0.7s
5 ✔ Container garage Started
WEB UI
접속
ex) http://192.168.0.10:3909
대시보드
클러스터 생성
Node Assign
Node Apply
생성 완료
버킷 생성
버킷에 권한 추가
키 생성
버킷 이동
Manage 탭 이동
퍼미션 연결
Permissions 항목에서 연결할 키에 필요한 권한을 준다
추가 옵션
정적 웹사이트 허용
Bucket 설정에서 Website Access Enabled
정리
CLI 로 하던 일을 브라우저로 옮겨왔을 뿐 동작은 같다. Assign 과 Apply 가 나뉘어 있는 것도, 키와 버킷을 따로 만들어 권한으로 잇는 것도 CLI 와 그대로다.
webui 는 admin API 를 감싼 화면이라 Garage 쪽 개념을 알고 보면 헤맬 곳이 없다. 반대로 개념을 모르고 화면부터 보면 Assign 만 하고 Apply 를 빠뜨리는 식으로 막힌다.
염두에 둘 것은 둘이다. 공식 콘솔이 아니라 서드파티이므로 Garage 본체와 업데이트 주기가 다르다.
그리고 인증이 기본으로 꺼져 있다. AUTH_USER_PASS 를 걸지 않으면 3909 에 닿는 사람은 누구나 관리자가 된다. 내부 네트워크라도 열어둘 이유가 없다.
비밀번호를 바꾸려면 해시를 다시 만들고 컨테이너를 재생성해야 한다. 운영에서는 인증을 앞단 리버스 프록시로 옮기거나, 아예 포트를 노출하지 않고 VPN 안에서만 닿게 하는 편이 편하다.











