Getting Started with Windows at Thingylabs


Written by Sebastian 🧑

Usually people at Thingylabs use Chrome OS for their development tasks. Especially with the latest update which added a native Linux subsystem that can easily be purged and reset.

However, if you'd like to use Windows - here is how:

Install Chocolatey!

A package manager is the way to go if you want to keep software on your computer up-to-date without a lot of manual fiddling. Package managers also provide versioning of software so you can install any version you like. That may be useful if a new version of a software (let's say NodeJS for example) breaks your code but worked fine in an older version. Another use case where this might be interesting is if a software accidentally pushed an update that included errors. Package managers help you with all these problems.

Sadly Windows does not come with any preinstalled. But we can install the package manager called Chocolatey pretty easily!

To install Chocolatey follow their installation instructions and test it afterwards by typing `choco` into your console. The installation is successful if it prints something like:

Chocolatey v0.10.15
Please run 'choco -?' or 'choco <command> -?' for help menu.

Now you are ready to install some software!


Carousel imageCarousel imageCarousel imageCarousel image


Install required software tools

Chocolatey's packages are maintained by the community which sadly means that not every software can be found there. To see which software is available you should check their package list. You will find a lot of free and/or open source software there.

So let's get started (run PowerShell with administrator privileges so it can install software on your system):

choco install -y git nodejs docker-cli docker-desktop docker-compose vscode yggdrasil rust mingw

This will install Git, NodeJS, Docker and docker-compose, Visual Studio Code, Yggdrasil, Rust and MinGW.

After a successful installation you should probably do a reboot (it's still Windows and better be safe than sorry).

With Chocolatey you can update all your software installed with it by typing:

cup all

That command can be somewhat translated into choco update all my packages.

Another useful command if you want to install a specific version of a package (in this example NodeJS in the version 9.5.0):

choco install nodejs --version=9.5.0 --allow-downgrade


Git configuration

Git pretty much works out of the box but you should configure it for your user:

git config --global user.name "Your Name"
git config --global user.email youremail@example.com

Now your commits will be personalized to you.


Yggdrasil configuration

To connect with other Yggdrasil peers you need a configuration file. The Yggdrasil console command can use the `-genconf` flag to print a configuration file to STDOUT. To store it in a file we pipe it into a file:

yggdrasil -genconf > /your-desired-path/yggdrasil.conf

Now open this configuration file with your freshly installed Visual Studio Code to edit it:

code /your-desired-path/yggdrasil.conf

At the top of the file you will find an empty array with the key `Peers`. To connect with Thingylabs' Yggdrasil node you need to add `ygg.tlbs.ai` to that `Peers` array. It should then look like this:

Peers: [
  ygg.tlbs.ai
]

Save the configuration file and open Windows Task Manager and go to the `Services` tab then scroll down in the list to find the service called `Yggdrasil` and restart it with right click -> restart.

Now back in your console start Yggdrasil with the just created configuration file:

yggdrasil -useconffile /your-desired-path/yggdrasil.conf


If it all goes well you are now successfully connected via Yggdrasil to Thingylab's node. You can validate this by pinging `ygg-only.tlbs.ai` which is only accessible from within the Yggdrasil network:

ping ygg-only.tlbs.ai


Conclusion

While Windows still is not the ideal system to develop software (especially backend code) at Thingylabs it is possible! Using this article everyone should be able to set up their Windows workstation and get to the fun part as fast as possible.


β‡’ Up next:


↩ β€’ Table of contents