Skip to content

Gateways

Gateways handle the ingress traffic of running services. In order to run a service, you need to have at least one gateway set up.

If you're using dstack Sky , the gateway is already set up for you.

Configuration

First, create a YAML file in your project folder. Its name must end with .dstack.yml (e.g. .dstack.yml or gateway.dstack.yml are both acceptable).

type: gateway
name: example-gateway

backend: aws
region: eu-west-1
domain: example.com

A domain name is required to create a gateway.

See the .dstack.yml reference for many examples on gateway configuration.

Creating and updating gateways

To create or update the gateway, simply call the dstack apply command:

$ dstack apply . -f examples/deployment/gateway.dstack.yml

The example-gateway doesn't exist. Create it? [y/n]: y

 BACKEND  REGION     NAME             HOSTNAME  DOMAIN       DEFAULT  STATUS
 aws      eu-west-1  example-gateway            example.com  ✓        submitted

Updating DNS reconds

Once the gateway is assigned a hostname, go to your domain's DNS settings and add an A DNS record for *.<gateway domain> (e.g., *.example.com) pointing to the gateway's hostname.

This will allow you to access runs and models using this domain.

Managing gateways

Destroying gateways

To delete a gateway, use dstack destroy:

$ dstack destroy . -f examples/deployment/gateway.dstack.yml

Listing gateways

The dstack gateway list command lists existing gateways and their status.

What's next?

  1. See services on how to run services
  2. Check the .dstack.yml reference for more details and examples