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 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:
- Ensure
systemd
is available - Detect the package type
- Download and install the
moriod-repo
package - Update the list of available software
- Install the
moriod
package
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 - Detect the package type
- Download the
moriod-repo
package - Update the list of available software
- Install the
moriod
package
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
.
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:
- On APT-based systems
- On RPM-based systems
curl https://apt.repo.morio.it/setup-moriod-repo.deb -o ./setup-moriod-repo.deb
sudo apt install -y ./setup-moriod-repo.deb
curl https://rpm.repo.morio.it/setup-moriod-repo.rpm -o ./setup-moriod-repo.rpm
sudo yum install -y ./setup-moriod-repo.rpm
The first line downloads the package, from these URLS:
- For APT-based systems: https://apt.repo.morio.it/setup-moriod-repo.deb
- For RPM-based systems: https://rpm.repo.morio.it/setup-moriod-repo.rpm
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:
- On APT-based systems
- On RPM-based systems
sudo apt update
sudo yum clean expire-cache
sudo yum check-update
Install the moriod
packageβ
Now we can install the moriod
package:
- On APT-based systems
- On RPM-based systems
sudo apt install -y moriod
sudo yum 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.
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.