Skip to content

Commit 7fed232

Browse files
[Docs] Update the landing page (#2861)
1 parent 2cacada commit 7fed232

File tree

10 files changed

+217
-260
lines changed

10 files changed

+217
-260
lines changed

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414

1515
</div>
1616

17-
`dstack` is an open-source alternative to Kubernetes and Slurm, designed to simplify GPU allocation and AI workload
18-
orchestration for ML teams across top clouds and on-prem clusters.
17+
`dstack` is an open-source container orchestrator that simplifies workload orchestration and drives GPU utilization for ML teams. It works with any GPU cloud, on-prem cluster, or accelerated hardware.
1918

2019
#### Accelerators
2120

@@ -32,8 +31,8 @@ orchestration for ML teams across top clouds and on-prem clusters.
3231
## How does it work?
3332

3433
<picture>
35-
<source media="(prefers-color-scheme: dark)" srcset="https://dstack.ai/static-assets/static-assets/images/dstack-architecture-diagram-v8-dark.svg"/>
36-
<img src="https://dstack.ai/static-assets/static-assets/images/dstack-architecture-diagram-v8.svg" width="750" />
34+
<source media="(prefers-color-scheme: dark)" srcset="https://dstack.ai/static-assets/static-assets/images/dstack-architecture-diagram-v10-dark.svg"/>
35+
<img src="https://dstack.ai/static-assets/static-assets/images/dstack-architecture-diagram-v10.svg" width="750" />
3736
</picture>
3837

3938
### Installation

docs/assets/stylesheets/landing.css

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,24 @@
182182
background: white;
183183
}
184184

