Backend.AI is a streamlined, container-based computing cluster platform that hosts popular computing/ML frameworks and diverse programming languages, with pluggable heterogeneous accelerator support including CUDA GPU, ROCm GPU, Gaudi NPU, Google TPU, GraphCore IPU and other NPUs.
See the codeBackend.AI is a streamlined, container-based computing cluster platform that hosts popular computing/ML frameworks and diverse programming languages, with pluggable heterogeneous accelerator support including CUDA GPU, ROCm GPU, Rebellions, FuriosaAI, HyperAccel, Intel Gaudi, Tenstorrent, Google TPU, Graphcore IPU and other NPUs.
It allocates and isolates the underlying computing resources for multi-tenant computation sessions on-demand or in batches with customizable job schedulers with its own orchestrator named "Sokovan".
All its functions are exposed as REST and GraphQL APIs.
Container engine (one of):
| Engine | Supported | Accelerator requirements |
|---|---|---|
| Docker | 20.10+ | The nvidia runtime registered with the daemon (nvidia-ctk runtime configure --runtime=docker) |
| Podman | 5.4.0+ | A CDI spec for the accelerator under /etc/cdi or /var/run/cdi (nvidia-ctk cdi generate for NVIDIA GPUs) |
Distributions packaging Podman 5.4.0+:
| OS | Minimum version | Packaged Podman |
|---|---|---|
| RHEL | 9.x | 5.4.0+ (older minors, e.g. under EUS, may ship older Podman; check the version the OS repo offers) |
| Rocky Linux | 9.6 | 5.4.0 |
| AlmaLinux | 9.6 | 5.4.0 |
| Oracle Linux | 9.6 | 5.4.0 |
| CentOS Stream | 9 | 5.8.5 |
| Ubuntu | 26.04 LTS | 5.7.0 |
| Debian | 13 | 5.4.2 |
Required:
Recommended (for observability):
→ Detailed infrastructure setup: Infrastructure Documentation
git clone https://github.com/lablup/backend.ai.git
cd backend.ai
./scripts/install-dev.sh
This script will:
--profile observability, --profile storage)Start each component in separate terminals:
Manager (Terminal 1):
./backend.ai mgr start-server --debug
Agent (Terminal 2):
./backend.ai ag start-server --debug
Storage Proxy (Terminal 3):
./backend.ai storage start-server --debug
Web Server (Terminal 4):
./backend.ai web start-server --debug
Account Manager (Terminal 5, optional for SSO and unified user profile):
./backend.ai am start-server --debug
App Proxy (Terminal 6-7, optional for in-container service access):
./backend.ai app-proxy-coordinator start-server --debug
./backend.ai app-proxy-worker start-server --debug
Set up client environment:
source env-local-user-session.sh
# This script prints your default User ID and Password;
./backend.ai login
# When prompted, enter the User ID and Password shown above.
Run a simple Python session:
./backend.ai run python -c "print('Hello Backend.AI!')"
Or access Web UI at http://localhost:8090 with credentials from env-local-*.sh files.
Backend.AI provides websocket tunneling into individual computation sessions (containers), so that users can use their browsers and client CLI to access in-container applications directly in a secure way.
Backend.AI provides an abstraction layer on top of existing network-based storages (e.g., NFS/SMB), called vfolders (virtual folders). Each vfolder works like a cloud storage that can be mounted into any computation sessions and shared between users and user groups with differentiated privileges.
Please consult our documentation for community-supported materials. Contact the sales team ([email protected]) for professional paid support and deployment options.
For comprehensive system architecture, component interactions, and infrastructure details, see:
Component Architecture Documentation
This document covers:
This repository contains all open-source server-side components and the client SDK for Python as a reference implementation of API clients.
src/ai/backend/: Source codes
manager/: Manager as the cluster control-planemanager/api: Manager API handlersaccount_manager/: Unified user profile and SSO managementagent/: Agent as per-node controlleragent/docker/: Agent's Docker backendagent/kubernetes/: Agent's Kubernetes backendagent/dummy/: Agent's dummy backendkernel/: Agent's kernel runner counterpartrunner/: Agent's in-kernel prebuilt binarieshelpers/: Agent's in-kernel helper packagecommon/: Shared utilitiesclient/: Client SDKcli/: Unified CLI for all componentsinstall/: SCIE-based TUI installerstorage/: Storage proxy for offloading storage operationsstorage/api: Storage proxy's manager-facing and client-facing APIsappproxy/: App proxy for accessing container apps from outsideappproxy/coordinator: App proxy coordinator who provisions routing circuitsappproxy/worker: App proxy worker who forwards the trafficweb/: Web UI server
static/: Backend.AI WebUI release artifactslogging/: Logging subsystemplugin/: Plugin subsystemtest/: Integration test suitetestutils/: Shared utilities used by unit testsmeta/: Legacy meta packageaccelerator/: Intrinsic accelerator pluginsdocs/: Unified documentationtests/
manager/, agent/, ...: Per-component unit testsconfigs/
manager/, agent/, ...: Per-component sample configurationsdocker/: Dockerfiles for auxiliary containersfixtures/
manager/, ...: Per-component fixtures for development setup and testsplugins/: A directory to place plugins such as accelerators, monitors, etc.third-party-plugins/: Backend.AI plugins for third-party software (e.g. AppProxy Traefik Go plugin)scripts/: Scripts to assist development workflows
install-dev.sh: The single-node development setup script from the working copystubs/: Type annotation stub packages written by ustools/: A directory to host Pants-related toolingdist/: A directory to put build artifacts (.whl files) and Pants-exported virtualenvschanges/: News fragments for towncrierpants.toml: The Pants configurationpyproject.toml: Tooling configuration (towncrier, pytest, mypy)BUILD: The root build config file**/BUILD: Per-directory build config filesBUILD_ROOT: An indicator to mark the build root directory for PantsAGENTS.md: The steering guide for agent-assisted development (CLAUDE.md is a symlink to it)requirements.txt: The unified requirements file*.lock, tools/*.lock: The dependency lock filesdocker-compose.*.yml: Per-version recommended halfstack container configsREADME.md: This fileMIGRATION.md: The migration guide for updating between major releasesVERSION: The unified version declarationServer-side components are licensed under LGPLv3 to promote non-proprietary open innovation in the open-source community while other shared libraries and client SDKs are distributed under the MIT license.
There is no obligation to open your service/system codes if you just run the server-side components as-is (e.g., just run as daemons or import the components without modification in your codes). Please contact us (contact-at-lablup-com) for commercial consulting and more licensing details/options about individual use-cases.
Backend.AI consists of the following core components:
Manager - Central API gateway and orchestrator
backendai_scheduler_v10, backendai_agentselector_v10, backendai_hook_v20, backendai_webapp_v20, backendai_monitor_stats_v10, backendai_monitor_error_v10Account Manager - Unified user profile and SSO daemon
Agent - Kernel lifecycle management on compute nodes
backendai_accelerator_v21, backendai_monitor_stats_v10, backendai_monitor_error_v10Storage Proxy - Virtual folder and storage backend abstraction
Webserver - Web UI hosting and session management
Synchronizing the static Backend.AI WebUI version:
$ scripts/download-webui-release.sh <target version to download>
App Proxy - Service routing and load balancing
Kernels - Container image recipes
Jail - Programmable sandbox (Rust)
Hook - In-container runtime library
We offer client SDKs in popular programming languages (MIT License):
pip install backend.ai-client | GitHub | Includes CLInpm install backend.ai-client | GitHubcomposer require lablup/backend.ai-client | GitHubBackend.AI supports plugin-based extensibility via Python package entrypoints:
Accelerator Plugins (backendai_accelerator_v21)
Monitoring Plugins
backendai_monitor_stats_v10 - Datadog statistics collectorbackendai_monitor_error_v10 - Sentry exception collectorMedia Library - Multi-media output support (no longer maintained)
IDE Extensions - (Deprecated: Use in-kernel Jupyter Lab, VSCode Server, or SSH instead)
Build Python wheels or SCIE (Self-Contained Installable Executables):
./scripts/build-wheels.sh # Build .whl packages
./scripts/build-scies.sh # Build SCIE packages
Packages are placed in dist/ directory.
Backend.AI uses Git pre-commit hooks to maintain code quality:
# Automatically runs on every commit:
# - Auto-formatting (pants fmt)
# - Linting (pants lint)
# Bypass hooks if needed (use sparingly)
git commit --no-verify
The pre-commit hook validates:
Type checking and tests run in CI for comprehensive coverage.
See AGENTS.md for detailed hook system documentation.
For detailed development setup, build system usage, and contribution guidelines:
To enable shell tab completion for the Backend.AI CLI during development:
# For bash/zsh (from repository root) - MUST use 'source', not execute directly
source scripts/setup-dev-completion.sh
# For fish shell
source scripts/setup-dev-completion.fish
# Or create a permanent alias
# bash/zsh:
echo 'alias bai-dev="cd /path/to/backend.ai && source scripts/setup-dev-completion.sh"' >> ~/.zshrc
# fish:
echo 'alias bai-dev="cd /path/to/backend.ai; and source scripts/setup-dev-completion.fish"' >> ~/.config/fish/config.fish
This will enable tab completion for:
backend.ai <tab> - Show all commandsbackend.ai session <tab> - Session managementbackend.ai admin <tab> - Admin operationsbackend.ai --<tab> - Global optionsSupports bash, zsh, and fish shells.
Refer to LICENSE file.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
378 followers · starred Jun 2025
124 followers · starred Jun 2023
677 followers · starred Apr 2020
954 followers · starred Oct 2025
Backend.AI is a streamlined, container-based computing cluster platform that hosts popular computing/ML frameworks and diverse programming languages, with pluggable heterogeneous accelerator support including CUDA GPU, ROCm GPU, Gaudi NPU, Google TPU, GraphCore IPU and other NPUs.
See the codeBackend.AI is a streamlined, container-based computing cluster platform that hosts popular computing/ML frameworks and diverse programming languages, with pluggable heterogeneous accelerator support including CUDA GPU, ROCm GPU, Rebellions, FuriosaAI, HyperAccel, Intel Gaudi, Tenstorrent, Google TPU, Graphcore IPU and other NPUs.
It allocates and isolates the underlying computing resources for multi-tenant computation sessions on-demand or in batches with customizable job schedulers with its own orchestrator named "Sokovan".
All its functions are exposed as REST and GraphQL APIs.
Container engine (one of):
| Engine | Supported | Accelerator requirements |
|---|---|---|
| Docker | 20.10+ | The nvidia runtime registered with the daemon (nvidia-ctk runtime configure --runtime=docker) |
| Podman | 5.4.0+ | A CDI spec for the accelerator under /etc/cdi or /var/run/cdi (nvidia-ctk cdi generate for NVIDIA GPUs) |
Distributions packaging Podman 5.4.0+:
| OS | Minimum version | Packaged Podman |
|---|---|---|
| RHEL | 9.x | 5.4.0+ (older minors, e.g. under EUS, may ship older Podman; check the version the OS repo offers) |
| Rocky Linux | 9.6 | 5.4.0 |
| AlmaLinux | 9.6 | 5.4.0 |
| Oracle Linux | 9.6 | 5.4.0 |
| CentOS Stream | 9 | 5.8.5 |
| Ubuntu | 26.04 LTS | 5.7.0 |
| Debian | 13 | 5.4.2 |
Required:
Recommended (for observability):
→ Detailed infrastructure setup: Infrastructure Documentation
git clone https://github.com/lablup/backend.ai.git
cd backend.ai
./scripts/install-dev.sh
This script will:
--profile observability, --profile storage)Start each component in separate terminals:
Manager (Terminal 1):
./backend.ai mgr start-server --debug
Agent (Terminal 2):
./backend.ai ag start-server --debug
Storage Proxy (Terminal 3):
./backend.ai storage start-server --debug
Web Server (Terminal 4):
./backend.ai web start-server --debug
Account Manager (Terminal 5, optional for SSO and unified user profile):
./backend.ai am start-server --debug
App Proxy (Terminal 6-7, optional for in-container service access):
./backend.ai app-proxy-coordinator start-server --debug
./backend.ai app-proxy-worker start-server --debug
Set up client environment:
source env-local-user-session.sh
# This script prints your default User ID and Password;
./backend.ai login
# When prompted, enter the User ID and Password shown above.
Run a simple Python session:
./backend.ai run python -c "print('Hello Backend.AI!')"
Or access Web UI at http://localhost:8090 with credentials from env-local-*.sh files.
Backend.AI provides websocket tunneling into individual computation sessions (containers), so that users can use their browsers and client CLI to access in-container applications directly in a secure way.
Backend.AI provides an abstraction layer on top of existing network-based storages (e.g., NFS/SMB), called vfolders (virtual folders). Each vfolder works like a cloud storage that can be mounted into any computation sessions and shared between users and user groups with differentiated privileges.
Please consult our documentation for community-supported materials. Contact the sales team ([email protected]) for professional paid support and deployment options.
For comprehensive system architecture, component interactions, and infrastructure details, see:
Component Architecture Documentation
This document covers:
This repository contains all open-source server-side components and the client SDK for Python as a reference implementation of API clients.
src/ai/backend/: Source codes
manager/: Manager as the cluster control-planemanager/api: Manager API handlersaccount_manager/: Unified user profile and SSO managementagent/: Agent as per-node controlleragent/docker/: Agent's Docker backendagent/kubernetes/: Agent's Kubernetes backendagent/dummy/: Agent's dummy backendkernel/: Agent's kernel runner counterpartrunner/: Agent's in-kernel prebuilt binarieshelpers/: Agent's in-kernel helper packagecommon/: Shared utilitiesclient/: Client SDKcli/: Unified CLI for all componentsinstall/: SCIE-based TUI installerstorage/: Storage proxy for offloading storage operationsstorage/api: Storage proxy's manager-facing and client-facing APIsappproxy/: App proxy for accessing container apps from outsideappproxy/coordinator: App proxy coordinator who provisions routing circuitsappproxy/worker: App proxy worker who forwards the trafficweb/: Web UI server
static/: Backend.AI WebUI release artifactslogging/: Logging subsystemplugin/: Plugin subsystemtest/: Integration test suitetestutils/: Shared utilities used by unit testsmeta/: Legacy meta packageaccelerator/: Intrinsic accelerator pluginsdocs/: Unified documentationtests/
manager/, agent/, ...: Per-component unit testsconfigs/
manager/, agent/, ...: Per-component sample configurationsdocker/: Dockerfiles for auxiliary containersfixtures/
manager/, ...: Per-component fixtures for development setup and testsplugins/: A directory to place plugins such as accelerators, monitors, etc.third-party-plugins/: Backend.AI plugins for third-party software (e.g. AppProxy Traefik Go plugin)scripts/: Scripts to assist development workflows
install-dev.sh: The single-node development setup script from the working copystubs/: Type annotation stub packages written by ustools/: A directory to host Pants-related toolingdist/: A directory to put build artifacts (.whl files) and Pants-exported virtualenvschanges/: News fragments for towncrierpants.toml: The Pants configurationpyproject.toml: Tooling configuration (towncrier, pytest, mypy)BUILD: The root build config file**/BUILD: Per-directory build config filesBUILD_ROOT: An indicator to mark the build root directory for PantsAGENTS.md: The steering guide for agent-assisted development (CLAUDE.md is a symlink to it)requirements.txt: The unified requirements file*.lock, tools/*.lock: The dependency lock filesdocker-compose.*.yml: Per-version recommended halfstack container configsREADME.md: This fileMIGRATION.md: The migration guide for updating between major releasesVERSION: The unified version declarationServer-side components are licensed under LGPLv3 to promote non-proprietary open innovation in the open-source community while other shared libraries and client SDKs are distributed under the MIT license.
There is no obligation to open your service/system codes if you just run the server-side components as-is (e.g., just run as daemons or import the components without modification in your codes). Please contact us (contact-at-lablup-com) for commercial consulting and more licensing details/options about individual use-cases.
Backend.AI consists of the following core components:
Manager - Central API gateway and orchestrator
backendai_scheduler_v10, backendai_agentselector_v10, backendai_hook_v20, backendai_webapp_v20, backendai_monitor_stats_v10, backendai_monitor_error_v10Account Manager - Unified user profile and SSO daemon
Agent - Kernel lifecycle management on compute nodes
backendai_accelerator_v21, backendai_monitor_stats_v10, backendai_monitor_error_v10Storage Proxy - Virtual folder and storage backend abstraction
Webserver - Web UI hosting and session management
Synchronizing the static Backend.AI WebUI version:
$ scripts/download-webui-release.sh <target version to download>
App Proxy - Service routing and load balancing
Kernels - Container image recipes
Jail - Programmable sandbox (Rust)
Hook - In-container runtime library
We offer client SDKs in popular programming languages (MIT License):
pip install backend.ai-client | GitHub | Includes CLInpm install backend.ai-client | GitHubcomposer require lablup/backend.ai-client | GitHubBackend.AI supports plugin-based extensibility via Python package entrypoints:
Accelerator Plugins (backendai_accelerator_v21)
Monitoring Plugins
backendai_monitor_stats_v10 - Datadog statistics collectorbackendai_monitor_error_v10 - Sentry exception collectorMedia Library - Multi-media output support (no longer maintained)
IDE Extensions - (Deprecated: Use in-kernel Jupyter Lab, VSCode Server, or SSH instead)
Build Python wheels or SCIE (Self-Contained Installable Executables):
./scripts/build-wheels.sh # Build .whl packages
./scripts/build-scies.sh # Build SCIE packages
Packages are placed in dist/ directory.
Backend.AI uses Git pre-commit hooks to maintain code quality:
# Automatically runs on every commit:
# - Auto-formatting (pants fmt)
# - Linting (pants lint)
# Bypass hooks if needed (use sparingly)
git commit --no-verify
The pre-commit hook validates:
Type checking and tests run in CI for comprehensive coverage.
See AGENTS.md for detailed hook system documentation.
For detailed development setup, build system usage, and contribution guidelines:
To enable shell tab completion for the Backend.AI CLI during development:
# For bash/zsh (from repository root) - MUST use 'source', not execute directly
source scripts/setup-dev-completion.sh
# For fish shell
source scripts/setup-dev-completion.fish
# Or create a permanent alias
# bash/zsh:
echo 'alias bai-dev="cd /path/to/backend.ai && source scripts/setup-dev-completion.sh"' >> ~/.zshrc
# fish:
echo 'alias bai-dev="cd /path/to/backend.ai; and source scripts/setup-dev-completion.fish"' >> ~/.config/fish/config.fish
This will enable tab completion for:
backend.ai <tab> - Show all commandsbackend.ai session <tab> - Session managementbackend.ai admin <tab> - Admin operationsbackend.ai --<tab> - Global optionsSupports bash, zsh, and fish shells.
Refer to LICENSE file.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
378 followers · starred Jun 2025
124 followers · starred Jun 2023
677 followers · starred Apr 2020
954 followers · starred Oct 2025