Humanitec can automatically configure ingress for modules. All developers need to do is mark a port on their module that they wish to expose externally and Humanitec will handle the rest.

By default, Humanitec will automatically generate a DNS name under the .newapp.io domain along with a valid SSL certificate. However, it is possible to configure different DNS names that will get picked up in different environments.

Dynamic DNS

Humanitec provides a way of automatically provisioning DNS names along with SSL certificates. At this time, dynamically generated DNS names will all be under the .newapp.io domain.

At this time, there is no driver to support dynamic DNS name generation on custom domains.

Static DNS

A Static Resource Definition can be used to define static DNS names to be used for ingress.

As each module that needs to be exposed requires a different DNS name the resource matching criteria used must exactly match the relevant module. Note, due to a limitation in the UI it is not yet possible to define resource level matching criteria via the UI. It has to be done via the API.

Here is an example of the API call to create a Static Resource Definition where a module called frontend-service in the production environment of the topic-share application will be exposed with the DNS name app.topicshare.com:

curl --request POST \
  --header "authorization: $AUTH_TOKEN" \
  --header "content-type: application/json" \
  --data '{
  "id": "fe-dns-name",
  "type": "dns",
  "data": {
    "values": {
      "name": "app.topicshare.com",
      "tls_cn": "*.topicshare.com"
    "secrets": {
      "tls": {
        "tls.crt": "...",
        "tls.key": "..."
  "criteria": [
      "app_id": "topic-share",
      "env_id": "production",
      "res_id": "modules.frontend-service"
}' \

Where $AUTH_TOKEN is an appropriate authentication token. See the API Documentation for creating Static Resource Definitions for more details.

On this page