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
# OR build docker image
$ ./ci_scripts/docker-push.sh -t $(git rev-parse --abbrev HEAD) -b
Skywire can be statically built. For instructions check the docs.
In order to expose the hypervisor UI, generate a config file with --is-hypervisor
flag:
$ skywire-cli visor gen-config --is-hypervisor
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 gen-config --is-hypervisor
After starting up the visor, the UI will be exposed by default on localhost:8000
.
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>
Or from docker image:
$ docker run --rm -v <YOUR_CONFIG_DIR>:/opt/skywire \
skycoin/skywire:latest skywire-cli update-config hypervisor-pks <public-key>
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:
docker run --rm -p 8000:8000 -v <YOUR_CONFIG_DIR>:/opt/skywire --name=skywire skycoin/skywire:latest skywire-visor
skywire-visor
can be run on Windows. The setup requires additional setup steps that are specified
in the docs.
If you are interested in running the Skywire VPN as either a client or a server, please refer to the following guides:
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.
- Make sure that
git
and goreleaser are installed. - Checkout to a commit you would like to create a release against.
- Run
go mod vendor
andgo mod tidy
. - Make sure that
git status
is in clean state. Commit all vendor changes and source code changes. - Uncomment
draft: true
in.goreleaser.yml
if this is a test release. - Create a
git
tag with desired release version and release name:git tag -a 0.1.0 -m "First release"
, where0.1.0
is release version andFirst release
is release name. - Push the created tag to the repository:
git push origin 0.1.0
, where0.1.0
is release version. - Issue a personal GitHub access token.
- Run
GITHUB_TOKEN=your_token make github-release
- Check the created GitHub release.