# Service Map

> An application layout and thirty components for servers: hosts, virtual machines, containers, ports, dependencies and reverse-proxy routes.

30 components.

- [Service map](https://elements.lumesec.ai/components/service-map/map.md) `<sv-map>`: Hosts as cards, each listing its services and the ports they listen on. Lines show the reverse proxy routes, the direct dependencies and, on request, the monitoring scrapes. Select a service to see its ports, its consumers and the domains that reach it; select a host to see every occupied port and to add a service, with port conflicts caught as you type.
- [Application shell](https://elements.lumesec.ai/components/service-map/shell.md) `<sv-shell>`: Navigation by inventory, traffic and operations, an environment switch, search and a pending-changes queue. Anything a component inside plans arrives in the queue; Apply runs it and hands the result back to the map. Under 760 px the navigation becomes a drawer.
- [Host card](https://elements.lumesec.ai/components/service-map/host-card.md) `<sv-host-card>`: One host with its kind, address, load and every service it runs, each with its ports and current request rate.
- [Host list](https://elements.lumesec.ai/components/service-map/host-list.md) `<sv-host-list>`: Every host in a sortable table with its occupied ports. Filter by kind, or search by name, address or port number.
- [Register a host](https://elements.lumesec.ai/components/service-map/host-form.md) `<sv-host-form>`: Adds a host to the inventory. The name must be unique, and the address must sit inside the chosen network and not be in use already.
- [Hypervisors](https://elements.lumesec.ai/components/service-map/vm-stack.md) `<sv-vm-stack>`: Virtual machines on their hypervisors with allocated cores and memory. Live migration shows the memory copy running between the two hosts.
- [Containers](https://elements.lumesec.ai/components/service-map/containers.md) `<sv-containers>`: Containers on a container host with their images and port mappings. A new mapping is checked against every host port already taken.
- [Port space](https://elements.lumesec.ai/components/service-map/port-map.md) `<sv-port-map>`: All 65,536 ports of a host as 1,024 cells of 64. Occupied cells are lit; system ports start the first row, ephemeral ports fill the last four.
- [Port picker](https://elements.lumesec.ai/components/service-map/port-picker.md) `<sv-port-picker>`: A form field that knows the host. It shows the neighbouring ports, rejects taken ones and offers the nearest free port.
- [Listening ports scan](https://elements.lumesec.ai/components/service-map/port-scan.md) `<sv-port-scan>`: Compares the inventory with what the host actually listens on. Unexpected ports can be registered or closed.
- [Listen addresses](https://elements.lumesec.ai/components/service-map/bindings.md) `<sv-bindings>`: Where each service listens: on all interfaces, on the host address or only locally. Public listeners outside the reverse proxy are flagged.
- [Conflicts before apply](https://elements.lumesec.ai/components/service-map/conflicts.md) `<sv-conflicts>`: Problems in the planned changes: taken ports, shadowed routes, public listeners and missing firewall rules, each with its fix.
- [Service card](https://elements.lumesec.ai/components/service-map/service-card.md) `<sv-service-card>`: One service with its ports, exposure, request rate over the last minute, consumers and dependencies.
- [Service catalog](https://elements.lumesec.ai/components/service-map/catalog.md) `<sv-catalog>`: Services grouped by role, with every host they run on and the ports they use.
- [Deploy a service](https://elements.lumesec.ai/components/service-map/service-form.md) `<sv-service-form>`: Start from a template, place it on a host, pick a free port, choose what it consumes and, if needed, a domain on the reverse proxy.
- [Health checks](https://elements.lumesec.ai/components/service-map/health.md) `<sv-health>`: Each check with its probe, interval and the last 30 results. New results slide in from the right.
- [Placement](https://elements.lumesec.ai/components/service-map/placement.md) `<sv-placement>`: Move services between hosts and watch the load bars. A move onto a host where the port is taken asks for another port first.
- [Dependencies](https://elements.lumesec.ai/components/service-map/deps.md) `<sv-deps>`: One service in the middle, what consumes it on the left and what it consumes on the right. The pixels are requests.
- [Consumer × provider](https://elements.lumesec.ai/components/service-map/matrix.md) `<sv-matrix>`: Every direct connection as a cell, shaded by request rate.
- [What breaks if…](https://elements.lumesec.ai/components/service-map/blast.md) `<sv-blast>`: Stops a service in simulation and lists everything that depends on it, hop by hop, plus the routes that go down or lose an upstream.
- [Connection](https://elements.lumesec.ai/components/service-map/conn.md) `<sv-conn>`: One consumer-to-provider connection: protocol, encryption, authentication, pool usage and the connection string with the secret masked.
- [Trace](https://elements.lumesec.ai/components/service-map/trace.md) `<sv-trace>`: One request through the services as a waterfall. Replay walks a cursor through time and lights each span while it runs.
- [Routes](https://elements.lumesec.ai/components/service-map/routes.md) `<sv-routes>`: Host and path to upstream, in priority order. A route that a broader one above it always catches is marked as shadowed.
- [Where does this request go?](https://elements.lumesec.ai/components/service-map/route-tester.md) `<sv-route-tester>`: Enter a URL and follow it through TLS, host and path matching, middleware and upstream choice to the service that answers.
- [Upstream pool](https://elements.lumesec.ai/components/service-map/upstream.md) `<sv-upstream>`: Backends behind one route with weights, open connections and the balancing method. Draining a backend lets its connections finish.
- [Middleware chain](https://elements.lumesec.ai/components/service-map/middleware.md) `<sv-middleware>`: The steps a request passes before it reaches the service. Above the rate limit, the excess is answered with 429 at the limiter.
- [Certificates](https://elements.lumesec.ai/components/service-map/certs.md) `<sv-certs>`: Certificates by remaining lifetime, what uses them and whether they renew on their own.
- [Reachable from the Internet](https://elements.lumesec.ai/components/service-map/exposure.md) `<sv-exposure>`: What the edge firewall lets through. Anything open outside the reverse proxy is marked as directly exposed.
- [Planned changes](https://elements.lumesec.ai/components/service-map/changes.md) `<sv-changes>`: The plan as a diff. Apply runs it step by step and checks each one before the next.
- [Overview](https://elements.lumesec.ai/components/service-map/overview.md) `<sv-overview>`: Incoming requests per second as the headline, with hosts, services, open ports, routes and certificates underneath.
