Command-line tools
geo-mlops-admin, which works on the DB directly without the server, and ./client, which connects to a running server
Required permission: Global admin
Geo-MLOps has two command-line tools.
| Tool | Connects to | Who uses it | Use it for |
|---|---|---|---|
geo-mlops-admin | The DB directly (the server may be down) | Platform operators | Emergency recovery of accounts and roles, rebuilding the DB, filling the weights mirror |
geo-mlops-client (./client) | A running server over HTTP | Every user | Sign-in, large dataset uploads, scripts that call the API |
geo-mlops-admin
It reads the same environment variables as the app (GEO_MLOPS_*, especially GEO_MLOPS_DATABASE_URL) or .env. It has no separate connection options. Call it with the ./admin script at the root of the server repository (the same as ./run geo-mlops-admin … or python -m geo_mlops.admin).
./admin --help
If you installed with containers, run it inside the app container (working directory /app).
docker compose exec app ./admin user list
user — accounts
./admin user create [email protected] --admin # account + global administrator
./admin user create [email protected] # generates and prints a password
./admin user create [email protected] --password '<your-secret>'
./admin user list # list accounts and roles
./admin user delete [email protected] --yes # delete permanently
There are also the --inactive (create as inactive) and --unverified (create with the email unverified) options.
admin — global administrators
./admin admin grant [email protected]
./admin admin revoke [email protected]
This is the emergency recovery tool for when the last global administrator was lost in the UI or nobody knows the password.
role — tenant roles
./admin role grant [email protected] DEMO OPERATOR # grant or change a role
./admin role revoke [email protected] DEMO
The role is one of VIEWER, DEVELOPER, OPERATOR, APPROVER and ADMIN.
db reset — rebuild the database
./admin db reset --seed # drop everything, rebuild with migrations, then plant initial data
--seedplants the boot seed (bootstrap administrator and tenant) again after the rebuild and also creates the tenant namespaces. To skip the namespaces, use--no-cluster../admin-database-initializein the server repository is a script that runsdb reset --seed --yeswithout confirmation. It is for development environments only.
seed-demo — demo data
./admin seed-demo --tenant DEMO --days 30
Fills every screen of the bootstrap tenant (or the tenant chosen with --tenant) with demo data. Skips data that already exists.
weights — weights mirror
Uses only object storage and the catalog, without the DB. You can run it right after installation, even before the DB is ready.
./admin weights list # catalog and mirror state
./admin weights warm --framework rf-detr # download from the internet and store in the mirror
./admin weights warm --all
./admin weights push rf-detr-large ./rf-detr-large.pth --framework rf-detr # air-gapped: upload a file you brought in
./admin weights prune # delete old objects the catalog no longer points to
For the same work in the UI, see Weights mirror.
./client — the user client
geo-mlops-client is a user tool that connects to a running server. When you sign in, it saves the JWT to ~/.geo-mlops.json (readable only by the owner) and reuses it for later commands, so you do not type the password every time. Call it with the ./client script in the server repository.
./client login [email protected] --base-url https://mlops.example.com --tenant DEMO
./client whoami
./client logout
- The server address is decided in this order:
--base-url→GEO_MLOPS_CLIENT_BASE_URL→ the last sign-in address → the defaulthttp://localhost:10000. - The tenant comes from
--tenant CODE,GEO_MLOPS_CLIENT_TENANT, or the default saved at sign-in.
There are also check commands that work without signing in.
./client meta health # alive? version
./client meta readyz # ready, including the DB connection? (exit code 1 if there is a problem)
./client meta metrics # raw Prometheus metrics
Other APIs are called directly as <group> <action> (tenants, experiments, models, datasets, settings and so on). See the list of actions with ./client <group> --help.
./client models list
./client datasets upload-archive <dataset ID> ~/corpus --chunk-size 64M
./client training-weights upload my-ckpt ./best.pt --framework yolo --model yolo26n