Skip to main content

Rocky Linux Image (Applicable for On Premise only)

Asaf Cohen avatar
Written by Asaf Cohen
Updated over a week ago

First Boot

After importing the OVA, follow these steps for your initial setup:

Logging In

The image has SSH server installed and configured. Login credentials will be provided separately for security reasons.

Setting Up Networking

Network Interface

By default, networking is set to DHCP with DNS servers 8.8.8.8 and 1.1.1.1. Modify these settings to match your network configuration using the nmtui utility.

For more information, refer to the Rocky Linux Network Configuration Guide.

Setting up NTP and timezone

Proper time synchronization is crucial for system operations and logging. Follow these steps to set up NTP (Network Time Protocol) and configure the correct timezone for your Rocky Linux image.

Configuring NTP

  1. Verify that Chrony is running and synchronizing:

    chronyc tracking
  2. To configure NTP servers, edit the /etc/chrony.conf file:

    sudo nano /etc/chrony.conf

  3. Add or modify the server lines to use your preferred NTP servers, for example:

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org

4. Save the file and restart the Chrony service:

sudo systemctl restart chronyd

Setting the Timezone

  1. List available timezones:

    timedatectl list-timezones
  2. Set your desired timezone:

    sudo timedatectl set-timezone Your/Timezone

    Replace Your/Timezone with the appropriate timezone (e.g., America/New_York).

  1. Verify the timezone setting:

    timedatectl

Updating the System Clock

After configuring NTP and setting the timezone, update the system clock:

sudo hwclock --systohc

This command synchronizes the hardware clock with the system clock.

Verifying the Configuration

To ensure everything is set up correctly:

  1. Check the current time and timezone:

    date
  2. Verify NTP synchronization:

    chronyc sources

This should show a list of NTP sources and their status.

Mapping Hostnames

The image contains two web applications:

  1. Next Plus

  2. Metabase (BI Service)

Create two DNS A records and map them to the server IP. For example:

  • nextplus.local

  • nextplus-analytics.local

Modify the /opt/nextplus/.env file with the newly created records:

NEXTPLUS_SITE_URL: http://nextplus.local (include protocol, no trailing slash) 

DEFAULT_HOST: nextplus.local (hostname only, no trailing slash)

VIRTUAL_HOST: nextplus.local (hostname only, no trailing slash)

METABASE_VIRTUAL_HOST: nextplus-analytics.local (hostname only, no trailing slash)

NEXTPLUS_METABASE_SITE_URL: http://nextplus-analytics.local (include protocol, no trailing slash)

Starting Web Services

Navigate to the /opt/nextplus directory and execute the following commands:

docker-compose up -d d
docker compose -f bi.yml up -d

Verify that you can access both hostnames from your browser (may take up to 1 minute to become accessible).

(Optional) Setup SSL

To enable HTTPS:

  1. Place .crt and .key files under /srv/nginx/data/certs/

  2. Name the files according to the hostname:

    • nextplus.local.crt

    • nextplus.local.key

    • nextplus-analytics.local.crt

    • nextplus-analytics.local.key

  3. Restart the nginx webserver:

    docker restart nextplus-nginx
  4. Update the .env file to use the HTTPS protocol.

Setting up SMTP

Next Plus

  1. Open Next Plus in your browser

  2. Navigate to Settings -> System -> SMTP Settings

  3. Set up the SMTP connection details

  4. Send a test email and save the settings

Metabase

  1. Open Metabase in your browser

  2. Navigate to Settings -> Admin Settings -> Email

  3. Click on "Edit configuration"

  4. Set up the SMTP connection details

  5. Send a test email and save the settings

Getting Logs

View all running Docker containers:

docker ps

View logs for a specific container:

docker logs CONTAINER_NAME

Useful flags:

  • -f: Follow log output

  • --tail: Show only the last N lines of output


Version Upgrade Guide (Online & Offline)

