Services addresses and domains

Services reach managed databases through their connection variables. A web service or a static site can also have a public address.

Private networking

Private networking between services is not available yet. One service cannot reach another by a private name, and private_network reads {"enabled": false}. The older private_domain field (<service-slug>.miosa.internal) and the MIOSA_PRIVATE_DOMAIN variable do not resolve; do not build on them.

Managed databases connect automatically from any host. Reference a database’s connection in the service’s Variables:

DATABASE_URL=${{Postgres.DATABASE_URL}}
REDIS_URL=${{Redis.REDIS_URL}}

To call another service of the project, give it a public address and call that. The service’s Networking tab in the console shows the same.

Public address

miosa service domains shop API
miosa service domains enable shop API --label api
miosa service domains disable shop API

enable gives the service:

https://<label>.<your-org>.miosa.app

The label defaults to the service’s slug and must be lowercase a-z, 0-9 and -. The label is unique across your organization. TLS is issued and renewed by the platform; there is no certificate to install.

disable removes the public address and leaves the private one in place. The service keeps running; it just stops being reachable from the internet.

What serves a public address

The public address routes to the healthy replicas of the service’s active release. A release that is not active does not receive traffic.

If the service has idle sleep enabled, a request to a sleeping service wakes it and waits for it. A service without a public address has no request signal, so it never sleeps.

Reading the address in code

TypeScript:

const service = await miosa.services.get(serviceId);
console.log(service.private_network);       // { enabled: false } while private networking is not available
console.log(service.public_address.url);    // null until enabled

Python:

service = miosa.services.get(service_id)
print(service["private_network"])
print(service["public_address"]["url"])

Custom domains

The public address is on miosa.app. A custom domain on your own DNS zone is a separate product: register it, add the CNAME it shows and let MIOSA verify it. That flow lives under Domains, not under a service, so one domain can outlive a service.

When ingress is off

If public addresses are not switched on for the platform, enable answers INGRESS_DISABLED (404). The service still runs, but has no address to reach it on, and miosa service settings shop reports public_address as unsupported.

Was this page helpful?