Skip to main content

dstack is an open-source orchestration engine for running AI workloads on any cloud or on-premises.

Project description

dstack is a unified control plane for GPU provisioning and orchestration that works with any GPU cloud, Kubernetes, or on-prem clusters.

It streamlines development, training, and inference, and is compatible with any hardware, open-source tools, and frameworks.

Accelerators

dstack supports NVIDIA, AMD, Google TPU, Intel Gaudi, and Tenstorrent accelerators out of the box.

Latest news ✨

How does it work?

Installation

Before using dstack through CLI or API, set up a dstack server. If you already have a running dstack server, you only need to set up the CLI.

Set up the server

Configure backends

To orchestrate compute across GPU clouds or Kubernetes clusters, you need to configure backends.

Backends can be set up in ~/.dstack/server/config.yml or through the project settings page in the UI.

For more details, see Backends.

When using dstack with on-prem servers, backend configuration isn’t required. Simply create SSH fleets once the server is up.

Start the server

You can install the server on Linux, macOS, and Windows (via WSL 2). It requires Git and OpenSSH.

uv
$ uv tool install "dstack[all]" -U
pip
$ pip install "dstack[all]" -U

Once it's installed, go ahead and start the server.

$ dstack server
Applying ~/.dstack/server/config.yml...

The admin token is "bbae0f28-d3dd-4820-bf61-8f4bb40815da"
The server is running at http://127.0.0.1:3000/

For more details on server configuration options, see the Server deployment guide.

Set up the CLI

Set up the CLI

Once the server is up, you can access it via the dstack CLI.

The CLI can be installed on Linux, macOS, and Windows. It requires Git and OpenSSH.

uv
$ uv tool install dstack -U
pip
$ pip install dstack -U

To point the CLI to the dstack server, configure it with the server address, user token, and project name:

$ dstack project add \
    --name main \
    --url http://127.0.0.1:3000 \
    --token bbae0f28-d3dd-4820-bf61-8f4bb40815da
    
Configuration is updated at ~/.dstack/config.yml

Define configurations

dstack supports the following configurations:

  • Fleets — for managing cloud and on-prem clusters
  • Dev environments — for interactive development using a desktop IDE
  • Tasks — for scheduling jobs (incl. distributed jobs) or running web apps
  • Services — for deployment of models and web apps (with auto-scaling and authorization)
  • Volumes — for managing persisted volumes

Configuration can be defined as YAML files within your repo.

Apply configurations

Apply the configuration either via the dstack apply CLI command or through a programmatic API.

dstack automatically manages provisioning, job queuing, auto-scaling, networking, volumes, run failures, out-of-capacity errors, port-forwarding, and more — across clouds and on-prem clusters.

Useful links

For additional information, see the following links:

Contributing

You're very welcome to contribute to dstack. Learn more about how to contribute to the project at CONTRIBUTING.md.

License

Mozilla Public License 2.0

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dstack-0.20.14.tar.gz (47.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dstack-0.20.14-py3-none-any.whl (16.4 MB view details)

Uploaded Python 3

File details

Details for the file dstack-0.20.14.tar.gz.

File metadata

  • Download URL: dstack-0.20.14.tar.gz
  • Upload date:
  • Size: 47.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dstack-0.20.14.tar.gz
Algorithm Hash digest
SHA256 f123909cdc3797b0e583e8f6169bfd39f057ac549c5735ab6de390295454c745
MD5 5cd5000e054fefa76d8deeac4e76d5fa
BLAKE2b-256 d2f4e43d895a97eedd43a155dae305c67ef61907a9b3357f122c294589c5aaa5

See more details on using hashes here.

File details

Details for the file dstack-0.20.14-py3-none-any.whl.

File metadata

  • Download URL: dstack-0.20.14-py3-none-any.whl
  • Upload date:
  • Size: 16.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dstack-0.20.14-py3-none-any.whl
Algorithm Hash digest
SHA256 7fc803366cd85e15ae035014cf42cc18560d62389b2ab9c06ba162c69fabfdec
MD5 4ad10cad9eca1bb96c56e041ea872499
BLAKE2b-256 8f19d0fdbc9a446db8fd84ecd8b17c2f22eabe407069057c0bac89cda6ace983

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page