Infrastructure map

Infrastructure map

The infrastructure map shows what the business runs and where: each provider's servers and resources, the apps on them, the domains and names that point at them, and what each server costs. You can ask what is on a server, what serves a domain, everything a project depends on, and what is wrong right now.

In the sidebar under Servers & apps → Infrastructure map. Needs: Projects.

The map works the connections out for itself from what is switched on:

Where it cannot see a connection, a person can state it. Expired domains, the names under them, and services nobody renewed are left off, and the map says how many it left off.

The top of the page

  • Figures for Machines, Apps, Domains, Monitors, Services and Cost (per month).
  • Deploying now: builds and rollouts in progress on a connected Coolify instance or DigitalOcean account. It is asked again every fifteen seconds while the page is in view, and each app that is deploying is marked wherever the map draws it.
  • Findings: what needs somebody, worst first.
  • What this map cannot see: accounts whose last refresh failed (failing), accounts not refreshed for too long (stale), accounts that never refreshed, modules that did not answer, and kinds of thing nothing switched on reports (not installed). An absence on the map may be one of these, not a sign that nothing is there.

By provider

Servers and resources grouped by the account they live in, with the apps and names on each, balancers and platforms, and what each costs (Billed monthly or Billed yearly). Open a server to see:

  • Domains: the host names pointing at it, with registrar, expiry date and days left.
  • Apps and Also here: what is deployed on it, and its databases, volumes and other resources.
  • Monitors: monitors watching a name it serves or one of its addresses, and anything down.
  • Cost: what it costs, from the provider's price and from what was typed in Services, side by side when they disagree; how that cost is divided between projects; and the Latest allocated bill.
  • Last pointed at: when something last pointed at it. If nothing connects to it, it says so; if it still costs money, it may be idle.
  • Stated connections: connections people have added.

Each connection says how it was found (DNS, Coolify, or stated by a person) and when it was last confirmed.

Domains

Every domain, what runs out first, and which names under it reach something. Open one to see its Registrar and expiry, then servers, host names and records, apps and projects. An address no known server holds is flagged, and so is an address behind a CDN proxy. Open in Domains goes to its listing.

Not placed

Apps no known machine runs. This tab shows only when there are some.

A project's footprint

The map can open on a project:

  • Attached: everything whose own project is this one.
  • Reached through them: everything connected to those, followed all the way.
  • Nearest expiry or renewal.
  • At risk: the problems found anywhere in it.

Reach is not cost: a shared server's other contents are shown, but this project is not charged for them. You see only what you can see in the source modules.

Findings the map looks for

Worked out each time you look, so a fixed problem simply disappears:

  • an address record reaching no known server;
  • a server that costs money with nothing pointing at it for 14 days;
  • a domain a live app serves that no monitor watches;
  • a monitor that is down while its server reports running;
  • a domain expiry or service renewal coming up on something attached to a live project (serious within 14 days);
  • an account the map cannot trust;
  • a host name an app serves that Domains does not hold;
  • a connection that used to hold and no longer does.

State a connection the map cannot see

  1. Open a server or domain and click Add a connection.
  2. Enter the Host name and what it is Served by.
  3. Under Why, write what you know that the map does not.
  4. Under Who sees it, choose Only me or Everyone in the workspace, then save.

A refresh never overwrites a statement; if DNS later says otherwise, it is marked contradicted. Remove a statement from Stated connections.

Change how a server's cost is split

On a server's Cost card, click Change the split, then under Divide the cost choose By apps each project runs here (default), Evenly, or By the weights below. A Contabo server divides evenly unless you choose otherwise.

Who can do what

PermissionIn plain words
See the map (topology:read)See what runs where: servers, the domains and apps on them, findings, project footprints, what is deploying, and what the map cannot see.
Change the map (topology:write)State a connection the map cannot work out, remove one, and set how a server's cost is split.

See People, roles and permissions.

What happens on its own

JobWhenWhat it does
observeEvery day at 05:15 UTCRecords which connections the map can see tonight. A new one gets a first-seen date, one still there is confirmed, one that has gone is marked gone and forgotten after 90 days. It also notes when something last pointed at each server.

Needs

  • Projects switched on. The more of Integrations, Domains, DNS, Coolify, DigitalOcean, Contabo, Services and Monitoring you have on, the more the map can see.

What agents can do

Reads run straight away. Changes ask a person first unless a rule on Approvals allows them. See Agents and approvals.

Ask the map (read-only):

  • topology.server: what is on a server, by key, name or address.
  • topology.domain: what serves a domain.
  • topology.project: a project's whole footprint, with its monthly cost.
  • topology.findings: what is wrong now, worst first.
  • topology.blindSpots: what the map cannot see.
  • topology.deployments: what is deploying now, and on which provider.

Change the map (asks first):

  • topology.state states a connection, for you or for the workspace.
  • topology.unstate removes a stated connection.
  • topology.setCostRule sets how a server's cost is divided.