185+
186+
.md-typeset .md-button--primary.shell span {
187+
font-family: var(--md-code-font-family) !important;
188+
font-size: 16px;
189+
}
190+
191+
.md-header__buttons .md-button--primary.shell:before,
192+
.md-typeset .md-button--primary.shell:before {
193+
color: #e37cff;
194+
position: relative;
195+
top: 1px;
196+
content: '$';
197+
display: inline-block;
198+
margin-right: 10px;
199+
font-size: 16px;
200+
font-family: var(--md-code-font-family) !important;
201+
}
202+
185203
.md-header__buttons .md-button-secondary.github:before,
186204
.md-typeset .md-button-secondary.github:before {
187205
position: relative;
@@ -754,8 +772,8 @@
754772
.tx-landing__major_feature h2 {
755773
font-size: 1.7em;
756774
max-width: 500px;
757-
margin-top: 0.75em;
758-
margin-bottom: 0.75em;
775+
margin-top: 0;
776+
margin-bottom: 1.5em;
759777
background: black;
760778
-webkit-background-clip: text;
761779
-webkit-text-fill-color: transparent;
@@ -777,12 +795,16 @@
777795
width: 100%;
778796
}
779797

780-
.tx-landing__major_feature .block.margin {
798+
.tx-landing__major_feature .block.margin.right {
781799
margin-right: 50px;
782800
}
783801

802+
.tx-landing__major_feature .block.margin.left {
803+
margin-left: 50px;
804+
}
805+
784806
.tx-landing__major_feature .block.large {
785-
width: 650px;
807+
width: 700px;
786808
max-width: 100%;
787809
flex: 0 0 auto;
788810
}
@@ -796,7 +818,7 @@
796818
}
797819

798820
/*.tx-landing__trusted_by*/ [data-termynal] {
799-
font-size: 14px;
821+
font-size: 15px;
800822
}
801823

802824
.tx-landing__trusted_by .termy {
@@ -911,7 +933,8 @@
911933

912934
@media screen and (min-width: 44.984375em) {
913935
.supported_clouds {
914-
grid-template-columns: repeat(4, 1fr) !important;
936+
grid-template-columns: repeat(6, 1fr) !important;
937+
row-gap: 20px;
915938
}
916939
}
917940

@@ -924,18 +947,22 @@
924947
.supported_clouds_item {
925948
display: flex;
926949
/* align-items: center; */
927-
gap: 15px;
928-
padding: 20px 26px;
950+
gap: 10px;
951+
padding: 21px;
929952
/* border-radius: 2px; */
930953
border: 0.5px solid black;
931954
/* font-size: .85em; */
932955
color: #2A292D !important;
933956
line-height: 1.44;
934-
aspect-ratio: 1;
957+
/* aspect-ratio: 1; */
935958
flex-direction: column;
936959
font-weight: 300;
937960
font-size: 85%;
938961

962+
align-items: center;
963+
justify-content: center;
964+
965+
939966
&:hover {
940967
background: -webkit-linear-gradient(45deg, rgba(0, 42, 255, 0.05), rgba(0, 42, 255, 0.05), rgba(225, 101, 254, 0.08));
941968
}
@@ -948,39 +975,40 @@
948975

949976
@media screen and (min-width: 44.984375em) {
950977
.supported_clouds_item {
951-
&:nth-child(1) {
978+
border-right: none;
979+
border-left: none;
980+
981+
&:nth-child(1), &:nth-child(7) {
952982
border-top-left-radius: 3px;
983+
border-bottom-left-radius: 3px;
953984
}
954985

955-
&:nth-child(4) {
986+
&:nth-child(6), &:nth-child(12) {
956987
border-top-right-radius: 3px;
988+
border-bottom-right-radius: 3px;
957989
}
958990

959-
&:nth-child(9) {
960-
border-bottom-left-radius: 3px;
961-
}
962-
963-
&:nth-child(12) {
964-
border-bottom-right-radius: 3px;
991+
&:nth-child(1), &:nth-child(7) {
992+
border-left: 0.5px solid black;
965993
}
966994

967-
&:nth-child(4), &:nth-child(8), &:nth-child(11) {
995+
&:nth-child(6), &:nth-child(12) {
968996
border-right: 0.5px solid black;
969997
}
970998

971-
&:nth-child(n+8) {
999+
&:nth-child(n+0) {
9721000
border-bottom: 0.5px solid black;
9731001
}
9741002
}
9751003
}
9761004

9771005
@media screen and (max-width: 44.984375em) {
9781006
.supported_clouds_item {
979-
&:nth-child(3), &:nth-child(6), &:nth-child(9), &:nth-child(11) {
1007+
&:nth-child(3), &:nth-child(6), &:nth-child(9), &:nth-child(12) {
9801008
border-right: 0.5px solid black;
9811009
}
9821010

983-
&:nth-child(n+9) {
1011+
&:nth-child(n+10) {
9841012
border-bottom: 0.5px solid black;
9851013
}
9861014
}

docs/docs/concepts/backends.md

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
# Backends
22

3-
To use `dstack` with cloud providers, configure backends
4-
via the [`~/.dstack/server/config.yml`](../reference/server/config.yml.md) file.
5-
The server loads this file on startup.
3+
Backends allow `dstack` to manage compute across various providers.
4+
They can be configured via `~/.dstack/server/config.yml` (or through the [project settings page](../concepts/projects.md#backends) in the UI).
65

7-
Alternatively, you can configure backends on the [project settings page](../concepts/projects.md#backends) via UI.
6+
See below for examples of backend configurations.
87

9-
> For using `dstack` with on-prem servers, no backend configuration is required.
10-
> Use [SSH fleets](../concepts/fleets.md#ssh) instead once the server is up.
8+
??? info "SSH fleets"
9+
For using `dstack` with on-prem servers, no backend configuration is required.
10+
Use [SSH fleets](../concepts/fleets.md#ssh) instead once the server is up.
1111

12-
Below examples of how to configure backends via `~/.dstack/server/config.yml`.
13-
14-
## Cloud providers
15-
16-
### AWS
12+
## AWS
1713

1814
There are two ways to configure AWS: using an access key or using the default credentials.
1915

@@ -248,7 +244,7 @@ There are two ways to configure AWS: using an access key or using the default cr
248244
* Docker is installed
249245
* (For NVIDIA instances) NVIDIA/CUDA drivers and NVIDIA Container Toolkit are installed
250246

251-
### Azure
247+
## Azure
252248

253249
There are two ways to configure Azure: using a client secret or using the default credentials.
254250

@@ -399,7 +395,7 @@ There are two ways to configure Azure: using a client secret or using the defaul
399395
Using private subnets assumes that both the `dstack` server and users can access the configured VPC's private subnets.
400396
Additionally, private subnets must have outbound internet connectivity provided by [NAT Gateway or other mechanism](https://learn.microsoft.com/en-us/azure/nat-gateway/nat-overview).
401397

402-
### GCP
398+
## GCP
403399

404400
There are two ways to configure GCP: using a service account or using the default credentials.
405401

@@ -583,7 +579,7 @@ gcloud projects list --format="json(projectId)"
583579
Using private subnets assumes that both the `dstack` server and users can access the configured VPC's private subnets.
584580
Additionally, [Cloud NAT](https://cloud.google.com/nat/docs/overview) must be configured to provide access to external resources for provisioned instances.
585581

586-
### Lambda
582+
## Lambda
587583

588584
Log into your [Lambda Cloud :material-arrow-top-right-thin:{ .external }](https://lambdalabs.com/service/gpu-cloud) account, click API keys in the sidebar, and then click the `Generate API key`
589585
button to create a new API key.
@@ -604,7 +600,7 @@ projects:
604600
605601
</div>
606602
607-
### Nebius
603+
## Nebius
608604
609605
Log into your [Nebius AI Cloud :material-arrow-top-right-thin:{ .external }](https://console.eu.nebius.com/) account, navigate to Access, and select Service Accounts. Create a service account, add it to the editors group, and upload its authorized key.
610606
@@ -673,7 +669,7 @@ projects:
673669

674670

675671

676-
### RunPod
672+
## RunPod
677673

678674
Log into your [RunPod :material-arrow-top-right-thin:{ .external }](https://www.runpod.io/console/) console, click Settings in the sidebar, expand the `API Keys` section, and click
679675
the button to create a Read & Write key.
@@ -731,7 +727,7 @@ projects:
731727

732728
</div>
733729

734-
### Vultr
730+
## Vultr
735731

736732
Log into your [Vultr :material-arrow-top-right-thin:{ .external }](https://www.vultr.com/) account, click `Account` in the sidebar, select `API`, find the `Personal Access Token` panel and click the `Enable API` button. In the `Access Control` panel, allow API requests from all addresses or from the subnet where your `dstack` server is deployed.
737733

@@ -751,7 +747,7 @@ projects:
751747

752748
</div>
753749

754-
### Vast.ai
750+
## Vast.ai
755751

756752
Log into your [Vast.ai :material-arrow-top-right-thin:{ .external }](https://cloud.vast.ai/) account, click Account in the sidebar, and copy your
757753
API Key.
@@ -774,7 +770,7 @@ projects:
774770

775771
Also, the `vastai` backend supports on-demand instances only. Spot instance support coming soon.
776772

777-
<!-- ### TensorDock
773+
<!-- ## TensorDock
778774

779775
Log into your [TensorDock :material-arrow-top-right-thin:{ .external }](https://dashboard.tensordock.com/) account, click Developers in the sidebar, and use the `Create an Authorization` section to create a new authorization key.
780776

@@ -797,7 +793,7 @@ projects:
797793

798794
The `tensordock` backend supports on-demand instances only. Spot instance support coming soon. -->
799795

800-
### CUDO
796+
## CUDO
801797

802798
Log into your [CUDO Compute :material-arrow-top-right-thin:{ .external }](https://compute.cudo.org/) account, click API keys in the sidebar, and click the `Create an API key` button.
803799

@@ -818,7 +814,7 @@ projects:
818814

819815
</div>
820816

821-
### OCI
817+
## OCI
822818

823819
There are two ways to configure OCI: using client credentials or using the default credentials.
824820

@@ -892,7 +888,7 @@ There are two ways to configure OCI: using client credentials or using the defau
892888
compartment_id: ocid1.compartment.oc1..aaaaaaaa
893889
```
894890

895-
### DataCrunch
891+
## DataCrunch
896892

897893
Log into your [DataCrunch :material-arrow-top-right-thin:{ .external }](https://cloud.datacrunch.io/) account, click Keys in the sidebar, find `REST API Credentials` area and then click the `Generate Credentials` button.
898894

@@ -913,7 +909,7 @@ projects:
913909

914910
</div>
915911

916-
### CloudRift
912+
## CloudRift
917913

918914
Log into your [CloudRift :material-arrow-top-right-thin:{ .external }](https://console.cloudrift.ai/) console, click `API Keys` in the sidebar and click the button to create a new API key.
919915

@@ -935,14 +931,7 @@ projects:
935931

936932
</div>
937933

938-
## On-prem servers
939-
940-
### SSH fleets
941-
942-
> For using `dstack` with on-prem servers, no backend configuration is required.
943-
> See [SSH fleets](fleets.md#ssh) for more details.
944-
945-
### Kubernetes
934+
## Kubernetes
946935

947936
To configure a Kubernetes backend, specify the path to the kubeconfig file,
948937
and the port that `dstack` can use for proxying SSH traffic.
@@ -1035,8 +1024,9 @@ In case of a self-managed cluster, also specify the IP address of any node in th
10351024
## dstack Sky
10361025

10371026
If you're using [dstack Sky :material-arrow-top-right-thin:{ .external }](https://sky.dstack.ai){:target="_blank"},
1038-
backends are pre-configured to use compute from `dstack`'s marketplace.
1039-
1040-
You can reconfigure backends via the UI, to use your own cloud accounts instead.
1027+
backends come pre-configured to use compute from the dstack marketplace. However, you can update the configuration via UI
1028+
to use your own cloud accounts instead.
10411029

1042-
[//]: # (TODO: Add link to the server config reference page)
1030+
!!! info "What's next"
1031+
1. See the [`~/.dstack/server/config.yml`](../reference/server/config.yml.md) reference
1032+
2. Check [Projects](../concepts/projects.md)

docs/docs/index.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
# What is dstack?
22

3-
`dstack` is a streamlined alternative to Kubernetes and Slurm, specifically designed for AI. It simplifies container orchestration
4-
for AI workloads both in the cloud and on-prem, speeding up the development, training, and deployment of AI models.
5-
6-
`dstack` is easy to use with any cloud providers as well as on-prem servers.
3+
`dstack` is an open-source container orchestrator that simplifies workload orchestration
4+
and drives GPU utilization for ML teams. It works with any GPU cloud, on-prem cluster, or accelerated hardware.
75

86
#### Accelerators
97

docs/docs/installation/index.md

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
# Installation
22

3-
[//]: # (??? info "dstack Sky")
4-
[//]: # ( If you don't want to host the `dstack` server yourself or would like to access GPU from the `dstack` marketplace, you can use)
5-
[//]: # ( `dstack`'s hosted version, proceed to [dstack Sky]&#40;#dstack-sky&#41;.)
6-
7-
To use the open-source version of `dstack` with your own cloud accounts or on-prem clusters, follow this guide.
8-
93
> If you don't want to host the `dstack` server (or want to access GPU marketplace),
104
> skip installation and proceed to [dstack Sky :material-arrow-top-right-thin:{ .external }](https://sky.dstack.ai){:target="_blank"}.
115
126
## Set up the server
137

148
### (Optional) Configure backends
159

16-
To use `dstack` with cloud providers, configure backends
17-
via the `~/.dstack/server/config.yml` file.
10+
Backends allow `dstack` to manage compute across various providers.
11+
They can be configured via `~/.dstack/server/config.yml` (or through the [project settings page](../concepts/projects.md#backends) in the UI).
1812

1913
For more details on how to configure backends, check [Backends](../concepts/backends.md).
2014

21-
> For using `dstack` with on-prem servers, create [SSH fleets](../concepts/fleets.md#ssh)
22-
> once the server is up.
15+
??? info "SSH fleets"
16+
For using `dstack` with on-prem servers, create [SSH fleets](../concepts/fleets.md#ssh)
17+
once the server is up.
2318

2419
### Start the server
2520

docs/examples.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ hide:
230230
</a>
231231
</div>
232232

233-
## Misc
233+
<!-- ## Misc
234234
235235
<div class="tx-landing__highlights_grid">
236236
<a href="/examples/misc/docker-compose"
@@ -243,4 +243,4 @@ hide:
243243
Use Docker and Docker Compose inside runs
244244
</p>
245245
</a>
246-
</div>
246+
</div> -->

0 commit comments

Comments
 (0)