# Setup

# WirtBot® VPS

So you want a WirtBot, I can totally understand that.

You will need a few things to be able to set one up.

# Prerequisites

  • A server with a public IP on the internet. Simply rent a cheap VPS
  • Root access on this server
  • Knowledge of how to execute commands on the terminal

When that is all sorted make sure that you have an SSH key. If you do not have one yet you can follow this tutorial (opens new window). You will need the content of the .pub file that will be created. The installer will ask for the contents of that file.

# Dependencies

The following programs are needed for the initail install of the WirtBot and to keep it up to date later on.

# Installer

Alright, time to get the installer: npm install -g @wirtbot/installer.

Once installed run wirtbot-installer and the installer will now take you through the rest of the setup. After answering all the questions wait until the setup is done, this can take up to 20 minutes. Just be patient and follow the things that are printed to the terminal if you like to know what is happening.

And then you are done with the first part. Congrats, your private WirtBot is set up.

The installer will have created a few files in the directory you ran it in. Save them to make future updating a breeze!

# First access

But how do you access it? After all the WirtBot is completely hidden on the normal internet.

Simple: during the setup an initial network is set up automatically that you can join with the UseThisWireGuardConfigurationToConnectToYourWirtBot.conf file that was created by the installer. Use this with the WireGuard® client for your system, you can check this site and hopefully it will have a guide for your operating system as well.

To test that everything worked head to wirtbot.wirt.internal (opens new window). This should be taking you to the, still empty, WirtBot interface.

# Getting some data into the interface

So the Dashboard is empty, but a network already exists. How do get access to that information?

At the bottom you will find the import functionality. Choose the ImportThisFileIntoYourWirtBotInterface.json that the installer created and import it.

Do not skip this import, besides the initial network configuration this imports cryptographic keys that make sure that only your computer can configure the WirtBot, and everyone else in your network simply sees an empty Dashboard.

Congrats. You are done, or well, ready to go and build the network of your dreams!

Good luck, have fun and maybe share a few cool projects you were able to put into existence.

# Updating

Run npm install -g @wirtbot/installer to update the installer with the newest changes.

Now run it with wirtbot-installer and choose the update option.

# Docker

The WirtBot docker image needs NET_ADMIN capabilities and:

  • Linux Kernel > 5.6 || WireGuard® Kernel Module

Here is an example docker-compose.yml for a WirtBot with DNS:

version: "3.4"

services:
  WirtBot:
    image: bmff/wirtbot:test
    network_mode: host
    ports:
      - 80:80
      - 3030:3030
      - 10101:10101/udp
    restart: "unless-stopped"
    cap_add:
      - NET_ADMIN
    volumes:
      - /etc/wireguard:/etc/wireguard
      - ./data:/dns
    environment:
      - "PUBLIC_KEY={{ wirtui_public_key }}"
      - "PORT=3030"
      - "MANAGED_DNS_ENABLED=1"
      - "MANAGED_DNS_DEVICE_FILE=/dns/Corefile"
      - "CONFIG_PATH=/etc/wireguard/server.conf"
  coredns:
    network_mode: host
    image: coredns/coredns
    ports:
      - 53:53/udp
    restart: "unless-stopped"
    working_dir: /v
    volumes:
      - ./data:/v

To see the most up to date version to run the WirtBot also check this file (opens new window).