/skywire

Skywire Node implementation

Primary LanguageGo

Build Status

Skywire

Build

Skywire requires a Golang version of 1.13 or higher.

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

# Build and Install
$ make build; make install

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 flag:

$ 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 visor 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

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.