Central Hub Deployment
v5.13.3
Search this version
Central Hub Deployment
Central Hub Deployment
Title
Message
Create new category
What is the title of your new category?
Edit page index title
What is the title of the page index?
Edit category
What is the new title of your category?
Edit link
What is the new title and URL of your link?
Container-Based Setup
Copy Markdown
Open in ChatGPT
Open in Claude
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. | Service | Notes |
|---|---|---|
| 1 | Redis, RabbitMQ, PostgreSQL and File Server (NAS) |
|
| 2 | First MetaDefender Core instance in the shared DB mode. |
|
| 3 | The Hub instance, and any other MetaDefender Core instances in the shared DB mode. |
|
1. Redis caching server
- 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
xxxxxxxxxxdocker pull redis:<version>- Run the image:
Bash
xxxxxxxxxxdocker run -d --name <container name> \ -p <redis port>:6379 \ <redis image name>- Check container log to ensure everything works properly:
Bash
xxxxxxxxxxdocker logs -f <container name> # Write a log file from container logdocker logs <container name> > <filename>.logExample:
- Pull Redis version
7.0.5from DockerHub. - Run the image with name set to
'redis', port tied to'6379'and image name set to'redis:7.0.5' - Check container log.
Bash
xxxxxxxxxxdocker pull redis:7.0.5docker run -d --name redis -p 6379:6379 redis:7.0.5docker logs -f redis2. RabbitMQ broker server
- 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
xxxxxxxxxxdocker pull rabbitmq:<version>- Run the inage:
Bash
xxxxxxxxxxdocker run -d --name <container name> \ [-e RABBITMQ_DEFAULT_USER=<rabbitmq user>] \ [-e RABBITMQ_DEFAULT_PASS=<rabbitmq password>] \ -p <rabbitmq port>:5672 \ <rabbitmq image name>- Check container log to ensure everything works properly:
Bash
xxxxxxxxxxdocker logs -f <container name> # Write a log file from container logdocker logs <container name> > <filename>.logExample:
- Pull RabbitMQ version 3.10.7 from DockerHub.
- 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' - Check container log in real time.
Bash
xxxxxxxxxxdocker pull rabbitmq:3.10.7docker run -d --name rabbitmq \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=admin \ -p 5672:5672 \ rabbitmq:3.10.7docker logs -f rabbitmq3. PostgreSQL database server
- 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
xxxxxxxxxxdocker pull postgres:<version>- Run the image:
Bash
xxxxxxxxxxdocker run -d --name <container name> \ [-e POSTGRES_PASSWORD=<postgres password>] \ -p <postgres port>:5432 \ <postgres image name>- Check container log to ensure everything works properly:
Bash
xxxxxxxxxxdocker logs -f <container name> # Write a log file from container logdocker logs <container name> > <filename>.logExample:
- Pull PostgreSQL version 12.10 from DockerHub.
- Run the image with name set to
'postgres', password set to'admin', port tied to'5432'and image name set to'postgres:12.10' - Check container log in real time.
Bash
xxxxxxxxxxdocker pull postgres:12.10docker run -d --name postgres \ -e POSTGRES_PASSWORD=admin \ -p 5432:5432 \ postgres:12.10docker logs -f postgres4. File storage server (NAS)
- Create a designated folder for <NAS config folder> e.g.
~/mdcore/nas_config - Generate private key, certificate in X509 format and store to a designated location
<NAS config folder> - Complete configuration file
ometascan_nas.confMetaDefender Core NAS (File Storage Server) and store it in <NAS config folder> - Pull the target docker image from OPSWAT repository on DockerHub
Bash
xxxxxxxxxxdocker pull <repository>/mdnas-<platform>:<version>- <repository>:
opswat - <platform>:
debianorrocky - <version>: File storage server version, default is
latest
- Run the image and mount <NAS config folder> to
/etc/opswat
Bash
xxxxxxxxxxdocker run -d --name <container name> \ -v <nas config folder>:/etc/opswat \ -p <nas port>:8888 \ <image name>- Check container log to ensure everything works properly
Bash
xxxxxxxxxxdocker logs -f <container name> # Write a log file from container logdocker logs <container name> > <filename>.logExample 1:
- Docker pull NAS version 1.0 from DockerHub
- Create folder
~/mdcore/nas_config - Generate private key, certificate and store to
~/mdcore/nas_config - Fill configuration file
ometascan_nas.confand store to~/mdcore/nas_config - Run the image with
/etc/opswatfolder tied to~/mdcore/nas_config, port tied to'8888'and image name set to'mdnas-debian:1.0.0' - Check container log
Bash
Example 2 (Run as non-root with random uid use --user and uid !=0):
Bash
Example 3 (Run with enabled read-only mode):
Bash
5. MetaDefender Core server
- Create a designated folder for <Core ignition folder> e.g.
~/mdcore/ignition_file - Complete ignition file
ometascan.confMetaDefender Core and store it in <Core ignition folder> - Pull the target docker image from OPSWAT repository on DockerHub
Bash
- <repository>:
opswat - <platform>:
debianorrocky - <version>: MetaDefender Core version, default is
latest
- Run the image and mount <Core ignition folder> to
/opt/ometascan/core_data/opswat
Bash
- Check container log to ensure everything works properly
Bash
Example 1:
- Docker pull MetaDefender Core version 5.3.0 from DockerHub
- Create folder
~/mdcore/ignition_file - Fill configuration file
ometascan.confand store to~/mdcore/ignition_file - Run the image with
/opt/ometascan/core_data/opswatfolder tied to~/mdcore/ignition_file, port tied to'8888'and image name set to'mdcore-debian:5.3.0' - Check container log
Bash
Example 2 (Run as non-root with random uid):
Bash
Example 3 (Run with enabled read-only):
Bash
6. Hub server
- Create a designated folder for <Hub config folder> e.g.
~/mdcore/hub_config - Complete configuration file
ometascan_hub.confMetaDefender Core Hub (Hub) and store it in <Hub config folder> - Pull the target docker image from OPSWAT repository on DockerHub
Bash
- <repository>:
opswat - <platform>:
debianorrocky - <version>: Hub version, default is
latest
- Run the image and mount <Hub config folder> to
/etc/opswat
Bash
- Check container log to ensure everything works properly
Bash
Example 1:
- Docker pull Hub version 1.0 from DockerHub
- Create folder
~/mdcore/hub_config - Fill configuration file
ometascan_hub.confand store to~/mdcore/hub_config - Run the image with
/etc/opswatfolder tied to~/mdcore/hub_config, port tied to'8889'and image name set to'mdhub-debian:1.0.0' - Check container log
Bash
Example 2 (Run as non-root random uid with option --user <uid>:<gid>):
Bash
Example 3 (Run with enabled read only file-system with option --ready-only):
Bash
VariableType to search · ESC to discard
GlossaryType to search · ESC to discard
InsertType to search · ESC to discard
No matches
Last updated on
Was this page helpful?
Next to read:
Kubernetes Setupnull
Discard Changes
Do you want to discard your current changes and overwrite with the template?
Archive Synced Block
Message
Create new Template
What is this template's title?
Delete Template
Message