|
1 | 1 | # dstack Enterprise |
2 | 2 |
|
3 | 3 | `dstack` Enterprise extends the [open-source version](https://github.com/dstackai/dstack) of `dstack` |
4 | | -with enterprise features such as a web user interface, advanced team management, and more. |
| 4 | +with SSO and other advanced governance features. |
5 | 5 | It’s fully compatible with the open-source `dstack` CLI and API. |
6 | 6 |
|
7 | | -Request a free 60-day trial of `dstack` Enterprise [here](https://tally.so/r/3jBXP6). |
| 7 | +Request a free 60-day trial of `dstack` Enterprise [here](https://calendly.com/dstackai/discovery-call). |
8 | 8 |
|
9 | 9 | ## Installation |
10 | 10 |
|
@@ -38,100 +38,3 @@ The version format for `dstack` Enterprise is `<dstack version>-<enterpise build |
38 | 38 | The first part corresponds to the open-source dstack version and CLI, while the second part is the enterprise build number. |
39 | 39 |
|
40 | 40 | The history of `dstack` Enterprise releases can be found in the [`dstackai/dstack-enterprise`](https://github.com/dstackai/dstack-enterprise/releases) repo. |
41 | | - |
42 | | -### Backward compatibility |
43 | | - |
44 | | -`dstack` is backward compatible within its major version. For example, if `dstack` Enterprise |
45 | | -is `0.18.1-v1`, the version of CLI or API must start with `0.18`. |
46 | | - |
47 | | -## Environment variables |
48 | | - |
49 | | -Here's the list of environment variables which you can override: |
50 | | - |
51 | | -- `DSTACK_SERVER_DIR` – (Optional) The path to the directory where the `dstack` server stores the state. Defaults to `/root/.dstack/server`. |
52 | | -- `DSTACK_DATABASE_URL` – (Optional) The database URL to use instead of default SQLite. Currently `dstack` supports Postgres. Example: `postgresql+asyncpg://myuser:mypassword@localhost:5432/mydatabase`. |
53 | | -- `DSTACK_SERVER_ADMIN_TOKEN` – (Optional) The default token of the `admin` user. By default, it's generated randomly |
54 | | - at the first startup. |
55 | | - |
56 | | -## Configuring backends |
57 | | - |
58 | | -When starting `dstack` Enterprise, ensure the `$DSTACK_SERVER_DIR/config.yml` file |
59 | | -configures a backend for each cloud account that you'd like to use. |
60 | | - |
61 | | -See the [server/config.yml reference](https://dstack.ai/docs/reference/server/config.yml.md#examples) |
62 | | -for details on how to configure backends for all supported cloud providers. |
63 | | - |
64 | | -## Updating `dstack` Enterprise |
65 | | - |
66 | | -Updating `dstack` Enterprise to a newer version requires re-deploying it using the newer Docker image tag. |
67 | | - |
68 | | -The server can be restarted without concern for submitted jobs, running instances, or gateways. |
69 | | -Upon restart, it will resume tracking their states. |
70 | | - |
71 | | -> [!NOTE] |
72 | | -> Currently, only one instance of dstack Enterprise is allowed to run at a time. During server restart, the CLI or API may temporarily stop working. |
73 | | -
|
74 | | -## Persisting state |
75 | | - |
76 | | -By default, `dstack` stores its state in `~/.dstack/server/data` using SQLite. |
77 | | -To use a database, set the `DSTACK_DATABASE_URL` environment variable (see below). |
78 | | - |
79 | | -### Replicate SQLite state via Litestream |
80 | | - |
81 | | -If not using `DSTACK_DATABASE_URL`, you can still replicate the state to cloud object storage using Litestream. To do |
82 | | -this, you need to set the following environment variables. |
83 | | - |
84 | | -- `LITESTREAM_REPLICA_URL` - The url of the cloud object storage. |
85 | | - Examples: `s3://<bucket-name>/<path>`, `gcs://<bucket-name>/<path>`, `abs://<storage-account>@<container-name>/<path>`, etc. |
86 | | - |
87 | | -#### AWS S3 |
88 | | - |
89 | | -To persist state into an AWS S3 bucket, provide the following environment variables: |
90 | | - |
91 | | -* `AWS_ACCESS_KEY_ID` - The AWS access key ID |
92 | | -* `AWS_SECRET_ACCESS_KEY` - The AWS secret access key |
93 | | - |
94 | | -#### GCP Storage |
95 | | - |
96 | | -To persist state into an AWS S3 bucket, provide one of the following environment variables: |
97 | | - |
98 | | -* `GOOGLE_APPLICATION_CREDENTIALS` - The path to the GCP service account key JSON file |
99 | | -* `GOOGLE_APPLICATION_CREDENTIALS_JSON` - The GCP service account key JSON |
100 | | - |
101 | | -#### Azure Blob Storage |
102 | | - |
103 | | -To persist state into an Azure blog storage, provide the following environment variable. |
104 | | - |
105 | | -* `LITESTREAM_AZURE_ACCOUNT_KEY` - The Azure storage account key |
106 | | - |
107 | | -An alternative to configuring explicit credentials is to provide the default cloud credentials within the container. |
108 | | - |
109 | | -> [!NOTE] |
110 | | -> The use of Litestream requires that only one instance of the dstack server is running at a time. |
111 | | -
|
112 | | -## Configuring backups |
113 | | - |
114 | | -It’s recommended to regularly back up the state. If the state is being persisted with Litestream, you can back up data using the standard mechanism provided by the cloud object storage. |
115 | | - |
116 | | -It’s recommended to back up the state before every update to a newer minor version (e.g. from 0.17.1-v1 to 0.18.0-v3). |
117 | | - |
118 | | -> [!NOTE] |
119 | | -> If the state is being persisted with Litestream, before restoring a backup, it’s important to undeploy dstack Enterprise first. |
120 | | -
|
121 | | -## Managing users |
122 | | - |
123 | | -It’s possible to create users and manage their permissions via UI. Each user can be configured with a global role: `User` or `Admin`. The global Admin role allows for managing any users and projects. |
124 | | - |
125 | | -In addition to the global role, any user can be granted a project role: `User` or `Admin`. The project `User` role allows for the management of runs. The project Admin role permits managing the members of the project (other users who have permissions for this project). |
126 | | - |
127 | | -### Configuring the admin token |
128 | | - |
129 | | -During deployment, it’s important to configure `DSTACK_SERVER_ADMIN_TOKEN`. This token can be used by the admin to manage other users and projects. If the environment variable is not set, it's generated randomly at the first startup. |
130 | | - |
131 | | -### Authentication |
132 | | - |
133 | | -Currently, `dstack` Enterprise allows authentication using personal user tokens. Each user has their own token, which can be found or changed in the user's account settings. This token must be used for authentication to access the control plane, CLI, or API. |
134 | | - |
135 | | -### Projects |
136 | | - |
137 | | -Projects enable the isolation of different teams and their resources. Check out the [Projects](https://github.com/dstackai/dstack-enterprise/wiki/Projects) wiki page for more details on how to manage projects. |
0 commit comments