GithubHelp home page GithubHelp logo

buggem / evon-hub Goto Github PK

View Code? Open in Web Editor NEW

This project forked from linuxdojo/evon-hub

0.0 0.0 0.0 7.8 MB

Hub component for Elastic Virtual Overlay Network

Home Page: https://evonhub.com

License: GNU Affero General Public License v3.0

Shell 18.76% Python 67.43% PowerShell 3.28% CSS 0.33% Makefile 3.65% HTML 6.54%

evon-hub's Introduction

EVON Logo

Evon Hub

Evon Hub is an overlay network application, similar to Tailscale but built using OpenVPN. It uses a hub-spoke topology, with the software in this repository acting as the hub. It includes a web interface and API, and allows any device running OpenVPN to connect as a server or as a client. Servers and clients obtain static IPv4 addresses on the overlay network on the 100.x.y.x (CGNAT) address space, and can obtain unique public domain names. The hub allows rules and policies to be created that govern which servers and services can be reached by users and other servers on the overlay network. The transport used is SSL over TCP/443, allowing systems to access the hub via commonly open channels, including via web proxy servers.

Installation

There are 3 modes of installation:

  1. Opensource community version (fully functional, no limitations), see "Quick Start" below
  2. Hosted SaaS, via https://evonhub.com
  3. Hosted SaaS, via AWS Marketplace

Quick Start

  • Clone this repository
  • Create and activate a Python 3.10.5 virtual environment
  • Run the following command to build the installer package:
make package-oss

This will create a file named evon-hub-standalone_<version>.sh

  • Create a fresh Rocky/AlmaLinux 9 VPS instance with a public IPv4 address, and assign a domain name to it, eg "hub.example.com"
  • Ensure the following protocols/ports are allowed inbound:
    • tcp/22
    • tcp/80
    • tcp/443
    • udp/1194
  • Copy the installer file to the VPS and run it with command (substituting your domain name)
sudo bash evon-hub-standalone_<version>.sh --domain-name hub.example.com

The installation will take several minutes, with instructions printed at the end for accessing your hub.

Optional: Setup Automatic DNS entries for connected servers

Each connected server obtains a static IPv4 address on the 100.x.y.z network subnet.

Servers can also obtain unique DNS names in the format <hostname>.hub.example.com using the domain name in the above example. This feature is automatically setup on hosted SaaS deployments, and can be setup in the opensource community version by editing the file /opt/evon_standalone_hook and adding code to update your own DNS zone for your chosen domain.

Local Development

Local development assumes you are running a recent Linux distribution.

  • Create and activate a virtualenv using Python 3.10.5
  • run make setup-local
  • start the development webserver by running make runserver. The web UI can then be reached by browsing to http://localhost:8001. The default login credentials for the development server are admin/admin.

Documentation

Documentation can be found at https://docs.evonhub.com

License

The software in this repository is released under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007.

See file LICENSE.txt for details.

evon-hub's People

Contributors

gmurdocca avatar buggem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.