Latest Socket ResearchMalicious Chrome Extension Performs Hidden Affiliate Hijacking.Details →
Socket
Book a DemoInstallSign in
Socket

skynx.io/s-node

Package Overview
Dependencies
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

skynx.io/s-node

Go Modules
Version
v0.0.2
Version published
Created
Source

skynx.com

Discord GitHub Discussions X Mastodon

Open source projects from skynx.com.

skynx-node

Go Report Card Release GitHub

This repository contains the skynx-node agent, the component that runs on the machines you want to connect to your skynx network.

skynx-node is available for a variety of Linux platforms, macOS and Windows.

Minimum Requirements

skynx-node has the same minimum requirements as Go:

  • Linux kernel version 2.6.23 or later
  • Windows 7 or later
  • FreeBSD 11.2 or later
  • MacOS 10.11 El Capitan or later

Getting Started

The instructions in this repo assume you already have a skynx account and are ready to start adding nodes.

See Quick Start to learn how to start building your skynx cloud-agnostic architecture.

The fastest way to add Linux nodes to your skynx network is by generating a magic link in the skynx web UI or with skynxctl:

skynxctl node add

See Installation for more details and other platforms.

Documentation

For the complete skynx platform documentation visit skynx.com/docs.

Installation

Binary Downloads

Linux, macOS and Windows binary downloads are available from the Releases page.

You can download the pre-compiled binaries and install them with the appropriate tools.

Linux Installation

The easiest way to add nodes to your skynx network is by generating a magic link in the skynx web UI or with skynxctl:

skynxctl node add

You will be able to use the magic link to install the skynx-node agent in seconds with no additional configuration required.

Once installed you can review the configuration at /etc/skynx/skynx-node.yml.

See the skynx-node configuration reference to find all the configuration options.

Linux binary installation with curl

  • Download the latest release.

    curl -LO "https://dl.skynx.com/binaries/stable/latest/linux/amd64/skynx-node"
    
  • Validate the binary (optional).

    Download the skynx-node checksum file:

    curl -LO "https://dl.skynx.com/binaries/stable/latest/linux/amd64/skynx-node_checksum.sha256"
    

    Validate the skynx-node binary against the checksum file:

    sha256sum --check < skynx-node_checksum.sha256
    

    If valid, the output must be:

    skynx-node: OK
    

    If the check fails, sha256 exits with nonzero status and prints output similar to:

    skynx-node: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    
  • Install skynx-node and create its configuration file according to your needs.

    sudo install -o root -g root -m 0750 skynx-node /usr/local/bin/skynx-node
    sudo mkdir /etc/skynx
    sudo vim /etc/skynx/skynx-node.yml
    

    See the skynx-node configuration reference to find all the configuration options.

  • Create the skynx-node.service for systemd.

    sudo cat << EOF > /etc/systemd/system/skynx-node.service
    [Unit]
    Description=skynx-node service
    Documentation=https://github.com/skynx-io/s-node
    After=network.target
    
    [Service]
    Type=simple
    
    # Another Type: forking
    
    # User=
    WorkingDirectory=/var/lib/skynx
    ExecStart=/usr/local/bin/skynx-node start
    Restart=always
    
    # Other restart options: always, on-abort, etc
    
    # The install section is needed to use
    
    # 'systemctl enable' to start on boot
    
    # For a user service that you want to enable
    
    # and start automatically, use 'default.target'
    
    # For system level services, use 'multi-user.target'
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  • Ensure the tun kernel module is loaded.

    sudo modprobe tun
    
  • Start the skynx-node service.

    sudo systemctl daemon-reload
    sudo systemctl enable skynx-node
    sudo systemctl restart skynx-node
    
Uninstall Linux skynx-node

To remove skynx-node from the system, use the following commands:

sudo systemctl stop skynx-node
sudo systemctl disable skynx-node
sudo rm /etc/systemd/system/skynx-node.service
sudo systemctl daemon-reload
sudo rm /usr/local/bin/skynx-node
sudo rm /etc/skynx/skynx-node.yml
sudo rmdir /etc/skynx
sudo rm -rf /var/lib/skynx
sudo rm -rf /var/cache/skynx

