topology
Draw what you have, from the files that describe it.

Your systems, drawn by you.

Point it at the repositories you keep. Each one can say what it is in a short TOPOLOGY.md; topology reads them, sorts what they say by where, what, how and who, and draws it. You move the shapes. The drawing is yours.

Zero Sharing

Everything stays in this browser: settings, drawings, choices. Nothing is sent anywhere until you add an address yourself, and you can take it all away as a file at any time.

Start now, share nothing

Connect an API

Your own server, ours, or anyone's that speaks the graph API. The address lives in your browser; the server only sees what you ask it for.

Connect and draw
What it is

A drawing app (TopoForge, a single-file network and diagram designer) with a small server beside it. The server keeps a list of git repositories, reads the TOPOLOGY.md files in them, and keeps what it learns as small files you can read with ls and cat. The app asks it for a graph and lays the graph out as shapes.

A drawing can be read three ways. It describes something you want to exist. Drawn over something that already exists, it proposes a change, and can hand you that change as a prompt to take anywhere. Where a server allows it and has the tools, pressing go makes the change. Every server starts with go switched off.

Private parts of a TOPOLOGY.md stay hidden unless the component says show, or you do, and a server sends none at all until its operator allows it. You can set that per container or for everything, and the app always tells you which setting decided.

the format and the rule, in one page

Download

Everything below is built by one file, RECIPE.org, which is itself in every package, so any copy can rebuild the rest.

PackageWhat you get
topology-wwwJust this site and the app, as files under /usr/share/topology/www. Nothing runs.
topology-perlPerl 5.44.0, built for topology, with its CPAN modules inside, under /opt/topology/perl. Leaves your system perl alone.
topologyThe command, the graph API service, and the settings in /etc/topology.

Browse: Debian packages · source tarballs · SHA256SUMS · the CPAN sources we vendor

sudo apt install ./topology-www_*.deb      # files only
sudo apt install ./topology*.deb           # all of it
Switch things off

New features arrive switched on. Every one can be switched off in /etc/topology/topology.conf, and one line takes the whole thing back to just the files of this site:

ceiling = spa      # spa | web | api | repos | write
CeilingWhat runs
spaNothing. The app is on disk where topology where says.
webThe site and downloads, served by your web server.
apiThe graph API, read-only.
reposIt fetches the repositories you list, with the credentials you name.
writeGo is possible. Off by default, even under this ceiling.
Make it yours

Choose how it looks (classic, console, cards) and how a drawing is read (topology, flowchart, BPMN, BPMN+) in the app's settings. Fork a drawing, keep both, compare.

Or start your own version. This one began from a single request, kept word for word with everything we read beside it, so someone else can begin from the same place and see where their setup takes it: how to start your own.

The words it uses (place, part, path, person; describe, propose, effect) are defined in one file, pillars.json, which the app and the server both read. Change a word there and both change.