Skip to content

omniedgeio/omniedge

Repository files navigation

OmniEdge

OmniEdge

Website

Get Started   •   Website   •   Docs   •   Development   •   Examples Cases   •   Discord   •   Twitter   •   OmniEdge   •   Donation

【English】 【繁体中文】 【简体中文】 【日本语】 【Español】 【Italiano】 【한국어】 【العربي】 【Tiếng Việt】 【แบบไทย】

Hiring: Lead Developer - OmniEdge Enterprise VPN Project

OmniEdge is an Open source p2p layer 2 VPN infrastructure based on n2n protocol, a traditional VPN alternative. No central server, easy to scale with less maintenance. What happens in intranet, stays in in intranet. OmniEdge is fully open sourced the code including backend, frontend, and Apps.

OmniEdge-clients

Key features:

Dashboard administration management 🔥 Mesh VPNs Desktop GUI apps for MacOS(menubar) and Windows(systray)
🔥 Multi virtual networks 🔥 Site-to-Site VPNs Command line cli apps for Linux,FreeBSD, Raspbian and MacOS
Multi users Unlimited data transfer Command line cli apps for armv7,arm64,RISC-V64,x86_64 and amd64
Multi devices Encrypted peer-to-peer connection Mobile apps for iOS and Android
🔥 Self-hosted Supernode Encrypted connection relay Tablet apps for iPad, Android Tablet and Android TV
🔥 Sharing virtual network Hybrid-cloud support NAS App for Synology
Security Keys 🔥 Zero-Config Automatic public supernode allocation
🔥 Remote Device Control Drop Files remotely Automatic IP allocation

Supported

App Version Linux Windows MacOS FreeBSD iOS Android Synology OpenWrt Docker Github Action
OmniEdge 0.2.3
OmniEdge 0.2.4
OmniEdge 0.2.5

Get Started in 5 minutes

  1. Sign up your account: Sign up
  2. Download OmniEdge apps for your platform: macOS, linux, FreeBSD, iOS, android and more.
  3. Or run the following command if you want to use cli version:
curl https://omniedge.io/install/omniedge-install.sh | bash
  1. Login with your Email and password, select your virtual network, connect!

You are all set!

And if you want to login with security key, or manage your devices, go and check Documenation for more.

Docker

Bring container into intranet.

sudo docker run -d \
  -e OMNIEDGE_SECURITYKEY=OMNIEDGE_SECURITYKEY \
  -e OMNIEDGE_VIRUTALNETWORK_ID="OMNIEDGE_VIRUTALNETWORK_ID" \
  --network host \
  --privileged \
  omniedge/omniedge:latest

Github Action

Bring Github Action into intranet, access nodes/devices from CI workflows.

- name: OmniEdge for Github Action
  uses: omniedgeio/github-action@v1
  with:
    securitykey: ${{ secrets.OMNIEDGE_SECURITY_KEY }}
    virtualnetworkid: ${{ secrets.OMNIEDGE_VIRTUALNETWORK_ID }}

Server status

This Server Status is generated every 5 hours by OmniEdge Github action.

OmniEdge server-status

Compile

Linux

Install golang for your distribution

Follow the instruction to install golang, we use 1.16.6, or running the following command:

wget https://go.dev/dl/go1.16.6.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.6.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version

Build for Ubuntu 18.04, 20.04, 22.04/Debian 10, 11

sudo apt-get -y update
sudo apt-get install -y openssl build-essential libssl-dev zip autoconf
git clone https://github.com/omniedgeio/omniedge-cli
cd omniedge-cli
go mod download
go generate
BUILD_ENV=prod make build

Build for Fedora 36, CentOS 8

sudo yum update
sudo yum -y install gcc-c++ curl wget zip wget git openssl-devel net-tools automake autoconf make
git clone https://github.com/omniedgeio/omniedge-cli
cd omniedge-cli
go mod download
go generate
chmod +x internal/make
BUILD_ENV=prod make build

Build for Arch(Manjaro)

sudo pacman -Syu --needed unzip git gcc curl wget zip make pkg-config openssl net-tools automake autoconf make
git clone https://github.com/omniedgeio/omniedge-cli
cd omniedge-cli
go mod download
go generate
chmod +x internal/make
BUILD_ENV=prod make build

