+++
title = 'Running a Yggdrasil peer on a shoestring budget'
date = 2024-11-23T11:10:19+02:00
draft = false
+++

Recently I have been seeing this weird "Yggdrasil Network" mentioned alongside Tor and I2P. A few days ago I have started researching it, and it is really cool. Basically, it is a mesh network, but it encrypts your traffic. I think that's really cool, and while not really a privacy tool, I'd say it would be a great way to avoid any interference in your traffic by your ISP or similar.

So I decided that I should probably make a Yggdrasil peer. Being on a shoestring budget (as I've mentioned in the title), I decided to go with Gullo's Hosting's cheapest NAT OpenVZ VPS in Bulgaria, which should be fine, as Yggdrasil doesn't need a specific port. I also decided to go with Debian 11, because it would have a smaller footprint compared to Debian 12, and even a few megabytes would go a long way given that we have 2GB of storage... yikes!

## Step 0. Configure the vps properly
I have did a mistake when initially configuring Yggdrasil: I didn't enable TUN/TAP. To be completely honest, I didn't even know that the VPS had any control panel other than the one in the billing panel. I only learnt of this when I was panicking about the fact that Yggdrasil would crash, as it couldn't find /dev/net/tun. For a bit I thought it was an issue with Gullo, but I soon learnt that it was actually an issue with me being stupid and not enabling that in the VPS' panel. Oops! Make sure to do that if you use Gullo's Hosting, like I am.

## Step 1. Install Yggdrasil
The Yggdrasil documentation has a pretty good guide which you can follow [here](https://yggdrasil-network.github.io/installation.html).

## Step 2. Configure Yggdrasil
This is the more tricky part. The first thing I did was get what port range I was allocated by Gullo's Hosting, which can be done easily. I then decided to peer with a bunch of peers discovered [here](https://publicpeers.neilalexander.dev/).

### Step 2.a Peering with others
You have to peer with others to access the wider Yggdrasil Network. You can find peers [here](https://publicpeers.neilalexander.dev/) and you add them to your `/etc/yggdrasil/yggdrasil.conf` like so:
```
    Peers: [
        protocol://peer:port
    ]
```

### Step 2.b Making your server be able to peer with others
This is pretty simple. You just choose a random port within the range provided by Gullo and add it your config like so:
```
    Listen: [
        tcp://0.0.0.0:port
        tls://0.0.0.0:port
    ]
``` 

## Step 3. Profit
Now you've succesfully configured a Yggdrasil peer for just $3.50/year! Wow! To see my finished work, or to peer with me, use `tcp://bg1-ygg.kogaionon.xyz:13710` or `tls://bg1-ygg.kogaionon.xyz:13711`.

Also, this site is now available over Yggdrasil <a href="http://[201:acd2:6e63:671b:f32f:8a4:d7d6:3537]">here</a>!