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
Verify that Chrony is running and synchronizing:
chronyc tracking
To configure NTP servers, edit the
/etc/chrony.conf
file:sudo nano /etc/chrony.conf
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
List available timezones:
timedatectl list-timezones
Set your desired timezone:
sudo timedatectl set-timezone Your/Timezone
Replace
Your/Timezone
with the appropriate timezone (e.g.,America/New_York
).
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:
Check the current time and timezone:
date
Verify NTP synchronization:
chronyc sources
This should show a list of NTP sources and their status.
Mapping Hostnames
The image contains two web applications:
Next Plus
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:
Place
.crt
and.key
files under/srv/nginx/data/certs/
Name the files according to the hostname:
nextplus.local.crt
nextplus.local.key
nextplus-analytics.local.crt
nextplus-analytics.local.key
Restart the nginx webserver:
docker restart nextplus-nginx
Update the
.env
file to use the HTTPS protocol.
Setting up SMTP
Next Plus
Open Next Plus in your browser
Navigate to Settings -> System -> SMTP Settings
Set up the SMTP connection details
Send a test email and save the settings
Metabase
Open Metabase in your browser
Navigate to Settings -> Admin Settings -> Email
Click on "Edit configuration"
Set up the SMTP connection details
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
Maintenance window – schedule a short window (users will be logged out during restart).
Full backup – database, the
uploads
directory, and the whole/opt/nextplus
directory (including the current.env
).Verify disk space – enough free space for one extra image + backup (image size + ~30%).
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)
Get the target version (e.g.
1.12.61
) from release email.(Optional) Pre‑pull to reduce downtime:
docker pull nextplus/nextplus:<target-version>
(If you skip this, Docker Compose will pull during restart.)
Proceed to Step 2 – Update the Environment File.
Path B: Offline / Air‑Gapped
Receive the upgrade ZIP (includes the pre‑built image tar +
NEXTPLUS_TAG
file).Transfer it to the server (e.g.
/tmp
).Extract & load:
unzip nextplus_upgrade.zip -d /tmp/nextplus_upgrade
docker image load -i /tmp/nextplus_upgrade/nextplus-<version>.tar.gz(Optional) Verify image is present:
docker images | grep nextplus | grep <version>
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
Logs – watch for errors:
docker-compose logs -f nextplus-node1
UI Version – Web UI → Settings → License shows new version.
Smoke Test – login, core workflows, OPC UA connectivity, file upload.
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)
docker-compose down
Edit
.env
: revertNEXTPLUS_TAG
to previous version.docker-compose up -d
If migrations incompatible: restore DB + uploads +
/opt/nextplus
from backup.
Troubleshooting
Symptom | Possible Cause | Quick Fix |
Containers refuse to start | Wrong | Correct |
Image pull timeout (online) | Network / DNS / registry issue | Retry; check firewall/DNS; switch to offline package if needed |
| 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 | Update tag; rerun |
Done! Your Next Plus instance should now be running the target version.
Upgrading Data Modeler Service
Load the new Docker image:
docker image load -i filename.gz
Navigate to the Data Modeling directory:
cd /opt/nextplus/data-modeling
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