Skip to content

Installation

To use the open-source version of dstack with your own cloud accounts or on-prem clusters, follow this guide.

If you don't want to host the dstack server (or want to access GPU marketplace), skip installation and proceed to dstack Sky .

(Optional) Configure backends

To use dstack with cloud providers, configure backends.

For using dstack with on-prem servers, create SSH fleets instead.

Start the server

The server can run on your laptop, a dedicated server, a private cloud VPC, or any location with access to your cloud or on-prem clusters.

The server can be set up via pip on Linux, macOS, and Windows (via WSL 2). It requires Git and OpenSSH.

$ pip install "dstack[all]" -U
$ 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/
$ docker run -p 3000:3000 \
    -v $HOME/.dstack/server/:/root/.dstack/server \
    dstackai/dstack

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/

Server deployment

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

Set up the CLI

Once it's up, you can use either the CLI or the API.

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

Windows

To use the CLI on Windows, ensure you've installed Git and OpenSSH via Git for Windows.

When installing it, ensure you've checked Git from the command line and also from 3-rd party software (or Use Git and optional Unix tools from the Command Prompt), and Use bundled OpenSSH.

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

$ pip install dstack
$ dstack config --url http://127.0.0.1:3000 \
    --project main \
    --token bbae0f28-d3dd-4820-bf61-8f4bb40815da

Configuration is updated at ~/.dstack/config.yml

This configuration is stored in ~/.dstack/config.yml.

(Optional) CLI Autocompletion

dstack supports shell autocompletion for bash and zsh.

First, validate if completion scripts load correctly in your current shell session:

$ eval "$(dstack completion bash)"

If completions work as expected and you would like them to persist across shell sessions, add the completion script to your shell profile using these commands:

$ mkdir -p ~/.dstack
$ dstack completion bash > ~/.dstack/completion.sh
$ echo 'source ~/.dstack/completion.sh' >> ~/.bashrc

First, validate if completion scripts load correctly in your current shell session:

$ eval "$(dstack completion zsh)"

If completions work as expected and you would like them to persist across shell sessions, you can install them via Oh My Zsh using these commands:

$ mkdir -p ~/.oh-my-zsh/completions
$ dstack completion zsh > ~/.oh-my-zsh/completions/_dstack

And if you don't use Oh My Zsh:

$ mkdir -p ~/.dstack
$ dstack completion zsh > ~/.dstack/completion.sh
$ echo 'source ~/.dstack/completion.sh' >> ~/.zshrc

If you get an error similar to 2: command not found: compdef, then add the following line to the beginning of your ~/.zshrc file: autoload -Uz compinit && compinit.

What's next?

  1. Check the server/config.yml reference on how to configure backends
  2. Check SSH fleets to learn about running on your on-prem servers
  3. Follow quickstart
  4. Browse examples
  5. Join the community via Discord