oddlama / nix-topology Goto Github PK
View Code? Open in Web Editor NEWπ Generate infrastructure and network diagrams directly from your NixOS configurations
Home Page: https://oddlama.github.io/nix-topology
License: MIT License
π Generate infrastructure and network diagrams directly from your NixOS configurations
Home Page: https://oddlama.github.io/nix-topology
License: MIT License
I have a couple of hosts with each a couple of services. Building the derivation named services-overview.svg takes like 6 minutes on my host and is mostly busy with allocating memory but the process is not swapping. Maybe this is related to vercel/satori#590 ?
Working on an extractor for the networking.wireguard
module of NixOS, there is something that IΒ don't quite know how to do:
I would like to be able to extract each networking.wireguard.interfaces
public key. I was hoping to be able to somehow run the following script cat ${interface.privateKeyFile} | ${getExe pkgs.wg} pubkey
, but it's unclear how, or even if nix-topology
currently permits something like this.
https://github.com/nlewo/comin
This is mostly a tracking issue for myself.
But, what icon to use?
https://github.com/hercules-ci/arion
I would make a pr, but I want to know if you want this added in the first place
I would like to create a topology of a Point-to-Site network. A simplified version of Fig 3.2
described here: https://www.procustodibus.com/blog/2020/10/wireguard-topologies/#point-to-site
This is what I have currently:
So it's not that far from what I would like to have. But I'm missing 2 things to make it more accurate:
I also have an idea for styling tunneled connections:
<path>
of the connection- <path fill="none" stroke="#f1cf8a" stroke-width="2" d="M955.6 524.2h211.6m-211.6 0h93.6a5 5 0 0 1 5 5v150a5 5 0 0 0 5 5h108m-211.6-160h93.6a5 5 0 0 0 5-5v-150a5 5 0 0 1 5-5h108"/>
+ <path fill="none" stroke="#f1cf8a" stroke-width="8" stroke-opacity="0.5" d="M955.6 524.2h211.6m-211.6 0h93.6a5 5 0 0 1 5 5v150a5 5 0 0 0 5 5h108m-211.6-160h93.6a5 5 0 0 0 5-5v-150a5 5 0 0 1 5-5h108"/>
+ <path fill="none" stroke="#70a5eb" stroke-width="2" d="M955.6 524.2h211.6m-211.6 0h93.6a5 5 0 0 1 5 5v150a5 5 0 0 0 5 5h108m-211.6-160h93.6a5 5 0 0 0 5-5v-150a5 5 0 0 1 5-5h108"/>
It's still not there yet, because it's not really visible that the connection is wg0 via enp7s0 <=> enp7s0 to wg0
but maybe we could just write it like wg0 via enp7s0
.
Would this be possible without to much work?
Really cool project!
It's a tiny thing but it would be cool if there were a built-in icon to represent a fiber connection.
I'm curious whether you made the icons yourself or pulled them from a pre-made collection that might already contain such an icon.
Within the README TODO section, visualising features such as disko and impermenance are noted; does the project have a pathway already considered to visualising those functionalities that could be contributed to by the community if desired?
A few questions that might already be considered:
Thanks in advance!
Hi there, firstly; this looks awesome - I'm extremely keen to utilise it in my configurations π
In documentation there is instances you mention that PRs are welcome; could you clarify any preferences you would have around:
Thanks in advance!
Is there any objection to the project considering a consolidation of the services overview rendered in the main.svg
output?
I've got two options that could be considered below;
I propose we could shift from the current view to one in which all hosts running the same service are listed under the service and details or info elements are visible only in the per-host card to reduce information on the one screen
First example of current view:
Second example of current view (that includes elements of detailed information):
I propose we could apply the above option, however output the contents not over main.svg
but in a minimal.svg
or alike - upside of-course is non-breaking behaviour, however it might lead to increased eval/build times if issues such as #6 are caused by the number and size of images.
An addendum to increasing the default outputs could be increased drv options to build from; such as:
nix build .\#topology.x86_64-linux.config.output
# vs
nix build .\#topology.x86_64-linux.config.minimal-output
# or
nix build .\#topology.x86_64-linux.config.output.passthru.minimal
Thanks in advance!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.