Koo Docs
View as Markdown

Connect services to each other

Every deployed service gets an internal host on Koo's private network — a hostname the other services in its environment use to call it. Traffic between your services stays on the platform: it never crosses the internet, and an internal host doesn't resolve outside it.

Find a service's internal host

  1. Click the service's node on the environment canvas to open its drawer.
  2. Go to Settings and find Private networking under Networking.
  3. Copy the host with the copy button next to it.

The value looks like <service>.<project>-<environment>.cpln.local. Treat it as read-only: copy it rather than building it yourself. The same value is the read-only internalHost field on the Service object.

The host appears once the service is deployed — before that, the field shows a placeholder instead.

Call another service

Address the target as http://<internal host>:<port>, where the port is whatever the target service listens on — the Port field in its Settings.

Traffic on the private network is plain HTTP. TLS belongs to the public side: a service's default URL and custom domains carry HTTPS, terminated before requests reach your code.

Services in the same environment

Internal hosts connect services in the same environment, and each environment has its own hosts and its own databases. When you clone an environment, the clone's services call the clone's copies — internal hosts and connection variables resolve within their own environment.

Run a private service

A web service doesn't have to be public. Leave Public networking off and it gets no public URL — it is reachable only at its internal host, from your services on the private network.

That is the pattern for an internal API, a background worker, or an admin backend: the service deploys and logs like any other; it just has no public address.

How databases fit

A database's HOST connection key is its internal host, and the connection variable you add on a consuming service carries it — inside the connection URL, or as a single key. Postgres listens on port 5432 and Redis on 6379.

Databases are never internet-reachable. They are reachable only from your services on Koo's private network, from the same environment.