• Stars
    star
    675
  • Rank 66,879 (Top 2 %)
  • Language
    Shell
  • Created almost 10 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A OpenWrt package for ZeroTier One - Pull requests are welcome!

ZeroTier-OpenWrt

ZeroTier has been merged into the official package repository and can be selected using the opkg package management tool.

ZeroTier One is a program to create a global provider-independent virtual private cloud. This project offers OpenWrt packages for ZeroTier.

Installing package

Download the prebuild package and copy it onto your OpenWrt installation, preferably into the /tmp folder.

Then install the ipk package file:

opkg install zerotier_*.ipk

Now enable ZeroTier:

uci set zerotier.sample_config.enabled='1'
uci commit zerotier

Now start ZeroTier

/etc/init.d/zerotier start

Compiling from Sources

To include ZeroTier One into your OpenWrt image or to create an .ipk package (equivalent to Debians .deb files), you have to build an OpenWrt image.

To build OpenWrt on Debian, you need to install these packages:

sudo apt-get install subversion g++ zlib1g-dev build-essential git python
sudo apt-get install libncurses5-dev gawk gettext unzip file libssl-dev wget

Now prepare OpenWrt:

git clone https://github.com/openwrt/openwrt
cd openwrt

./scripts/feeds update -a
./scripts/feeds install -a

Now you can insert the zerotier package using a package feed (see Add package by feed) or add the package manually (see Add package by hand).

Add package by feed

A feed is the standard way packages are made available to the OpenWrt build system.

Put this line in your feeds list file (e.g. feeds.conf, or feeds.conf.default)

src-git zerotier https://github.com/mwarning/zerotier-openwrt.git

Update and install the new feed

./scripts/feeds update zerotier
./scripts/feeds install zerotier

Now continue with the building packages section (see Building Packages).

Add package by hand

git clone https://github.com/mwarning/zerotier-openwrt.git
cp -rf zerotier-openwrt/zerotier package/
rm -rf zerotier-openwrt/

Now continue with the building packages section (see Building Packages).

Building Packages

Configure packages:

make menuconfig

Now select the appropiate "Target System" and "Target Profile" depending on what target chipset/router you want to build for. Also mark the ZeroTier package under Network ---> VPN ---> <*> zerotier.

Now compile/build everything:

make -j8

The images and all *.ipk packages are now inside the bin/ folder, including the zerotier package. You can install the ZeroTier .ipk on the target device using opkg install <ipkg-file>.

For details please check the OpenWrt documentation.

Build bulk packages

For a release, it is useful the build packages at a bulk for multiple targets:

#!/bin/sh

# dump-target-info.pl is used to get all targets configurations:
# https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=scripts/dump-target-info.pl

./scripts/dump-target-info.pl architectures | while read pkgarch target1 rest; do
  echo "CONFIG_TARGET_${target1%/*}=y" > .config
  echo "CONFIG_TARGET_${target1%/*}_${target1#*/}=y" >> .config
  echo "CONFIG_PACKAGE_example1=y" >> .config

  # Debug output
  echo "pkgarch: $pkgarch, target1: $target1"

  make defconfig
  make -j4 tools/install
  make -j4 toolchain/install

  # Build package
  make package/zerotier/{clean,compile}

  # Free space (optional)
  rm -rf build_dir/target-*
  rm -rf build_dir/toolchain-*
done

More Repositories

1

KadNode

P2P DNS with content key, crypto key and PKI support. DynDNS alternative.
C
408
star
2

openwrt-examples

Examples for creating OpenWrt programs&packages.
Makefile
192
star
3

meshnet-lab

Emulate huge mobile ad-hoc mesh networks using Linux network namespaces.
Python
147
star
4

docker-openwrt-build-env

A Docker container to build OpenWrt images
Dockerfile
139
star
5

SimpleDNS

A very simple and small DNS Server to help understanding the protocol basics.
C
135
star
6

trigger

Android app to lock/unlock/ring doors. Supports generic HTTPS/SSH/Bluetooth/MQTT and Nuki Smartlock.
Kotlin
133
star
7

UDP-hole-punching-examples

A small collection of examples for UDP hole punching.
C
104
star
8

chaos-sticker-collection

A collection of chaos event / nerd culture related stickers.
HTML
96
star
9

MeshNetSimulator

A simulator for sketching and testing mesh network routing strategies
Rust
78
star
10

netlink-examples

Linux kernel Netlink examples inspired by "Why and How to Use Netlink Socket"
C
59
star
11

openwrt-firmware-selector

OpenWrt firmware selector. With custom image builder support.
JavaScript
39
star
12

device-observatory

Discover what your phone does on the Internet.
C
31
star
13

SimpleOctree

A simple and very fast Octree Implementation that supports Nearest Neigbour Search
C++
28
star
14

libsodium-example

A simple example on how to use the libsodium crypto library
C
20
star
15

testmesh

A collection of mesh routing protocols.
C
17
star
16

MeshGraphViewer

Visualize mesh graphs as forcegraph and on OpenStreetMap
JavaScript
16
star
17

dhtd

Utilize the BitTorrent network for hash identifier storage and lookup
C
15
star
18

p2p-gui

A remote web interface for MLdonkey, aMule, rTorrent, Transmission and giFT.
D
14
star
19

mtdRW

A small Linux kernel module that makes all MTD partitions writeable at runtime.
C
12
star
20

mbedtls_ecp_compression

Elliptic Curve Point compression/decompression for mbedtls
C
11
star
21

dat-c

A hobby implementation of the dat protocol in C
C
9
star
22

libsodium-openwrt

libsodium package for OpenWrt
Makefile
6
star
23

web-torrent

Experimental web browser with P2P capabilities
Python
4
star
24

guest-counter

A shell script to count active devices on the local network.
Shell
3
star
25

monty-hall-problem

Monty Hall Problem in Python
Python
2
star
26

mwarning.de

My Website :-)
JavaScript
1
star
27

plain-prpl

A simplistic protocol plugin for Pidgin / libpurple
C
1
star
28

titanion

Titanion is a classic 2.5D shooter game.
Rust
1
star
29

PyQt4-Examples

Some Qt4 examples translated to PyQt4/Python
Python
1
star
30

shell_copy_progress

A simple wrapper around the cp command to show the progress.
Shell
1
star
31

openwrt-autoconnect

A small openwrt script/package to connect to an SSID from a configured list
Shell
1
star
32

Hyperbolic-Graph-Generator

A Rust port of https://github.com/named-data/Hyperbolic-Graph-Generator
Rust
1
star