From 4bc08c92c22c55d366e2af72adb6a870ff6f9cb2 Mon Sep 17 00:00:00 2001 From: Evan Hazlett Date: Mon, 7 Oct 2019 11:15:54 -0400 Subject: [PATCH] start on docs Signed-off-by: Evan Hazlett --- README.md | 9 +++++++++ docs/overview.png | Bin 0 -> 41644 bytes 2 files changed, 9 insertions(+) create mode 100644 README.md create mode 100644 docs/overview.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..2cfd306 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Heimdall +Heimdall is a peer-to-peer private network system. It uses [Wireguard](https://www.wireguard.com) for peer +communication and [Redis](https://redis.io) for backend storage. All nodes are equal and the system +auto-elects in the event of a current master failure. Non-node peers are also supported in which they +can only access the network but do not provide routing capabilities. + +![Heimdall](docs/overview.png) + +# diff --git a/docs/overview.png b/docs/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..11764b3780a7e681a0dd42fdc85babe039cfc1a3 GIT binary patch literal 41644 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 literal 0 HcmV?d00001