Installation

Table of Contents


Introduction

In this section, we cover how to install Mycelium. This guide can be done on a local machine and also on a full VM running on the TFGrid.

Currently, Linux, macOS and Windows are supported. On Windows, you must have wintun.dll in the same directory you are executing the binary from.

Considerations

You might need to run Mycelium as root, enable IPv6 at the OS level and disconnect your VPN.

Read the Troubleshooting section for more information.

Set Mycelium

  • Update the system
    apt update
    
  • Download the latest Mycelium release: https://github.com/threefoldtech/mycelium/releases/latest
    wget https://github.com/threefoldtech/mycelium/releases/download/v0.4.0/mycelium-x86_64-unknown-linux-musl.tar.gz
    
  • Extract Mycelium
    tar -xvf mycelium-x86_64-unknown-linux-musl.tar.gz
    
  • Move Mycelium to your path
    mv mycelium /usr/local/bin
    

Start Mycelium

You can start Mycelium

  • Start Mycelium
    mycelium --peers tcp://83.231.240.31:9651 quic://185.206.122.71:9651 --tun-name utun2
    
  • Open another terminal
  • Check the Mycelium connection information (address and public key)
    mycelium inspect --json
    

Use Mycelium

Once you've set Mycelium, you can use it to ping other addresses and also to connect into VMs running on the TFGrid.

  • Ping the VM from another machine with IPv6
    ping6 mycelium_address
    
  • SSH into a VM running on the TFGrid
    ssh root@vm_mycelium_address
    

Mycelium Service (optional)

You can create a systemd service to make sure Mycelium is always enabled and running.

  • Create a Mycelium service
    nano /etc/systemd/system/mycelium.service
    
  • Set the service and save the file
    [Unit]
    Description=End-2-end encrypted IPv6 overlay network
    Wants=network.target
    After=network.target
    Documentation=https://github.com/threefoldtech/mycelium
    
    [Service]
    ProtectHome=true
    ProtectSystem=true
    SyslogIdentifier=mycelium
    CapabilityBoundingSet=CAP_NET_ADMIN
    StateDirectory=mycelium
    StateDirectoryMode=0700
    ExecStartPre=+-/sbin/modprobe tun
    ExecStart=/usr/local/bin/mycelium --tun-name mycelium -k %S/mycelium/key.bin --peers tcp://146.185.93.83:9651 quic://83.231.240.31:9651 quic://185.206.122.71:9651 tcp://[2a04:f340:c0:71:28cc:b2ff:fe63:dd1c]:9651 tcp://[2001:728:1000:402:78d3:cdff:fe63:e07e]:9651 quic://[2a10:b600:1:0:ec4:7aff:fe30:8235]:9651
    Restart=always
    RestartSec=5
    TimeoutStopSec=5
    
    [Install]
    WantedBy=multi-user.target  
    
  • Enable the service
    systemctl daemon-reload
    systemctl enable mycelium
    systemctl start mycelium
    
  • Verify that the Mycelium service is properly running
    systemctl status mycelium
    

Systemd will start up the Mycelium, restart it if it ever crashes, and start it up automatically after any reboots.

Last change: 2024-04-19