Package Repository

skynx provides a package repository that contains both DEB and RPM downloads.

For DEB-based platforms (e.g. Ubuntu and Debian) run the following to setup a new APT sources.list entry and install skynx-node:

echo 'deb [trusted=yes] https://repo.skynx.com/apt/ /' | sudo tee /etc/apt/sources.list.d/skynx.list
sudo apt update
sudo apt install skynx-node

For RPM-based platforms (e.g. RHEL, CentOS) use the following to create a repo file and install skynx-node:

cat <<EOF | sudo tee /etc/yum.repos.d/skynx.repo
[skynx]
name=skynx Repository - Stable
baseurl=https://repo.skynx.com/yum
enabled=1
gpgcheck=0
EOF
sudo yum install skynx-node

macOS Installation

macOS binary installation with curl

  • Download the latest release.

    Intel:

    curl -LO "https://dl.skynx.com/binaries/stable/latest/darwin/amd64/skynx-node"
    

    Apple Silicon:

    curl -LO "https://dl.skynx.com/binaries/stable/latest/darwin/arm64/skynx-node"
    
  • Validate the binary (optional).

    Download the skynx-node checksum file:

    Intel:

    curl -LO "https://dl.skynx.com/binaries/stable/latest/darwin/amd64/skynx-node_checksum.sha256"
    

    Apple Silicon:

    curl -LO "https://dl.skynx.com/binaries/stable/latest/darwin/arm64/skynx-node_checksum.sha256"
    

    Validate the skynx-node binary against the checksum file:

    shasum --algorithm 256 --check skynx-node_checksum.sha256
    

    If valid, the output must be:

    skynx-node: OK
    

    If the check fails, sha256 exits with nonzero status and prints output similar to:

    skynx-node: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    
  • Install skynx-node and create its configuration file according to your needs.

    chmod +x skynx-node
    sudo mkdir -p /opt/skynx/libexec
    sudo mv skynx-node /opt/skynx/libexec/skynx-node
    sudo chown root: /opt/skynx/libexec/skynx-node
    sudo mkdir -p /opt/skynx/etc
    sudo vim /opt/skynx/etc/skynx-node.yml
    sudo chmod 600 /opt/skynx/etc/skynx-node.yml
    sudo mkdir -p /opt/skynx/var/lib
    sudo mkdir -p /opt/skynx/var/cache
    

    IMPORTANT: In macOS, iface must be utun[0-9]+ in the skynx-node.yml, being utun7 usually a good choice for that setting. Use the command ifconfig -a before launching the skynx-node service and check that the interface is not in-use.

    See the skynx-node configuration reference to find all the configuration options.

  • Install and start the skynx-node agent as a system service.

    sudo /opt/skynx/libexec/skynx-node service-install
    
  • Check the service status.

    launchctl print system/com.skynx.skynx-node
    

    You should get an output like this:

    system/com.skynx.skynx-node = {
        active count = 1
        path = /Library/LaunchDaemons/com.skynx.skynx-node.plist
        state = running
    
        program = /opt/skynx/libexec/skynx-node
        arguments = {
            /opt/skynx/libexec/skynx-node
            service-start
        }
    
        working directory = /var/tmp
    
        stdout path = /usr/local/var/log/com.skynx.skynx-node.out.log
        stderr path = /usr/local/var/log/com.skynx.skynx-node.err.log
        default environment = {
            PATH => /usr/bin:/bin:/usr/sbin:/sbin
        }
    
        environment = {
            XPC_SERVICE_NAME => com.skynx.skynx-node
        }
    
        domain = system
        minimum runtime = 10
        exit timeout = 5
        runs = 1
        pid = 3925
        immediate reason = speculative
        forks = 28
        execs = 1
        initialized = 1
        trampolined = 1
        started suspended = 0
        proxy started suspended = 0
        last exit code = (never exited)
    
        spawn type = daemon (3)
        jetsam priority = 4
        jetsam memory limit (active) = (unlimited)
        jetsam memory limit (inactive) = (unlimited)
        jetsamproperties category = daemon
        submitted job. ignore execute allowed
        jetsam thread limit = 32
        cpumon = default
    
        properties = keepalive | runatload | inferred program
    }
    
