Container-Based Setup

Before running the setup, please check [Central Hub] Recommended System Configuration to install all required dependencies.

Setup order requirement

Please follow installation steps in order to complete the system setup properly:

Order no.ServiceNotes
1Redis, RabbitMQ, PostgreSQL and File Server (NAS)
  • Could be setup in parallel in any order among them.
  • Make sure they are all fully functional and accessible before proceeding to the next setup order #2.
2First MetaDefender Core instance in the shared DB mode.
  • A valid license must be provisioned and activated.
  • In case of MetaDefender Core upgrade scenario, make sure all other MetaDefender Core instances' service are stopped while upgrading this first MetaDefender Core instance.
  • Make sure they are all fully functional and accessible.
  • Heath check constraints to be reviewed and confirmed. In the Central Hub model, MetaDefender Core will not consume any processing tasks from the central queue while staying unheathy via the heath check.
3The Hub instance, and any other MetaDefender Core instances in the shared DB mode.
  • Could be setup in parallel in any order among them.
  • Make sure it is fully functional and accessible.

1. Redis caching server

  1. Pull the target docker image from Redis repository on DockerHub e.g. https://hub.docker.com/layers/library/redis/7.0.5/images/sha256-2bd864580926b790a22c8b96fd74496fe87b3c59c0774fe144bab2788e78e676?context=explore
Bash
Copy
  1. Run the image:
Bash
Copy
  1. Check container log to ensure everything works properly:
Bash
Copy

Example:

  1. Pull Redis version 7.0.5 from DockerHub.
  2. Run the image with name set to 'redis', port tied to '6379' and image name set to 'redis:7.0.5'
  3. Check container log.
Bash
Copy

2. RabbitMQ broker server

  1. Pull the target docker image from RabbitMQ repository on DockerHub e.g. https://hub.docker.com/layers/library/rabbitmq/3.10.7/images/sha256-90801171d4fdffc9b8877bb3ea5edb974cc123a2f27a678d5fd81488fb5025a2?context=explore
Bash
Copy
  1. Run the inage:
Bash
Copy
  1. Check container log to ensure everything works properly:
Bash
Copy

Example:

  1. Pull RabbitMQ version 3.10.7 from DockerHub.
  2. Run the image with name set to 'rabbitmq', username and password set to 'admin', port tied to '6379' and image name set to 'rabbitmq:3.10.7'
  3. Check container log in real time.
Bash
Copy

3. PostgreSQL database server

  1. Pull the target docker image from PostgreSQL repository on DockerHub e.g. https://hub.docker.com/layers/library/postgres/12.10/images/sha256-788f33abeef419b4252f73bf55ddf6fc6f77db759f81c7557fb8e1a72fad353b?context=explore
Bash
Copy
  1. Run the image:
Bash
Copy
  1. Check container log to ensure everything works properly:
Bash
Copy

Example:

  1. Pull PostgreSQL version 12.10 from DockerHub.
  2. Run the image with name set to 'postgres', password set to 'admin', port tied to '5432' and image name set to 'postgres:12.10'
  3. Check container log in real time.
Bash
Copy

4. File storage server (NAS)

  1. Create a designated folder for <NAS config folder> e.g. ~/mdcore/nas_config
  2. Generate private key, certificate in X509 format and store to a designated location <NAS config folder>
  3. Complete configuration file ometascan_nas.conf MetaDefender Core NAS (File Storage Server) and store it in <NAS config folder>
  4. Pull the target docker image from OPSWAT repository on DockerHub
Bash
Copy
  • <repository>: opswat
  • <platform>: centos ordebian``
  • <version>: File storage server version, default is latest
  1. Run the image and mount <NAS config folder> to/etc/opswat
Bash
Copy
  1. Check container log to ensure everything works properly
Bash
Copy

Example 1:

  1. Docker pull NAS version 1.0 from DockerHub
  2. Create folder ~/mdcore/nas_config
  3. Generate private key, certificate and store to ~/mdcore/nas_config
  4. Fill configuration file ometascan_nas.conf and store to ~/mdcore/nas_config
  5. Run the image with /etc/opswat folder tied to ~/mdcore/nas_config , port tied to '8888' and image name set to 'mdnas-debian:1.0.0'
  6. Check container log
Bash
Copy

Example 2 (Run as non-root with random uid use --user and uid !=0):

Bash
Copy

Example 3 (Run with enabled read-only mode):

Bash
Copy

5. MetaDefender Core server

  1. Create a designated folder for <Core ignition folder> e.g. ~/mdcore/ignition_file
  2. Complete ignition file ometascan.conf MetaDefender Core and store it in <Core ignition folder>
  3. Pull the target docker image from OPSWAT repository on DockerHub
Bash
Copy
  • <repository>: opswat
  • <platform>: centos ordebian``
  • <version>: MetaDefender Core version, default is latest
  1. Run the image and mount <Core ignition folder> to/opt/ometascan/core_data/opswat
Bash
Copy
  1. Check container log to ensure everything works properly
Bash
Copy

Example 1:

  1. Docker pull MetaDefender Core version 5.3.0 from DockerHub
  2. Create folder ~/mdcore/ignition_file
  3. Fill configuration file ometascan.conf and store to ~/mdcore/ignition_file
  4. Run the image with /opt/ometascan/core_data/opswat folder tied to ~/mdcore/ignition_file , port tied to '8888' and image name set to 'mdcore-debian:5.3.0'
  5. Check container log
Bash
Copy

Example 2 (Run as non-root with random uid):

Bash
Copy

Example 3 (Run with enabled read-only):

Bash
Copy

6. Hub server

  1. Create a designated folder for <Hub config folder> e.g. ~/mdcore/hub_config
  2. Complete configuration file ometascan_hub.conf MetaDefender Core Hub (Hub) and store it in <Hub config folder>
  3. Pull the target docker image from OPSWAT repository on DockerHub
Bash
Copy
  • <repository>: opswat
  • <platform>: centos or debian
  • <version>: Hub version, default is latest
  1. Run the image and mount <Hub config folder> to/etc/opswat
Bash
Copy
  1. Check container log to ensure everything works properly
Bash
Copy

Example 1:

  1. Docker pull Hub version 1.0 from DockerHub
  2. Create folder ~/mdcore/hub_config
  3. Fill configuration file ometascan_hub.conf and store to ~/mdcore/hub_config
  4. Run the image with /etc/opswat folder tied to ~/mdcore/hub_config , port tied to '8889' and image name set to 'mdhub-debian:1.0.0'
  5. Check container log
Bash
Copy

Example 2 (Run as non-root random uid with option --user <uid>:<gid>):

Bash
Copy

Example 3 (Run with enabled read only file-system with option --ready-only):

Bash
Copy
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard