https://github.com/busysloths/mlox
Sovereign AI Infrastructure. Open by Design. Slothfully Simple.
https://github.com/busysloths/mlox
ai airflow infrastructure-management mlflow mlops model-deployment model-tracking secret-management ui
Last synced: 9 days ago
JSON representation
Sovereign AI Infrastructure. Open by Design. Slothfully Simple.
- Host: GitHub
- URL: https://github.com/busysloths/mlox
- Owner: BusySloths
- License: mit
- Created: 2024-11-13T10:04:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-29T12:08:45.000Z (14 days ago)
- Last Synced: 2026-04-29T12:24:53.079Z (14 days ago)
- Topics: ai, airflow, infrastructure-management, mlflow, mlops, model-deployment, model-tracking, secret-management, ui
- Language: Python
- Homepage: https://busysloths.github.io/mlox/
- Size: 11.4 MB
- Stars: 11
- Watchers: 1
- Forks: 2
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Sovereign AI Infrastructure. Open by Design. Slothfully Simple.
A configuration-driven control plane for deploying production-grade MLOps on your own servers — without cloud lock-in.
---
## What is MLOX?
Cloud MLOps costs thousands per month. Setup is painful. Vendor lock-in is a trap.
MLOX is a calm, reproducible way to run production-grade ML infrastructure on your own servers or hybrid cloud. You define your stack in YAML, MLOX handles the rest — deploying services, managing secrets, and wiring dependencies across backends. Three interfaces (Web UI, TUI, CLI) share one inspectable config-driven core, while frontend-specific UI handlers are registered separately.
It's for engineers who prefer thoughtful systems over chaos. Backed by open source. Powered by sloths.
> **[State of the Union (Sept 2025)](https://drive.google.com/file/d/1Y368yXcaQt1dJ6riOCzI7-pSQBnJjyEP/view?usp=sharing)** — a short slide overview of what MLOX is, what problem it solves, and where it's heading.
---
## Current Status
MLOX is in **active alpha development (v0.x)**. Core infrastructure, all three backends (Native, Docker, Kubernetes), and the major services are functional. The project has been accepted at **CAIN 2026**.
We welcome contributors, early adopters, and honest feedback. If you hit something broken, please [open an issue](https://github.com/BusySloths/mlox/issues/new/choose) or reach out at `contact@mlox.org`.
---
## What Can You Do with MLOX?
| Area | What's included |
|------|----------------|
| **Infrastructure** | Add/remove/tag servers; choose Native, Docker, or Kubernetes runtime; spin up single- or multi-node clusters |
| **Services** | Deploy, update, and remove services; centralized secrets; dependency wiring between services |
| **Code** | `busysloths-mlox` PyPI package with client integrations, SDK helpers, and example snippets |
| **Lifecycle Management** | Migrate, upgrade, export, and decommission services *(planned)* |
---
## Services Catalog
| Category | Services | Status |
|----------|----------|--------|
| ML Platforms | MLflow 2.x, MLflow 3.x, Airflow 2.x, Airflow 3.x | ✅ Stable |
| Model Serving | MLflow MLServer | ✅ Stable |
| LLMs & Inference | LiteLLM | ✅ Stable |
| Vector & Feature Stores | Milvus, Feast | ✅ Stable |
| Data & Streaming | PostgreSQL, Redis, MinIO, Kafka | ✅ Stable |
| Observability | InfluxDB, OpenTelemetry | ✅ Stable |
| Secrets & Access | OpenBao, Tiny Secret Manager, Docker Registry | ✅ Stable |
| Kubernetes Add-ons | K8s Dashboard, Headlamp, KubeApps | 🔄 Experimental |
| Cloud Integrations | GCP (BigQuery, Cloud Storage, Sheets, Secret Manager) | 🔄 Experimental |
| Source Control | GitHub repository import | ✅ Stable |
---
## Architecture in 30 Seconds
```text
CLI TUI Streamlit Web UI Other UIs
\ | | /
\ | | /
+----+-------------+--------------+
|
v
`mlox/application/use_cases/*`
shared session-based logic
|
v
`MloxSession`
project + encrypted secret manager + infrastructure
/ \
v v
secret-manager backend `Infrastructure`
(InMemory/TinySM/OpenBao/GCP) topology for one project
|
v
`Bundle` = compute/server + services[*]
|
v
execution via `mlox/executors.py` + `mlox/execution/*`
```
`MloxSession` is the runtime center: it always carries project metadata, an encrypted key-value secret manager, and the current `Infrastructure`. The important shared application layer is `mlox/application/use_cases/*`; CLI already routes through it, and TUI/Web/future UIs should do the same. `Infrastructure` models topology through bundles, where each bundle groups one compute/server with its services. Anything executed on a compute goes through the execution layer, while compute capabilities already exist (`git`, `docker`, `kubernetes`, ...) and service capabilities are an emerging architectural direction.
YAML stays focused on deployable configs and Python build classes. Frontend-specific setup/settings components live in the frontend packages (`mlox/view/*`, `mlox/tui/*`) and are resolved through `mlox/ui/registry.py`, which keeps UI code out of service/server config definitions and creates a future extension point for plugin-provided UI handlers.
For deeper reading:
- [Architecture Guide (humans)](docs/ARCHITECTURE_HUMANS.md) — codebase walkthrough
- [Architecture Guide (agents)](docs/ARCHITECTURE_AGENTS.md) — high-risk areas and invariants
---
## Quickstart
```bash
# 1. Install Task (https://taskfile.dev/installation/)
# 2. Clone
git clone https://github.com/BusySloths/mlox.git && cd mlox
# 3. Set up environment (creates conda env 'mlox-dev' with Python 3.12.5)
task first:steps
# 4. Launch the Web UI
task ui:streamlit
# 5. Or try the CLI
task ui:cli CLI_ARGS="--help"
```
See [Installation Guide](docs/INSTALLATION.md) for a fuller walkthrough including Docker and Kubernetes setup.
---
## Project Structure
```
mlox/
├── mlox/
│ ├── application/ # facade + session-based use_cases
│ ├── cli/ # Typer CLI package (root app + command modules)
│ ├── services/ # 20+ deployable ML services (one directory each)
│ ├── servers/ # Native and Ubuntu/SSH backends
│ ├── tui/ # Textual terminal UI + TUI-specific UI handlers
│ ├── ui/ # frontend UI handler registry
│ ├── view/ # Streamlit web UI + Streamlit-specific UI handlers
│ ├── session.py # Runtime state & persistence
│ ├── infra.py # Service/server graph
│ ├── config.py # YAML loading + plugin discovery + UI handler lookup
│ ├── execution/ # backend/system execution helpers
│ └── executors.py # remote task executor layer used by services/servers
├── tests/
│ ├── unit/ # Fast tests, no external deps
│ └── integration/ # Multipass VM tests
├── examples/ # OTel, MLflow tracking, DAG templates
├── docs/ # Architecture, installation, contribution guides
└── website/ # Astro landing page
```
---
## Contributing
### Sloth-Friendly Setup
```bash
# 1. Install Task (https://taskfile.dev/installation/)
# 2. Clone the repo
git clone https://github.com/BusySloths/mlox.git && cd mlox
# 3. Set up the dev environment
task first:steps
# 4. Install dev dependencies
pip install -e .[dev]
```
### Run Tests
```bash
task dev:lint # flake8
task tests:unit:run # unit tests (fast, no external deps)
task tests:integration:run # integration tests (requires Multipass VMs)
```
### Ways to Contribute
- [Bug reports](https://github.com/BusySloths/mlox/issues/new/choose)
- [Documentation improvements](https://github.com/BusySloths/mlox/issues/new/choose)
- [Feature requests](https://github.com/BusySloths/mlox/issues/new/choose)
- [New service implementations](docs/ARCHITECTURE_HUMANS.md)
- [Examples and tutorials](examples/)
See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide and [docs/WORKFLOW_QUICK_REFERENCE.md](docs/WORKFLOW_QUICK_REFERENCE.md) for how we use GitHub Projects, Milestones, and Issues.
---
## Documentation
| Document | Description |
|----------|-------------|
| [Installation Guide](docs/INSTALLATION.md) | Setup from scratch |
| [Architecture (humans)](docs/ARCHITECTURE_HUMANS.md) | Codebase walkthrough |
| [Architecture (agents)](docs/ARCHITECTURE_AGENTS.md) | High-risk areas and invariants |
| [Contributing Guide](CONTRIBUTING.md) | How to contribute |
| [Workflow Quick Reference](docs/WORKFLOW_QUICK_REFERENCE.md) | Labels, milestones, PRs |
| [Plugin Guide](docs/PLUGIN_CONFIGS.md) | External service and server config plugins |
| [API Docs](https://busysloths.github.io/mlox/mlox.html) | Generated Python API reference |
---
## Sponsors
MLOX is proudly funded by:

## Supporters
---
## License & Contact
MLOX is open-source, distributed under the [MIT License](LICENSE). Contributions are welcome and subject to the same terms.
We are looking for people invested in the problem we're solving. Say hello at `contact@mlox.org` or start a conversation in [GitHub Discussions](https://github.com/BusySloths/mlox/discussions).