Uninstall macOS skynx-node

To remove skynx-node from the system, use the following commands:

sudo /opt/skynx/libexec/skynx-node service-uninstall
sudo rm /opt/skynx/libexec/skynx-node
sudo rm /opt/skynx/etc/skynx-node.yml
sudo rm -rf /opt/skynx

Windows Installation

Windows binary installation with curl

  • Open the Command Prompt as Administrator and create a folder for skynx.

    mkdir 'C:\Program Files\skynx'
    
  • Download the latest release into the skynx folder.

    curl -LO "https://dl.skynx.com/binaries/stable/latest/windows/amd64/skynx-node.exe"
    
  • Validate the binary (optional).

    Download the skynx-node.exe checksum file:

    curl -LO "https://dl.skynx.com/binaries/stable/latest/windows/amd64/skynx-node.exe_checksum.sha256"
    

    Validate the skynx-node.exe binary against the checksum file:

    • Using Command Prompt to manually compare CertUtil's output to the checksum file downloaded:

      CertUtil -hashfile skynx-node.exe SHA256
      type skynx-node.exe_checksum.sha256
      
    • Using PowerShell to automate the verification using the -eq operator to get a True or False result:

      $($(CertUtil -hashfile .\skynx-node.exe SHA256)[1] -replace " ", "") -eq $(type .\skynx-node.exe_checksum.sha256).split(" ")[0]
      
  • Download the wintun driver from https://wintun.net.

  • Unzip the wintun archive and copy the AMD64 binary wintun.dll to C:\Program Files\skynx.

  • Use an editor to create the skynx-node configuration file C:\Program Files\skynx\skynx-node.yml.

    See the skynx-node configuration reference to find all the configuration options.

  • Install the skynx-node agent as a Windows service.

    The instructions below assume that the wintun.dll, skynx-node.exe and skynx-node.yml files are stored in C:\Program Files\skynx.

    .\skynx-node.exe service-install --config "C:\Program Files\skynx\skynx-node.yml"
    

    Make sure to provide the absolute path of the skynx-node.yml configuration file, otherwise the Windows service may fail to start.

  • Start the service.

    net start "skynx-node"
    
Uninstall Windows skynx-node

To remove skynx-node from the system, open the Command Prompt as Administrator and use the following commands:

net stop "skynx-node"
cd 'C:\Program Files\skynx'
.\skynx-node.exe service-uninstall
del *.*
cd ..
rmdir 'C:\Program Files\skynx'

Artifacts Verification

Binaries

All artifacts are checksummed and the checksum file is signed with cosign.

  • Download the files you want and the checksums.txt, checksum.txt.pem and checksums.txt.sig files from the Releases page:

  • Verify the signature:

    cosign verify-blob \
        --cert checksums.txt.pem \
        --signature checksums.txt.sig \
        checksums.txt
    
  • If the signature is valid, you can then verify the SHA256 sums match with the downloaded binary:

    sha256sum --ignore-missing -c checksums.txt
    

Docker Images

Our Docker images are signed with cosign.

Verify the signatures:

COSIGN_EXPERIMENTAL=1 cosign verify skynx/skynx-node

Configuration

See the skynx-node configuration reference to find all the configuration options.

Running with Docker

You can also run the skynx-node agent as a Docker container. See examples below.

Registries:

  • skynx/skynx-node
  • ghcr.io/skynx-io/skynx-node

Example usage:

docker run -d --restart=always \
  --net=host \
  --cap-add=net_admin \
  --device=/dev/net/tun \
  --name skynx-node \
  -v /etc/skynx:/etc/skynx:ro \
  skynx/skynx-node:latest start

Community

Have questions, need support and or just want to talk about skynx?

Get in touch with the skynx community!

Discord GitHub Discussions X Mastodon

Code of Conduct

Participation in the skynx community is governed by the Contributor Covenant Code of Conduct. Please make sure to read and observe this document.

Please make sure to read and observe this document. By participating, you are expected to uphold this code.

License

The skynx open source projects are licensed under the Apache 2.0 License.

FOSSA Status

FAQs

Package last updated on 02 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts