All Projects → skycoin → skywire

skycoin / skywire

Licence: other
Skywire Node implementation

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects
HTML
75241 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to skywire

v-switch
Virtual Encrypted Switch across the network, using UDP + AES + TAP
Stars: ✭ 27 (-55%)
Mutual labels:  vpn, meshnet
bytemine-manager
platform-independent, multilingual Java desktop-application for intuitive and easy management of your OpenVPN servers
Stars: ✭ 30 (-50%)
Mutual labels:  vpn
ZeroHub
c# implementation aimed for nat traversal using OpenVPN tuntap driver
Stars: ✭ 15 (-75%)
Mutual labels:  vpn
VpnHood
Undetectable Fast Portable VPN
Stars: ✭ 349 (+481.67%)
Mutual labels:  vpn
autoygg
A tool to automatically configure internet egress on an yggdrasil network.
Stars: ✭ 19 (-68.33%)
Mutual labels:  vpn
wgrest
WireGuard REST API
Stars: ✭ 92 (+53.33%)
Mutual labels:  vpn
AdClear-Open-Source-Issue-Tracker
Open Source Issue Tracker for AdClear non-root ad blocker for Android
Stars: ✭ 101 (+68.33%)
Mutual labels:  vpn
InvisibleMan-VPNClient
Free premium PPTP VPN
Stars: ✭ 24 (-60%)
Mutual labels:  vpn
wireguard config maker
Simple Java program to create wireguard client config files
Stars: ✭ 51 (-15%)
Mutual labels:  vpn
terraform-aws-pritunl-vpn-server
Pritunl VPN Server for your public/private like VPC on AWS
Stars: ✭ 40 (-33.33%)
Mutual labels:  vpn
woodpecker
Custom security distro for remote penetration testing
Stars: ✭ 45 (-25%)
Mutual labels:  vpn
Cybernet-VPN
Android Cybernet VPN App
Stars: ✭ 28 (-53.33%)
Mutual labels:  vpn
openconnect-installer
Automatically set up an Openconnect/Anyconnect VPN server(ocserv) with Let's Encrypt with just one command in CentOS 8.
Stars: ✭ 64 (+6.67%)
Mutual labels:  vpn
ikev2-docker
Run a IKEv2 VPN in a Docker containern without any effort
Stars: ✭ 29 (-51.67%)
Mutual labels:  vpn
addon-tailscale
Tailscale - Home Assistant Community Add-ons
Stars: ✭ 47 (-21.67%)
Mutual labels:  vpn
gon2n
Go bindings, management daemons and CLIs for n2n edges and supernodes.
Stars: ✭ 67 (+11.67%)
Mutual labels:  vpn
aws-vpn-mikrotik
Shell script to transform a Generic AWS VPN configuration guide to MikroTik specific set up commands that can be copy pasted into a mikrotik console to set up the customer end of the connection.
Stars: ✭ 38 (-36.67%)
Mutual labels:  vpn
terraform-openvpn
A sample terraform setup for OpenVPN using Let's Encrypt and Certbot to generate certificates
Stars: ✭ 43 (-28.33%)
Mutual labels:  vpn
MQTT VPN
IP over MQTT for ESP controllers and Linux
Stars: ✭ 95 (+58.33%)
Mutual labels:  vpn
wgctl
Utility to configure and manage your WireGuard tunnels
Stars: ✭ 59 (-1.67%)
Mutual labels:  vpn

Build Status

Skywire requires a Golang version of 1.16 or higher.

Skywire

Run from source

$ mkdir -p $HOME/go/src/github.com/skycoin && cd $HOME/go/src/github.com/skycoin
$ git clone https://github.com/skycoin/skywire.git
$ cd skywire
$ make run-source

Build

# Clone.
$ git clone https://github.com/skycoin/skywire.git
$ cd skywire

# Build and Install
$ make build; make install

# OR build docker image
$ ./ci_scripts/docker-push.sh -t $(git rev-parse --abbrev-ref HEAD) -b

Skywire can be statically built. For instructions check the docs.

Configure Skywire

Expose hypervisorUI

In order to expose the hypervisor UI, generate a config file with --is-hypervisor or -i flag:

$ skywire-cli config gen -i

Docker container will create config automatically for you, should you want to run it manually, you can do:

$ docker run --rm -v <YOUR_CONFIG_DIR>:/opt/skywire \
  skycoin/skywire:test skywire-cli config gen -i

Docker container will create config automatically for you, should you want to run it manually, you can do:

$ docker run --rm -v <YOUR_CONFIG_DIR>:/opt/skywire \
  skycoin/skywire:latest skywire-cli visor gen-config --is-hypervisor

After starting up the visor, the UI will be exposed by default on localhost:8000.

Add remote hypervisor

Every visor can be controlled by one or more hypervisors. To allow a hypervisor to access a visor, the PubKey of the hypervisor needs to be specified in the configuration file. You can add a remote hypervisor to the config with:

$ skywire-cli config update --hypervisor-pks <public-key>

If the rpc server is exposed on the local network, or the config has been generated with the --public-rpc flag, the hypervisor public key can be queried over the network with skywire-cli:

$ skywire-cli --rpc <ip-address> visor pk

The previous two commands can be nested:

$ skywire-cli config update --hypervisor-pks $(skywire-cli --rpc <ip-address> visor pk)

Or from docker image:

$ docker run --rm -v <YOUR_CONFIG_DIR>:/opt/skywire \
  skycoin/skywire:test skywire-cli config update hypervisor-pks <public-key>

Or from docker image:

$ docker run --rm -v <YOUR_CONFIG_DIR>:/opt/skywire \
  skycoin/skywire:latest skywire-cli update-config hypervisor-pks <public-key>

Run skywire-visor

skywire-visor hosts apps and is an applications gateway to the Skywire network.

skywire-visor requires a valid configuration to be provided. If you want to run a VPN client locally, run the visor as sudo.

$ sudo skywire-visor -c skywire-config.json

Or from docker image:

# with custom config mounted on docker volume
$ docker run --rm -p 8000:8000 -v <YOUR_CONFIG_DIR>:/opt/skywire --name=skywire skycoin/skywire:test skywire-visor -c /opt/skywire/<YOUR_CONFIG_NAME>.json
# without custom config (config is automatically generated)
$ docker run --rm -p 8000:8000 --name=skywire skycoin/skywire:test skywire-visor

skywire-visor can be run on Windows. The setup requires additional setup steps that are specified in the docs.

Using the Skywire VPN

If you are interested in running the Skywire VPN as either a client or a server, please refer to the following guides:

Creating a GitHub release

To maintain actual skywire-visor state on users' Skywire nodes we have a mechanism for updating skywire-visor binaries. Binaries for each version are uploaded to GitHub releases. We use goreleaser for creating them.

How to create a GitHub release

  1. Make sure that git and goreleaser are installed.
  2. Checkout to a commit you would like to create a release against.
  3. Run go mod vendor and go mod tidy.
  4. Make sure that git status is in clean state. Commit all vendor changes and source code changes.
  5. Uncomment draft: true in .goreleaser.yml if this is a test release.
  6. Create a git tag with desired release version and release name: git tag -a 0.1.0 -m "First release", where 0.1.0 is release version and First release is release name.
  7. Push the created tag to the repository: git push origin 0.1.0, where 0.1.0 is release version.
  8. Issue a personal GitHub access token.
  9. Run GITHUB_TOKEN=your_token make github-release
  10. Check the created GitHub release.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].