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. | 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
docker pull redis:<version>- Run the image:
docker run -d --name <container name> \ -p <redis port>:6379 \ <redis image name>- Check container log to ensure everything works properly:
x
docker 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.
docker 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
docker pull rabbitmq:<version>- Run the inage:
docker 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:
docker 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.
docker 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
docker pull postgres:<version>- Run the image:
docker 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:
docker 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.
docker 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
docker pull <repository>/mdnas-<platform>:<version>- <repository>:
opswat - <platform>:
centos ordebian`` - <version>: File storage server version, default is
latest
- Run the image and mount <NAS config folder> to
/etc/opswat
docker 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
docker 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
docker pull opswat/mdnas-debian:latestmkdir -p ~/mdcore/nas_configopenssl req -new -newkey rsa:4096 -days 36500 \ -nodes -x509 \ -keyout ~/mdcore/nas_config/localhost-100y.key \ -out ~/mdcore/nas_config/localhost-100y.certvim ~/mdcore/nas_config/ometascan_nas.confdocker run -d --name nas \ -v ~/mdcore/nas_config:/etc/opswat \ -p 8888:8888 \ mdnas-debian:1.0.0docker logs -f nasExample 2 (Run as non-root with random uid use --user and uid !=0):
docker pull opswat/mdnas-debian:latestmkdir -p ~/mdcore/nas_configopenssl req -new -newkey rsa:4096 -days 36500 \ -nodes -x509 \ -keyout ~/mdcore/nas_config/localhost-100y.key \ -out ~/mdcore/nas_config/localhost-100y.certvim ~/mdcore/nas_config/ometascan_nas.confchmod 755 -R ~/mdcore/nas_configdocker run -d --name nas_debian \ -v ~/mdcore/nas_config:/etc/opswat \ --user 1000:1000 \ -p 8888:8888 \ opswat/mdnas-debian:latestdocker logs -f nas_debianExample 3 (Run with enabled read-only mode):
docker pull opswat/mdnas-debian:latestmkdir -p ~/mdcore/nas_configopenssl req -new -newkey rsa:4096 -days 36500 \ -nodes -x509 \ -keyout ~/mdcore/nas_config/localhost-100y.key \ -out ~/mdcore/nas_config/localhost-100y.certvim ~/mdcore/nas_config/ometascan_nas.confchmod 755 -R ~/mdcore/nas_configdocker run -d --name nas_debian \ -v ~/mdcore/nas_config:/etc/opswat \ --read-only \ -p 8888:8888 \ opswat/mdnas-debian:latestdocker logs -f nas_debian5. 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
docker pull <repository>/metadefendercore-<platform>:<version>- <repository>:
opswat - <platform>:
centos ordebian`` - <version>: MetaDefender Core version, default is
latest
- Run the image and mount <Core ignition folder> to
/opt/ometascan/core_data/opswat
docker run -d --name <container name> \ -v <core config folder>:/opt/ometascan/core_data/opswat \ -p <core port>:8008 \ <image name>- Check container log to ensure everything works properly
docker logs -f <container name># Write a log file from container logdocker logs <container name> > <filename>.logExample 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
docker pull opswat/metadefendercore-debian:latestmkdir -p ~/mdcore/ignition_filevim ~/mdcore/ignition_file/ometascan.confchmod 666 -R ~/mdcore/ignition_filedocker run -d --name core_debian \ -v ~/mdcore/ignition_file:/opt/ometascan/core_data/opswat \ -p 8008:8008 opswat/metadefendercore-debian:latestdocker logs -f core_debianExample 2 (Run as non-root with random uid):
docker pull opswat/metadefendercore-debian:latestmkdir -p ~/mdcore/ignition_filevim ~/mdcore/ignition_file/ometascan.confchmod 777 -R ~/mdcore/ignition_filedocker run -d --name core_debian \ -v ~/mdcore/ignition_file:/opt/ometascan/core_data/opswat \ -p 8008:8008 --user 1000:1000 opswat/metadefendercore-debian:latestdocker logs -f core_debianExample 3 (Run with enabled read-only):
docker pull opswat/metadefendercore-debian:latestmkdir -p ~/mdcore/ignition_filevim ~/mdcore/ignition_file/ometascan.confchmod 777 -R ~/mdcore/ignition_filedocker run -d --name core_debian \ -v ~/mdcore/ignition_file:/opt/ometascan/core_data/opswat \ -p 8008:8008 --read-only opswat/metadefendercore-debian:latestdocker logs -f core_debian6. 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
docker pull <repository>/mdhub-<platform>:<version>- <repository>:
opswat - <platform>:
centosordebian - <version>: Hub version, default is
latest
- Run the image and mount <Hub config folder> to
/etc/opswat
docker run -d --name <container name> \ -v <hub config folder>:/etc/opswat \ -p <hub port>:8889 \ <image name>- Check container log to ensure everything works properly
docker logs -f <container name># Write a log file from container logdocker logs <container name> > <filename>.logExample 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
docker pull opswat/mdhub-debian:latestmkdir -p ~/mdcore/hub_configvim ~/mdcore/hub_config/ometascan_hub.confdocker run -d --name hub_debian \ -v ~/mdcore/hub_config:/etc/opswat \ -p 8889:8889 \ opswat/mdhub-debian:1.0.0docker logs -f hub_debianExample 2 (Run as non-root random uid with option --user <uid>:<gid>):
docker pull opswat/mdhub-debian:latestmkdir -p ~/mdcore/hub_configvim ~/mdcore/hub_config/ometascan_hub.confdocker run -d --name hub_debian \ -v ~/mdcore/hub_config:/etc/opswat \ --user 1000:1000 \ -p 8889:8889 \ opswat/mdhub-debian:1.0.0docker logs -f hub_debianExample 3 (Run with enabled read only file-system with option --ready-only):
docker pull opswat/mdhub-debian:latestmkdir -p ~/mdcore/hub_configvim ~/mdcore/hub_config/ometascan_hub.confdocker run -d --name hub_debian \ -v ~/mdcore/hub_config:/etc/opswat \ --read-only \ -p 8889:8889 \ opswat/mdhub-debian:1.0.0docker logs -f hub_debianWas this page helpful?