NodeAtlas
Federated node mapping for mesh networks

NodeAtlas is a high-performance and very portable tool for
geographically mapping mesh networks. It is used and designed by
Project Meshnet.
It runs as a server which provides a web interface with two parts: a
map, and an API. The mapping portion provides a comfortable and
functional user interface using Bootstrap. The map itself is
provided by Leafletjs, which loads tiles from OpenStreetMap
(by default). Nodes are loaded by JQuery from the API.
The NodeAtlas itself is written in Go, and its API is powered by
JAS, a RESTful JSON API framework.
In addition to the API, the Go backend provides a simple and powerful
means of federation. Child maps are specified in the configuration,
and NodeAtlas regularly queries their APIs, and pulls a list of node
information, including nodes from sub-children, when are then
displayed on the parent instance. This way, NodeAtlas is capable of
acting as a regional map, incorporating nodes from multiple more
localized instances. (More documentation on this behavior will be
added in the future.)
Install
Currently the only option to install NodeAtlas is to compile from
source. In the future it will be packaged for ease.
Clone the repository:
git clone https://github.com/ProjectMeshnet/nodeatlas.git
Get go packages needed to build:
go get
Build the binary
make
Install on system:
sudo make install
Configuration
NodeAtlas needs a configuration file. By default, NodeAtlas looks for
conf.json
in the current directory. There is a file called
conf.json.example
in the repository, which is a template for what
the configuration file should look like.
You can tell NodeAtlas to use a configuration file from anywhere else
by using the --conf
flag. For example:
nodeatlas --res res/ --conf /etc/nodeatlas.json
For documentation on what exactly every line in your configuration
file does, see CONFIGURATION.md in the doc
folder.
API
NodeAtlas has a RESTful JSON API. For documentation on the NodeAtlas
API, see API.md in the doc
folder.
Contributing
If you see something that needs fixing, or you can think of something
that could make NodeAtlas better, please feel free to open an issue or
submit a pull request. Check the open issues before doing so! If there
is already an issue open for what you want to help with, don't open
another; one will suffice. All issues and pull requests are welcome,
and encouraged.
Copyright & License
© Alexander Bauer, Luke Evers, Dylan Whichard, and
contributors. NodeAtlas is licensed under GPLv3. See LICENSE for
full detials.