Running Skywire on CentOS 7 using Hyper-V

Following Skywire instruction from offical github repository:

First download CentOS 7.4 (1708) Minimal .iso image from:

How To on YouTube

Run Hyper-V Manager, if not found you have to enable Hyper-V in Windows Features (Control Panel, Programs and Features) windows-features-hyper-v

Create new Virtual Machine:

  • Generation 1
  • Memory Size: 2048 MB
  • Network Default Switch or select your custom virtual network switch
  • Disk Size: 32 GB
  • Select Image file (.iso) from your hard drive

Start Virtual Machine. Install CentOS 7 following on screen instructions. After installation finishes eject .iso image and reboot.

Login with root credentials and check current IP address with command:

$ ip a l

Run commands to update system and install required tools (like git)

$ yum update
$ yum install bash-completion ntp git tmux net-tools
$ ip a l
$ systemctl enable ntpd
$ systemctl start ntpd
$ ip a l
$ reboot

Download and install GO language

$ curl -o go1.10.linux-amd64.tar.gz
$ tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz
$ export PATH=$PATH:/usr/local/go/bin
$ export GOPATH=$HOME/go
$ export GOBIN=$GOPATH/bin

Install Skywire

Create new folder, checkout git repository and run go installation.

$ mkdir -p $GOPATH/src/
$ cd $GOPATH/src/
$ git clone
$ cd $GOPATH/src/
$ go install ./...

Run Skywire

I am using tmux to run more terminals in single screen and it enables to detach terminals.

Ctrl+B " - creates new terminal by splitting horizontally
Ctrl+B Arrow Key - switch between terminals
Ctrl+B D - detach current session (to attach back to session run command: tmux a)
$ cd $GOPATH/bin
$ tmux
$ ./manager -web-dir ${GOPATH}/src/
$ ./node -connect-manager -manager-address :5998 -manager-web :8000 -discovery-address -address :5000 -web-port :6001

CentOS is running firewall by default so we have to add ports to enable access from local network.

$ firewall-cmd --add-port=8000/tcp
$ firewall-cmd --add-port=8000/tcp --permanent

GO path settings

Edit file and add line $ vi /etc/profile.d/

export PATH=$PATH:/usr/local/go/bin

Or add lines in $ vi ~/.bash_profile

export GOBIN="$HOME/projects/bin"
export GOPATH="$HOME/projects/src"

if Go was not installed in the /usr/local directory, then define the GOROOT variable as well.

$ vi ~/.bash_profile

export GOROOT="/path/to/go"