Skip to content

Environment variables

.dstack.yml

The following read-only environment variables are automatically propagated to configurations for dev environments, tasks, and services:

  • DSTACK_RUN_NAME – The name of the run.

    The example below simply prints vscode to the output.

    type: task
    name: vscode
    
    commands:
      - echo $DSTACK_RUN_NAME
    

    If name is not set in the configuration, it is assigned a random name (e.g. wet-mangust-1).

  • DSTACK_REPO_ID – The ID of the repo.

  • DSTACK_GPUS_NUM – The total number of GPUs in the run.

    Example:

    type: service
    name: llama31
    
    env:
      - HF_TOKEN
    commands:
      - pip install vllm
      - vllm serve meta-llama/Meta-Llama-3.1-8B-Instruct
        --max-model-len 4096
        --tensor-parallel-size $DSTACK_GPUS_NUM
    port: 8000
    model: meta-llama/Meta-Llama-3.1-8B-Instruct
    
    resources:
      gpu: 24GB
    
  • DSTACK_NODES_NUM – The number of nodes in the run

  • DSTACK_GPUS_PER_NODE – The number of GPUs per node
  • DSTACK_NODE_RANK – The rank of the node
  • DSTACK_NODE_RANK – The internal IP address the master node.

    Below is an example of using DSTACK_NODES_NUM, DSTACK_GPUS_PER_NODE, DSTACK_NODE_RANK, and DSTACK_NODE_RANK for distributed training:

    type: task
    name: train-distrib
    
    # The number of instances in the cluster
    nodes: 2
    
    python: "3.10"
    commands:
      - pip install -r requirements.txt
      - torchrun
        --nproc_per_node=$DSTACK_GPUS_PER_NODE
        --node_rank=$DSTACK_NODE_RANK
        --nnodes=$DSTACK_NODES_NUM
        --master_addr=$DSTACK_MASTER_NODE_IP
        --master_port=8008 
        resnet_ddp.py --num_epochs 20
    
    resources:
      gpu: 24GB
    
  • DSTACK_NODES_IPS – The list of internal IP addresses of all nodes delimited by "\n".

Server

The following environment variables are supported by the dstack server and can be specified whether the server is run via dstack server or deployed using Docker.

For more details on the options below, refer to the server deployment guide.

  • DSTACK_SERVER_LOG_LEVEL – Has the same effect as --log-level. Defaults to INFO.

    Example:

    $ DSTACK_SERVER_LOG_LEVEL=debug dstack server
    
  • DSTACK_SERVER_LOG_FORMAT – Sets format of log output. Can be rich, standard, json. Defaults to rich.

  • DSTACK_SERVER_HOST – Has the same effect as --host. Defaults to 127.0.0.1.
  • DSTACK_SERVER_PORT – Has the same effect as --port. Defaults to 3000.
  • DSTACK_SERVER_ADMIN_TOKEN – Has the same effect as --token. Defaults to None.
  • DSTACK_SERVER_DIR – Sets path to store data and server configs. Defaults to ~/.dstack/server.
  • DSTACK_DATABASE_URL – The database URL to use instead of default SQLite. Currently dstack supports Postgres. Example: postgresql+asyncpg://myuser:mypassword@localhost:5432/mydatabase. Defaults to None.
  • DSTACK_SERVER_CLOUDWATCH_LOG_GROUP – The CloudWatch Logs group for workloads logs. If not set, the default file-based log storage is used.
  • DSTACK_SERVER_CLOUDWATCH_LOG_REGION – The CloudWatch Logs region. Defaults to None.
  • DSTACK_DEFAULT_SERVICE_CLIENT_MAX_BODY_SIZE – Request body size limit for services, in bytes. Defaults to 64 MiB.
  • DSTACK_FORBID_SERVICES_WITHOUT_GATEWAY – Forbids registering new services without a gateway if set to any value.
Internal environment variables

The following environment variables are intended for development purposes:

  • DSTACK_SERVER_ROOT_LOG_LEVEL – Sets root logger log level. Defaults to ERROR.
  • DSTACK_SERVER_UVICORN_LOG_LEVEL – Sets uvicorn logger log level. Defaults to ERROR.
  • DSTACK_RUNNER_VERSION – Sets exact runner version for debug. Defaults to latest. Ignored if DSTACK_RUNNER_DOWNLOAD_URL is set.
  • DSTACK_RUNNER_DOWNLOAD_URL – Overrides dstack-runner binary download URL.
  • DSTACK_SHIM_DOWNLOAD_URL – Overrides dstack-shim binary download URL.
  • DSTACK_DEFAULT_CREDS_DISABLED – Disables default credentials detection if set. Defaults to None.
  • DSTACK_LOCAL_BACKEND_ENABLED – Enables local backend for debug if set. Defaults to None.

CLI

The following environment variables are supported by the CLI.

  • DSTACK_CLI_LOG_LEVEL – Configures CLI logging level. Defaults to INFO.

Example:

$ DSTACK_CLI_LOG_LEVEL=debug dstack apply -f .dstack.yml
  • DSTACK_PROJECT – Has the same effect as --project. Defaults to None.