Atlas
A living map of your homelab. Hosts, services, networks, racks,
certificates and scheduled jobs on one illustrated map, coloured with live
health from the monitoring you already run: Uptime Kuma for the markers,
Prometheus and Loki for the numbers.
Try the live demo ·
Install ·
Configuration ·
API ·
AI agents ·
outset.systems/atlas
| | |
|---|
| A place's card | Racks, in 2D and 3D | Addresses on real CIDR maths |
| Topology, from the internet in | A calendar that notices a missed job | Tripwires that light up when touched |
Every name and address in these pictures is invented.
Why a map
- A dashboard shows tiles. Atlas shows where each thing is, what it runs
and what it depends on, so "the gateway is down, and nine places behind it"
reads as one problem, not ten.
- A drawn diagram goes stale. Atlas's markers change with what your
monitoring reports, and it says so when a source stops answering.
- A scanner draws whatever it finds. Atlas never scans your network. You
chart it once, by hand or from a UniFi controller, an nmap sweep, a CSV or
your router's DHCP leases, and it stays the way you meant it.
Status: v0.2, in development. It works and is in daily use. The first
public builds were the v0.1 release candidates; the v0.2.0-dev.* tags add
the API, the MCP server, provenance and UniFi. Expect rough edges and
breaking changes between 0.x versions. Bug reports are very welcome.
Features
- One map of everything. Places grouped into network zones, the links
between them, and the services each one runs. Pan, zoom, search with
/,
and open any place for its details.
- Live health. Markers turn with the state Uptime Kuma reports, and a UniFi
controller can report what is connected right now. With no monitoring at
all, Atlas can check the service URLs you charted itself: it asks only what
is on the map, so it still never scans. Prometheus and Loki fill
the place cards' vitals and charts. A source that goes down only removes its
markers; the map keeps working.
- Know what a person checked. Every place records when it was charted,
where it came from (by hand or an import) and whether a person has reviewed
it. An import is a guess until someone checks it, and the Desk lists what is
still unchecked.
- Tripwires. Chart your honeypots (OpenCanary, a fake share) and canary
tokens (a document, a URL, a cloud key), and the Atlas lights the one that
is touched. Trips arrive through one signed webhook that OpenCanary,
Canarytokens or any script can call, and the scene says so out loud when a
feed stops answering or a webhook has never been reached. Admins only: where
bait sits stays secret. The Atlas never plants bait itself
(turn it on).
- Views for the details: an IP address view built on real CIDR maths, rack
elevations in 2D and 3D, the network topology from the internet inwards,
certificate expiry, a calendar of scheduled jobs that notices when one did
not run, an event history, and detailed maps for a room or a rack that open
as you zoom in (with links straight to one,
#region=<id>). A region can
fold, so its parent map shows only the places that talk outside it.
- Light or dark panels. ☀/☾ or
T, following your system until you choose;
the map itself stays a night map.
- Your own map art, and its own words. Bring any picture as a map style and
place your markers on it. The Atlas speaks in lore (rites, realms, annals) or,
with one setting, in standard words, and a style can bring words of its own.
- Edit in the browser. A guided first setup and forms for every field.
Fill the map from a UniFi controller (its networks, gear, ports, MAC
addresses, SSIDs, a power strip's outlets and the machines on them, in one
import you review row by row), a CSV device list, an nmap sweep or your
router's DHCP leases (ISC, dnsmasq, Kea, Windows Server). A sweep or leases device arrives
with a suggested type from its maker or its name, for you to check; a CSV
row takes the type you gave it,
physical if you gave none. The Atlas never
scans the network itself. On the backend, NetBox and nmap importers on
the command line too.
Every change to the map is validated and recorded, and the last 50 can be
undone. Moved markers and rearranged racks are saved apart, with no undo.
This is the beginning of the README. Read the rest at the original. Read the full README ↗