...
This guide provides instructions for deploying NMIS Suite with NMIS 9 and commercial Modules using either Quick Start or Docker Compose methods, with optional Apache reverse proxy configuration. The solution can be deployed either with a containerized MongoDB instance or configured to use an external MongoDB server.
...
Access to the internet to pull the latest, this is currently :v1.0 container image
Docker Engine (20.10.0 or newer)A valid UUID for the NMIS_CLUSTER_ID. This can be generated on any linux OS with “uuidgen”
Minimum Resource Requirements
...
MongoDB Container:
Additional 1GB RAM minimum
10GB storage for database files
Total system RAM: 4GB minimum
Method 1: Single Container Start
First you need to create a MongoDB database.
Pull the NMIS image:
Code Block | ||
---|---|---|
| ||
docker pull public.ecr.aws/n2x4v8j4/firstwave/nmis9_omk:v1.0 |
Start the container:
Code Block | ||
---|---|---|
| ||
docker run -d \
--name nmis \
-e NMIS_DB_USERNAME=root \
-e NMIS_DB_PASSWORD=example \
-e NMIS_DB_SERVER=mongodb.example.com \
-e NMIS_SERVER_NAME=example-host-1 \
-e NMIS_CLUSTER_ID=660f29ae-f150-4119-bf04-cd9296852449 \
-p 8080:8080 \
-p 8042:8042 \
public.ecr.aws/n2x4v8j4/firstwave/nmis9_omk:v1.0 |
Verify deployment:
Code Block | ||
---|---|---|
| ||
docker ps | grep nmis9
docker logs nmis9 |
...
Deployment Steps
Docker Compose
Please refer to the section ‘Persisting configs’ configuration files’ below if you wish to take and use the default configs from the container or mount in your own
...
Code Block | ||
---|---|---|
| ||
docker pull public.ecr.aws/n2x4v8j4/firstwave/nmis9_omk:latestv1.0 |
Create
docker-compose.yaml
:
Code Block | ||
---|---|---|
| ||
version: '3.4' services: mongo: image: mongo:64.04 restart: always healthcheck: test: echo 'db.runCommand("ping").ok' | mongo mongo:27017/test --quiet interval: 60s timeout: 60s retries: 5 start_period: 60s environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example volumes: - mongo_data:/var/lib/mongodb networks: - backend nmis: image: public.ecr.aws/n2x4v8j4/firstwave/nmis9_omk:v1.0 restart: always environment: NMIS_DB_USERNAME: root NMIS_DB_PASSWORD: example NMIS_DB_SERVER: mongo NMIS_SERVER_NAME: example-host-1 NMIS_CLUSTER_ID: 660f29ae-f150-4119-bf04-cd9296852449 depends_on: mongo: condition: service_healthy volumes: - log_data:/usr/local/nmis9/logs - var_data:/usr/local/nmis9/var - conf_data:/usr/local/nmis9/conf - database_data:/usr/local/nmis9/database # You can mount your own config files into volumes in the container but # you must ensure that the db config details match whats in this compose file # - ./app_conf/Config.nmis:/usr/local/nmis9/conf/Config.nmis # - ./app_conf/opCommon.json:/usr/local/omk/conf/opCommon.json # - ./app_conf/opLicense.json:/usr/local/omk/conf/opLicense.json ports: - "8080:8080" - "8042:8042" networks: - backend networks: backend: volumes: log_data: var_data: conf_data: database_data: mongo_data: |
...
But you can extend this to any file you want which is used by the nmis system, to do this:
create a directory named appconf app_conf (if you didn’t before) in the same directory you created the compose file in:
Code Block |
---|
mkdir -p appconf cd appconf sudo cp /path/to/Config.nmis . sudo cp /path/to/opCommon.json . sudo cp /path/to/opLicense.json . |
uncomment out the appconf app_conf volume mounts in the compose file
restart Restart the the container stackcontainers
If you wish to use the default configs that work out of the box with the containers, and modify them, you can copy them from the containers to your local machine.
...
MongoDB root password
NMIS admin credentials
**Important - to change the mongo password - please change it in the mongo database before changing any configurations or environment variables
docker exec -it container_name mongo -u root -p example
use admin
db.changeUserPassword("root", "new_password")
exit
SSL/TLS Configuration:
Use strong SSL protocols (TLSv1.2+)
Regularly update SSL certificates
Implement proper cipher suites
...