Introduction
Menatic AI is designed for teams that want to run AI workloads on their own infrastructure without sending data to third-party cloud services.
Core Concepts
Section titled “Core Concepts”Namespaces
Section titled “Namespaces”The platform uses two Kubernetes namespaces:
| Namespace | Purpose |
|---|---|
ftn-ai | Platform services: backend API, frontend, ingress |
apps | User workloads: notebooks, MCP servers, Ollama |
Workload Types
Section titled “Workload Types”Jupyter Notebooks
Each notebook is deployed as a Kubernetes Deployment with a single replica. Notebooks are accessible via a per-instance token URL proxied through Traefik ingress.
MCP Servers
Model Context Protocol servers are also Deployment resources. They expose a JSON-RPC 2.0 Streamable HTTP endpoint and can be connected to AI models to provide tool use capabilities.
Ollama (Local Inference)
Ollama runs as a StatefulSet in the apps namespace and manages locally downloaded model weights. Supports GPU acceleration via node selectors and resource limits.
Remote Models Remote inference providers (OpenAI-compatible APIs) are registered in the platform database and proxied by the backend. No weights are stored locally.
Authentication
Section titled “Authentication”The platform uses JWT-based authentication. All API requests require a bearer token obtained from the /api/auth/login endpoint. The frontend stores this token in memory and attaches it to every request.
Permissions are organized into resources (e.g., jupyter, mcp, models) and actions (e.g., read, write, delete, read_own). The read_own action restricts a user to only see objects they own — useful for multi-tenant deployments.
See Roles & Permissions for details.
Technology Stack
Section titled “Technology Stack”| Layer | Technology |
|---|---|
| Frontend | Next.js 15, Tailwind CSS, shadcn/ui, next-intl (i18n) |
| Backend | Go, standard library HTTP, Kubernetes client-go |
| Inference | Ollama, OpenAI-compatible remote APIs |
| Infrastructure | Kubernetes, Traefik, cert-manager, metrics-server |
| Notebooks | JupyterLab (single-user) |
| Protocol | MCP Streamable HTTP Transport (JSON-RPC 2.0) |