Manage your servers with freedom and control. Learn more about the new Forge

Vapor: Multi-level Subdomains

Vapor: Multi-level Subdomains

Vapor has always made it straightforward to deploy your application to a custom domain, subdomain, or even wildcard subdomain.

However, it’s only been possible to utilize single-level subdomains - meaning it was possible to deploy your application to api.example.com, but not v1.api.example.com or staging.v1.example.com.

Today, we’re thrilled to announce support for multi-level subdomains on Vapor.

To take advantage of this feature, first, ensure the root domain is added as a domain to Vapor. This can be done either directly from the Vapor dashboard or by using the Vapor CLI:

1vapor domain example.com

Once the domain has been added, you must request a certificate. Wildcard certificates provided by AWS Certificate Manager can only protect single-level subdomains, so to protect a multi-level subdomain, the subdomain must be explicitly added to the certificate.

When requesting a certificate from the Vapor dashboard, you may explicitly add the multi-level subdomain by either adding it as the “Domain Name” or any of the “Alternative Names”.

image

Alternatively, you may request the certificate from the Vapor CLI:

1vapor cert my.really.long.multi.level.subdomain.laravelvapor.rocks

When the certificate has been issued, you can add the multi-level subdomain to the domain section of your vapor.yml file and carry out a full deployment using the Vapor CLI. As previously discussed, wildcard certificates cannot protect multi-level subdomains, so the multi-level subdomain must be explicitly defined in the vapor.yml file - relying on wildcard subdomains is not possible.

1id: 12345
2name: vapor-rocks
3environments:
4 production:
5 domain: my.really.long.multi.level.subdomain.laravelvapor.rocks
6 build:
7 - 'composer install --no-dev'

Vapor will automatically find the correct certificate to protect the multi-level subdomain and attach it to your environment, regardless of whether you use API Gateway v1, API Gateway v2, or a load balancer.

That's it! Assuming you are using Vapor to manage your DNS, your application will be available via your multi-level subdomain when the deployment completes.

We hope you enjoy using this new feature of Vapor and look forward to hearing any feedback you may have!

Keep reading