Skip to content

Installation

This guide will help you install FuryMesh on your system.

Prerequisites

Before installing FuryMesh, ensure you have the following prerequisites:

  • Go 1.20 or later
  • Git
  • A C compiler (for some dependencies)

Installing from Source

Clone the Repository

git clone https://github.com/TFMV/furymesh.git
cd furymesh

Build the Application

# Build the FuryMesh application
go build -o furymesh cmd/furymesh/main.go

Install the Application (Optional)

To make FuryMesh available system-wide:

# On Linux/macOS
sudo cp furymesh /usr/local/bin/

# On Windows (run as Administrator)
copy furymesh.exe C:\Windows\System32\

Run Tests

To ensure everything is working correctly, run the tests:

go test ./...

Using Pre-built Binaries

You can download pre-built binaries for your platform from the releases page.

Linux

# Download the latest release
curl -L https://github.com/TFMV/furymesh/releases/latest/download/furymesh-linux-amd64.tar.gz -o furymesh.tar.gz

# Extract the archive
tar -xzf furymesh.tar.gz

# Make the binary executable
chmod +x furymesh

# Move to a directory in your PATH (optional)
sudo mv furymesh /usr/local/bin/

macOS

# Download the latest release
curl -L https://github.com/TFMV/furymesh/releases/latest/download/furymesh-darwin-amd64.tar.gz -o furymesh.tar.gz

# Extract the archive
tar -xzf furymesh.tar.gz

# Make the binary executable
chmod +x furymesh

# Move to a directory in your PATH (optional)
sudo mv furymesh /usr/local/bin/

Windows

  1. Download the latest release from the releases page
  2. Extract the ZIP file
  3. Run furymesh.exe from the command prompt or PowerShell

Docker Installation

FuryMesh can also be run in a Docker container:

# Pull the Docker image
docker pull tfmv/furymesh:latest

# Run the container
docker run -p 8080:8080 -p 3478:3478/udp -v /path/to/data:/data tfmv/furymesh

Platform-Specific Instructions

Linux

On Linux, you may need to install additional dependencies:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y build-essential libssl-dev

# CentOS/RHEL
sudo yum install -y gcc openssl-devel

macOS

On macOS, you can use Homebrew to install the required dependencies:

brew install go openssl

Windows

On Windows, you'll need:

  1. Go
  2. Git for Windows
  3. MinGW or MSYS2

Verifying Installation

To verify that FuryMesh is installed correctly, run:

furymesh --version

You should see output indicating the version of FuryMesh.

Basic Usage

Once installed, you can start a FuryMesh node:

# Start a node with default settings
furymesh start

# Start a node with custom settings
furymesh start --port 8080 --data-dir ./data

Troubleshooting

Common Issues

Build Errors

If you encounter build errors related to CGO, try setting:

export CGO_ENABLED=1

WebRTC Issues

If you have issues with WebRTC connections:

  1. Ensure your firewall allows UDP traffic on the required ports
  2. Check that your STUN/TURN server configuration is correct

Permission Issues

On Linux, if you encounter permission issues when binding to ports:

# Run with elevated privileges for ports < 1024
sudo furymesh start --port 80

# Or configure to use higher ports in the configuration file
furymesh start --port 8080

Getting Help

If you encounter any issues not covered here, please:

  1. Check the GitHub Issues for similar problems
  2. Join our Discord community for real-time help (not yet setup)
  3. Open a new issue with detailed information about your problem

Next Steps

Now that you have FuryMesh installed, proceed to the Quick Start guide to learn how to use it.