Before You Start

  1. Maintenance window – schedule a short window (users will be logged out during restart).

  2. Full backup – database, the uploads directory, and the whole /opt/nextplus directory (including the current .env).

  3. Verify disk space – enough free space for one extra image + backup (image size + ~30%).

  4. Note current version – record existing NEXTPLUS_TAG for rollback.


Step 1 – Obtain the New Image (Choose ONE Path)

There are two environment types:

  • Online-capable server – has outbound Internet to the container registry.

  • Offline / Air‑gapped server – cannot pull images directly.

Path A: Online Pull (Preferred)

  1. Get the target version (e.g. 1.12.61) from release email.

  2. (Optional) Pre‑pull to reduce downtime:

    docker pull nextplus/nextplus:<target-version>

    (If you skip this, Docker Compose will pull during restart.)

  3. Proceed to Step 2 – Update the Environment File.

Path B: Offline / Air‑Gapped

  1. Receive the upgrade ZIP (includes the pre‑built image tar + NEXTPLUS_TAG file).

  2. Transfer it to the server (e.g. /tmp).

  3. Extract & load:

    unzip nextplus_upgrade.zip -d /tmp/nextplus_upgrade
    docker image load -i /tmp/nextplus_upgrade/nextplus-<version>.tar.gz
  4. (Optional) Verify image is present:

    docker images | grep nextplus | grep <version>
  5. Proceed to Step 2 – Update the Environment File.


Step 2 – Update the Environment File

cd /opt/nextplus 
nano .env # or your preferred editor

Locate the line starting with NEXTPLUS_TAG= and set it to the target version. Example:

NEXTPLUS_TAG=1.12.61

Save and exit.


Step 3 – Restart Nextplus

docker-compose down # optional but ensures a clean stop docker-compose up -d
  • Online path: If pre‑pulled, it uses the cached image; otherwise it pulls now.

  • Offline path: Uses the loaded image tar you imported.


Step 4 – Post‑Upgrade Checks

  1. Logs – watch for errors:

    docker-compose logs -f nextplus-node1

  2. UI Version – Web UI → Settings → License shows new version.

  3. Smoke Test – login, core workflows, OPC UA connectivity, file upload.

  4. Rollback readiness – keep previous image & backups ≥ 7 days.

Optional Smoke Test Checklist

Area

Check

Auth

Login/logout works

DB

Critical data visible

File Uploads

Upload & download a test file

Integrations

OPC UA / external connectors respond


Step 5 – Rollback (If Needed)

  1. docker-compose down

  2. Edit .env: revert NEXTPLUS_TAG to previous version.

  3. docker-compose up -d

  4. If migrations incompatible: restore DB + uploads + /opt/nextplus from backup.


Troubleshooting

Symptom

Possible Cause

Quick Fix

Containers refuse to start

Wrong NEXTPLUS_TAG / missing image

Correct .env; ensure image exists (docker images); restart

Image pull timeout (online)

Network / DNS / registry issue

Retry; check firewall/DNS; switch to offline package if needed

docker image load fails

Corrupted ZIP / incomplete transfer

Re-transfer; verify checksum (if provided)

DB migration errors

Missing or corrupted backup / schema drift

Restore backup; contact support

Version unchanged in UI

Forgot to update .env or restart

Update tag; rerun docker-compose up -d


Done! Your Next Plus instance should now be running the target version.

Upgrading Data Modeler Service

  1. Load the new Docker image:

    docker image load -i filename.gz
  2. Navigate to the Data Modeling directory:

    cd /opt/nextplus/data-modeling
  3. Restart the service:

    docker-compose up -d

Manually Restart All Services

docker-compose -f /opt/nextplus/docker-compose.yml down 
docker-compose -f /opt/nextplus/docker-compose.yml up -d
docker-compose -f /opt/nextplus/bi.yml down
docker-compose -f /opt/nextplus/bi.yml up -d
docker-compose -f /opt/nextplus/microservices.yml down
docker-compose -f /opt/nextplus/microservices.yml up -d
docker-compose -f /opt/nextplus/data-modeling/docker-compose.yml down docker-compose -f /opt/nextplus/data-modeling/docker-compose.yml up -d
Did this answer your question?