Skip to main content

Morio Installation Guide

This guide covers the various ways you can install Morio, from fully automated, to completely manual.

When we say install Morio we mean install moriod, the Morio distribution that sets up a Morio node.

Morio release channels

Morio releases are provided through different channels that each serve their specific purpose.

πŸ“¦ Production​

This is the default channel. It provides stable releases that have been tested and gone through an incubation period in the canary channel.

Use this channel unless you have specific reasons not to.

🐣 Canary​

The canary channel is where packages stay a while before they graduate to production. A canary release allows you to ensure the upcoming release works as expected in your specific environment, and limits the blast radius in case a problem is not caught in testing.

When no issues come up during a canary release's incubation period, it is promoted to production.

We recommend to run the canary release on a staging instance.

πŸ’£ Testing​

This channel is used for our integration tests, as well as by developers of and contributors to Morio to validate fixes or new features.

When a release in testing is validated, it graduates to canary.

The testing channel is not intended to be used for real deployments.

Fully automated​

To install a Morio node, run this command as a user with sudo permissions:

curl https://install.morio.it/ | bash

This will run through the following steps:

Alternatively, you can run all of these steps manually, as outlined below.

Manual using our packages​

To install manually, we will go through the same steps as the install script:

Ensure systemd is available​

To install Morio using our packages, systemd is a dependency.

Make sure your system has systemd by running:

systemctl -h

If you get a bunch of output on how to use systemctl, you have systemd.

TIP

If you do not have systemd on your system, you can still do a fully manual install of Morio.

Determine the package type​

We provide .deb packages for APT-based systems, like Debian or Ubuntu, as well as .rpm packages for RPM-based systems like RedHat, RockyLinux, or Fedora.

apt -h

If you get a bunch of output about the apt packages manager, you are on an APT-based system. If not, you are probably on an RPM-based system.

Download and install the moriod-repo package​

Download the moriod-repo package, and then install it:

curl https://apt.repo.morio.it/setup-moriod-repo.deb -o ./setup-moriod-repo.deb
sudo apt install -y ./setup-moriod-repo.deb

The first line downloads the package, from these URLS:

The second line installs it.

Update the list of available software​

The moriod-repo package we just install adds a new software repository. Before we can install software from it, we need to update the list of available packages:

sudo apt update

Install the moriod package​

Now we can install the moriod package:

sudo apt install -y moriod

This will create a new systemd service that will start Morio.

Fully manual​

For a fully manual install of Morio, we are going to create the Morio service by hand, as well as adjust some of its configuration.

FIXME
Explain this in more detail

You can use the example below as-is, or update it according to your needs:

docker run --rm \
--name=core \
--hostname=core \
--network=morionet \
--network-alias=core \
--init \
-v "/var/run/docker.sock:/var/run/docker.sock" \
-v "/etc/morio:/etc/morio" \
-v "/usr/share/morio:/morio/data" \
-v "/var/log/morio:/var/log/morio" \
-e "MORIO_CORE_LOG_LEVEL=warn \
-e "NODE_ENV=production" \
itsmorio/core:latest

When the service is stopped, we recommend running:

docker rm -f api ui proxy

If not, the Morio UI and API will remain up, but won’t function properly.