명령줄 도구
서버 없이 DB 를 직접 다루는 geo-mlops-admin 과, 돌고 있는 서버에 붙는 ./client
필요 권한: 전역 관리자
Geo-MLOps 에는 명령줄 도구가 둘 있습니다.
| 도구 | 어디에 붙나 | 누가 쓰나 | 이럴 때 |
|---|---|---|---|
geo-mlops-admin | DB 에 직접 (서버가 꺼져 있어도 됨) | 플랫폼 운영자 | 계정·역할 응급 복구, DB 재구성, 가중치 미러 채우기 |
geo-mlops-client (./client) | 돌고 있는 서버에 HTTP 로 | 모든 사용자 | 로그인, 대용량 데이터셋 업로드, API 호출 스크립트 |
geo-mlops-admin
앱과 같은 환경변수(GEO_MLOPS_*, 특히 GEO_MLOPS_DATABASE_URL)나 .env 를 읽습니다. 접속 옵션은 따로 없습니다. 서버 저장소 루트의 ./admin 스크립트로 부릅니다(./run geo-mlops-admin … 또는 python -m geo_mlops.admin 과 같습니다).
./admin --help
컨테이너로 설치했다면 앱 컨테이너 안에서 실행합니다(작업 디렉터리 /app).
docker compose exec app ./admin user list
user (계정)
./admin user create [email protected] --admin # 계정 + 전역 관리자
./admin user create [email protected] # 비밀번호를 만들어 출력
./admin user create [email protected] --password '<your-secret>'
./admin user list # 계정과 역할 목록
./admin user delete [email protected] --yes # 영구 삭제
--inactive(비활성으로 생성), --unverified(이메일 미인증으로 생성) 옵션도 있습니다.
admin (전역 관리자)
./admin admin grant [email protected]
./admin admin revoke [email protected]
화면에서 마지막 전역 관리자를 잃었거나 비밀번호를 모를 때의 응급 복구 수단입니다.
role (테넌트 역할)
./admin role grant [email protected] DEMO OPERATOR # 역할 부여·변경
./admin role revoke [email protected] DEMO
역할은 VIEWER, DEVELOPER, OPERATOR, APPROVER, ADMIN 중 하나입니다.
db reset (데이터베이스 재구성)
./admin db reset --seed # 전부 지우고 마이그레이션으로 다시 만든 뒤 초기 데이터 심기
--seed는 재구성 뒤 부팅 시드(부트스트랩 관리자·테넌트)를 다시 심고, 테넌트 네임스페이스도 만듭니다. 네임스페이스를 건너뛰려면--no-cluster.- 서버 저장소의
./admin-database-initialize는db reset --seed --yes를 확인 없이 실행하는 스크립트입니다. 개발 환경 전용입니다.
seed-demo (데모 데이터)
./admin seed-demo --tenant DEMO --days 30
부트스트랩 테넌트(또는 --tenant 로 고른 테넌트)의 모든 화면을 데모 데이터로 채웁니다. 이미 있으면 건너뜁니다.
weights (가중치 미러)
DB 없이 오브젝트 스토리지와 카탈로그만 씁니다. 설치 직후 DB 를 준비하기 전에도 돌릴 수 있습니다.
./admin weights list # 카탈로그와 미러 상태
./admin weights warm --framework rf-detr # 인터넷에서 받아 미러에 저장
./admin weights warm --all
./admin weights push rf-detr-large ./rf-detr-large.pth --framework rf-detr # 폐쇄망: 가져온 파일 올리기
./admin weights prune # 카탈로그가 안 가리키는 옛 객체 삭제
화면에서 하는 같은 일은 가중치 미러를 보세요.
./client (사용자용 클라이언트)
geo-mlops-client 는 돌고 있는 서버에 붙는 사용자용 도구입니다. 로그인하면 로그인 토큰(JWT)을 ~/.geo-mlops.json(소유자만 읽기 가능)에 저장합니다. 다음 명령부터 이 토큰을 다시 쓰므로 비밀번호를 매번 입력하지 않습니다. 서버 저장소의 ./client 스크립트로 부릅니다.
./client login [email protected] --base-url https://mlops.example.com --tenant DEMO
./client whoami
./client logout
- 서버 주소는
--base-url→GEO_MLOPS_CLIENT_BASE_URL→ 마지막 로그인 주소 → 기본값http://localhost:10000순으로 정해집니다. - 테넌트는
--tenant CODE,GEO_MLOPS_CLIENT_TENANT, 또는 로그인 때 저장한 기본값을 씁니다.
로그인 없이 쓰는 점검 명령도 있습니다.
./client meta health # 살아 있나, 버전
./client meta readyz # DB 연결까지 준비됐나 (문제가 있으면 종료 코드 1)
./client meta metrics # Prometheus 지표 원문
그 밖의 API 는 <그룹> <동작> 으로 그대로 불립니다(tenants, experiments, models, datasets, settings 등). ./client <그룹> --help 로 동작 목록을 봅니다.
./client models list
./client datasets upload-archive <데이터셋 ID> ~/corpus --chunk-size 64M
./client training-weights upload my-ckpt ./best.pt --framework yolo --model yolo26n