mo-install Reference / v5.0.0

Rocky Linux 8

miniOrange On-Premise IDP 5.0.0 installation runbook for Rocky Linux 8.

Package mgr
dnf
Init
systemd
Release
2021
Choose your database backend
Section 1

System Prep

Before installing any service, update and install the tools mo-installer and moctl depend on. Rocky Linux 8 is binary-compatible with RHEL 8.

1.1 Update the system

sudo dnf update -y
sudo reboot

1.2 Enable EPEL and PowerTools

sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled powertools
sudo dnf update -y

1.3 Install required utilities

sudo dnf install -y unzip wget curl jq net-tools vim bash-completion tar lsof telnet firewalld

1.4 Configure the firewall

sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-port={8080,8070,8071,8072,6379,5672,15672}/tcp
sudo firewall-cmd --reload

1.5 Set SELinux to permissive

sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
Section 2

Database

Section 3

Erlang + RabbitMQ

RabbitMQ is used by the IDP for internal messaging between microservices. It requires Erlang. Both are installed from the official RabbitMQ RPM releases on GitHub.

Note. RabbitMQ is not bundled with mo-installer and must be installed before running the installer.

3.1 Install Erlang 26

sudo dnf install -y \
  https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.2/erlang-26.2.5.2-1.el8.x86_64.rpm \
  --nogpgcheck

3.2 Install RabbitMQ 3.13.7

sudo dnf install -y \
  https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-3.13.7-1.el8.noarch.rpm \
  --nogpgcheck

3.3 Enable and start the service

sudo systemctl enable --now rabbitmq-server
sudo systemctl status rabbitmq-server

3.4 Enable the management plugin

sudo rabbitmq-plugins enable rabbitmq_management
sudo systemctl restart rabbitmq-server

3.5 Verify

sudo rabbitmqctl status
sudo ss -tulnp | grep 5672

Expected:

LISTEN 0  128  *:5672

Values for the /initialize wizard

FieldValue
RabbitMQ Host127.0.0.1
AMQP Port5672
Mgmt UI Port15672
Default Loginguest / guest
Section 4

mo-installer

The installer bundles Java 17 and Redis. You don’t install either manually. The installer auto-detects the OS and deploys the IDP services into /opt/tomcat/.

4.1 Download the installer

cd /opt
sudo wget https://miniorange.s3.us-east-1.amazonaws.com/public/installers/mo-installer-5.0.0.zip
sudo unzip mo-installer-5.0.0.zip -d mo-installer-5.0.0
cd /opt/mo-installer-5.0.0
ls -la

You should see:

.env.sh          Environment configuration (review before sourcing)
mo-installer.sh  Main installer script
moctl/           moctl CLI and bash completion

4.2 Source the environment file

less .env.sh
source .env.sh

Note. In v5.0.0, .env.sh does not contain database connection details. The DB connection is configured later through the browser UI at /initialize.

4.3 Set execute permissions

sudo chmod +x mo-installer.sh moctl/*.sh

4.4 Run the installer

sudo bash mo-installer.sh

The installer covers:

  • Java 17 — installed automatically
  • Redis — installed and configured automatically
  • moctl — installed to /usr/bin/moctl with tab completion
  • IDP services — deployed to /opt/tomcat/

At the end of the run:

Next step: moctl service start

4.5 Start the four core services

moctl service start
ServicePortPurpose
configserver8071Configuration
eurekaserver8070Service registry
gatekeeper8072API gateway
miniorange8080Main IDP service

4.6 Check service status

moctl service status
SymbolMeaning
● runningActive and registered in Eureka
△ registeringActive but not yet registered; wait and recheck
△ stoppedInactive
✗ failedCheck moctl log <service>

4.7 Open /initialize in a browser

https://<SERVER_IP>/initialize

You will see a self-signed certificate warning. Proceed past it.

Enter the values from the Database section above, plus Redis (127.0.0.1:6379, no password by default) and RabbitMQ (Section 3 values).

After the wizard completes, the dashboard loads. Navigate to Settings → Base URL and set it to your final domain:

https://<your-domain>

4.8 Restart all services

moctl service restart

This step is required to start the secondary services that depend on the completed schema. Wait 1–2 minutes for everything to register.

Section 5

Verify & Service Enablement

5.1 Full service status

moctl service status

Every service should show ● running or ● reachable. If a service shows △ registering, wait 30 seconds and re-run.

5.2 Full diagnostics

moctl diagnose

Expected output includes:

Oracle connectivity reachable    (or Database connectivity reachable for non-Oracle)
Redis reachable
RabbitMQ reachable

5.3 Individual service status

systemctl status mo-idp-miniorange.service
systemctl status redis
systemctl status rabbitmq-server

5.4 Check all bound ports

sudo ss -tulnp | egrep '8080|8070|8071|8072|6379|5672'

For your DB:

DBPort
PostgreSQL5432
MySQL3306
MSSQL1433
Oracle1521

5.5 Preflight

moctl pre

Validation checklist

Run through this list to confirm a healthy deployment:

ValidationOK
DB port active and listening
Redis reachable
RabbitMQ reachable on port 5672
miniOrange UI accessible via browser
(Oracle) ORCLPDB1 in READ WRITE state
moctl diagnose — all services green
Services configured for auto-start

Common issues

Issue: ORA-01034: ORACLE not available (Oracle only)

The DB isn’t started.

sudo -i -u oracle bash -c "sqlplus -S / as sysdba <<< 'STARTUP;'"

Issue: Listener supports no services (Oracle only)

The DB started after the listener, or the PDB isn’t open.

sudo -i -u oracle bash -c "sqlplus -S / as sysdba" <<'SQL'
ALTER PLUGGABLE DATABASE ALL OPEN;
SQL
sudo -i -u oracle bash -c "lsnrctl status"

Issue: Cannot connect to ORCLPDB1 (Oracle only)

You used SID mode instead of Service Name mode in the UI. In the wizard, set SID/Service = Service and Service Name = ORCLPDB1.

Issue: RabbitMQ reachable: false

sudo systemctl restart rabbitmq-server
sudo ss -tulnp | grep 5672
sudo rabbitmqctl status

Issue: miniOrange version shows 1.0.0

The schema migration didn’t complete. Connect to the DB and check tables exist; if not, restart all services and retry the initialize step.

Issue: Tomcat stale PID after a crash

sudo rm -f /opt/tomcat/latest/temp/*.pid
moctl service restart miniorange