Build for Opensuse

sudo zypper update 
sudo zypper install unzip git gcc curl wget zip make pkg-config openssl net-tools automake autoconf make tar
git clone https://github.com/omniedgeio/omniedge-cli
cd omniedge-cli
go mod download
go generate
chmod +x internal/make
BUILD_ENV=prod make build

The compiled omniedge-cli will be found in /out/

BSD

FreeBSD

su
pkg update && pkg install go gmake git openssl zip autoconf automake libtool
git clone https://github.com/omniedgeio/omniedge-cli
cd omniedge-cli
go mod download
go generate
BUILD_ENV=prod make build-freebsd

The compiled omniedge-cli will be found in /out/

Cross Compile

Compile for RISCV64

Host OS: Ubuntu 20.04

apt-get update
apt-get install -y openssl autoconf build-essential libssl-dev zip wget g++-riscv64-linux-gnu gcc-riscv64-linux-gnu

wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
export GOOS=linux
export GOARCH=riscv64
export CGO_ENABLED=1
export CC=riscv64-linux-gnu-gcc
git clone https://github.com/omniedgeio/omniedge-cli.git
cd omniedge-cli
go mod download
go generate
BUILD_ENV=prod make build-riscv64

The compiled omniedge-cli will be found in /out/

Android

  1. Download Android Studio: https://developer.android.com/studio
  2. Get the repo and compile
git clone https://github.com/omniedgeio/omniedge-android.git`
./gradlew test --stacktrace
./gradlew assembleDebug --stacktrace

We have also prepared the CI for Github and Gitlab for building automatically.

  1. Github: https://github.com/omniedgeio/omniedge-android/blob/main/.github/workflows/build.yml
  2. GitLab: https://github.com/omniedgeio/omniedge-android/blob/main/.gitlab-ci.yml

iOS

  1. Download and install Xcode
  2. Get the repo and compile
git clone https://github.com/omniedgeio/omniedge-iOS.git
cd omniedge-iOS
open OmniEdgeNew/OmniEdgeNew.xcworkspace

Xcode will open automatically, you have to set your developer account to start the compile. We recommend compiling the package on your devices separately, specially the Tunnel package.

image

macOS

macOS GUI

  1. Download and install Xcode
  2. Get the repo and compile
git clone https://github.com/omniedgeio/omniedge-macOS.git
cd omniedge-macOS
open Omniedge.xcodeproj

Xcode will open automatically, you have to set your developer account to start the compile.

macOS Cli

brew install autoconf automake libtool
git clone https://github.com/omniedgeio/omniedge-cli
cd omniedge-cli
go mod download
go generate
BUILD_ENV=prod make build-darwin

The compiled omniedge-cli will be found in /out/

Windows

  1. Download QT 5.12.12 for windows and Inno Setup for windows
  2. Get the repo and compile
git clone https://github.com/omniedgeio/omniedge-windows.git
cd omniedge-windows
  1. open OmniEdge.pro and QT Creator will open automatically
  2. Set the Kits to Desktop Qt 5.12.12 MSVC2017 32bit, select build with Release, set the Build directory to: .\build-package\build\

  1. Press crtl+B to build, and you will find OmniEdge.exe in the folder.\build-package\build\release\.
  2. copy OmniEdge.exe to .\build-package\package\,open omniedge_withTAP_V02_bat.iss with Inno Setup Compile, press ctril+F9 to compile and you will find the installer package in the folder .\build-package\release

OpenWrt

  1. Compile the binary

We use the github action with the docker to build the binary for openwrt, the docker file is located at: https://github.com/omniedgeio/omniedge-cli/blob/dev/docker/openwrt-binary

  1. Package the ipk

A seperated repo https://github.com/omniedgeio/omniedge-openwrt with github action is used to download the openwrt binary and package the ipk.

Usage

Use Cases

Tell us your use-case, so we can share to others

Compare

Who are talking about us

Advisor

lucaderi

Contributors

harri8807 , Tex-Tang, ivyxjc, kidylee, EbenDang ,zteshadow, ChenYouping,ddrandy, Tsingv, mtx2dBlackrose, cheung-chifung,我不是矿神

feel free to tell us about any posts related us via issue or PR.


If you have more questions, feel free to talk to us at Discussions.