The local server installation script handles the following:
- BOSSWAVE agent installation
- default entity and bankroll creation (bankroll requires external action)
- namespace configuration
- designated router authorization (requires external action)
- spawnpoint entity and spawnd installation, configuration
- watchdog installation:
- wdtop
- sdmon
For the XBOS server, we recommend installing a recent version of Ubuntu Server. You can use a standard installation procedure here. We use the following defaults (when prompted during the installation):
- Partitioning: use guided partition on the full disk (no need to configure LVM)
- Updates: No automatic updates
- Software Selection: add OpenSSH server in addition to standard system utilities
The configuration file config.sh
must be filled out before the installation script is run.
The local server installation script comes with a configuration file, which determines which steps run as well as establishes configuration parameters.
The segments of installation are explained below, and are marked as for a "personal install" (a computer not used as an XBOS server), a "server install", or both.
Download the template config file
curl -O https://raw.githubusercontent.com/SoftwareDefinedBuildings/XBOS/master/commissioning/config.sh
Edit this file according to the below specifications.
- for personal install
- for server install
You will configure the following in config.sh
:
# name + email address to be attached to configured BOSSWAVE objects
# if this contains spaces, make sure to use quotes
BW2_DEFAULT_CONTACT=
# path to entity to use as an administrative entity for configuring/interacting with services
# Leave blank to have the installer configure this
BW2_DEFAULT_ENTITY=
# path to entity to use for bankrolling BOSSWAVE operations
# Leave blank to have the installer configure this (it will default to $BW2_DEFAULT_ENTITY)
BW2_DEFAULT_BANKROLL=
# name to use for git commits to config repo
GIT_USER=
# email to use for git commits to config repo
GIT_EMAIL=
The XBOS installer runs the standard curl get.bw2.io/agent | bash
installation.
Interactive note: if your default entity does not have any Ether funds, the installer will pause and ask if you want to continue. The installer will output the BOSSWAVE address representing your public "bank account", so it is simple to ask someone for funds.
- for personal install
- for server install
Several supplementary tools are helpful for interacting with an XBOS deployment.
The XBOS installer can:
-
install the Go programming language (1.9)
- configure:
INSTALL_GO=true
- configure:
-
install the
spawnctl
tool for administrating and monitoring spawnpoint deployments:- configure:
# Requires Go INSTALL_SPAWNPOINT_CLIENT=true
- documentation
- configure:
-
install the
pundat
tool for configuring the data archiver- configure:
# Requires Go INSTALL_PUNDAT_CLIENT=true
- documentation
- configure:
- for server install
In XBOS, we strucutre the set of resources for a deployment site around a central namespace. A namespace is defined by a public/private key pair (VK/SK in BOSSWAVE parlance), and is referred to by an alias (a human-readable immutable alias of the public key). Additionally, a namespace must have a contract with a server for that server to be authorized to carry traffic for the namespace; this is how we configure a broker for the namespace.
The XBOS installer requires the following configuration
# set to false to ignore configuration for namespace
CONFIGURE_NAMESPACE=true
# path to entity to use as namespace authority.
# Leave blank to have the installer configure this
NAMESPACE_ENTITY=
# alias to use for the namespace.
# Leave blank to not configure an alias (or use the existing one for your provided NAMESPACE_ENTITY)
NAMESPACE_ALIAS=
# the VK of the designated router (DR) that will carry traffic for this namespace
# it is helpful to have the DR ready to make an offer. This will likely be given to you.
DESIGNATED_ROUTER_VK=
- for server install
The XBOS installer invokes the automated spawnpoint installer. This will configure an entity and spawnd service for a server.
The XBOS installer requires the following configuration:
# if true, install spawnd server
INSTALL_SPAWNPOINT_SERVER=true
# entity to run the spawnd daemon.
# Leave blank to have the installer configure this
SPAWND_ENTITY=
# Spawnpoint system config
SPAWND_MEM_ALLOC="4G"
SPAWND_CPU_SHARES=2048
- for server install
Watchdogs are a convenient way to track the health of deployed servers and services. The provided watchdogs monitor CPU, memory, disk space and uptime of core local services such as the BOSSWAVE agent and spawnd daemon.
The XBOS installer requires the following configuration:
# if true, install watchdog services (requires systemd)
INSTALL_WATCHDOGS=true
# need to provide a WD_TOKEN in order to configure watchdog services.
# This will be given to you
WD_TOKEN=
# need to provide the prefix for watchdog names.
# This will be given to you
WD_PREFIX=
Use the following installation script
curl -O https://raw.githubusercontent.com/SoftwareDefinedBuildings/XBOS/master/commissioning/install.sh
byobu new-session
./install.sh
Step-by-step instructions coming soon!