Mobbeel for developers

Mobbeel for developers

  • MobbScan
  • MobbID
  • MobbSign
  • Clients
  • FAQ

Install MobbScan on your premises

Learn how to install MobbScan Server on your own premises.

Before you install

This document is intended to be a simple guide on how to install MobbScan on your premises. Please be advised that MobbScan supports several operation modes and configurations and the final instructions may vary from case to case, depending on the project and/or client's requirements.

MobbScan Server

The previous diagram shows the typical components:

  • MobbScan SDKs (Android, iOS, Cordova, Xamarin, ionic, React-Native, Javacript, etc) integrated into mobile/browser apps
  • MobbScan Server components installed on the client's premises

The server side is composed by several components working together exposing a single API.

Docker images

Docker is the container technology used to distributed and install the server side components of MobbScan.

This is the list of all available MobbScan Docker images:

ImageVersion (**)
registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv3462.9.8
registry.mobbeel.com/com.mobbeel/mobbscan-mysql2.9.8
registry.mobbeel.com/com.mobbeel/mobbscan-document_classification1.3.0
registry.mobbeel.com/com.mobbeel/mobbscan-document_detection1.4.0
registry.mobbeel.com/com.mobbeel/mobbscan-document_ocr1.5.4
registry.mobbeel.com/com.mobbeel/mobbscan-document_verification1.5.0
registry.mobbeel.com/com.mobbeel/mobbscan-document_verification0.3.0
registry.mobbeel.com/com.mobbeel/face-biometrics-proxy1.1.1

Note1: MobbScan docker images are not publicly available. They are distributed through a private docker registry. Request your access credentials to your contact person at Mobbeel.

Note2: Please be aware that not all components are always required. Their use depends on the project's requirements and configuration.

Docker images distribution

Docker images are distributed using our private docker registry:

  • URL: registry.mobbeel.com
  • Access: Please contact a Mobbeel representative to request your user credentials

Please follow these steps to download the required images for your user's case:

  1. Login into the private registry:
docker login registry.mobbeel.com
  1. Pull the required images:
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.8
  1. Check that the images you require are downloaded:
docker images | grep "registry.mobbeel.com"
--
registry.mobbeel.com/com.mobbeel/mobbscan-mysql                         2.9.8       16630e95bb50        2 weeks ago
registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346     2.9.8       75e24dba96ac        2 weeks ago
...

Environments

You could set up each environment differently, but these are common configurations:

  • Development
  • Stage/UAT
  • Production

Note: Please review the software/hardware requirements before installing MobbScan on any of your servers.

Development environment

The development environment is usually installed and configured in an "autonomous" mode, meaning that every required component is installed in the same server, including database and shared file system.

Please follow these steps to install and configure a development environment.

  1. Get root access
sudo -s
  1. Log in into the Mobbeel's docker private registry
docker login registry.mobbeel.com
  1. Download the docker images you require.
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.8
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-mysql:2.9.8
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-document_detection:1.4.0
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-document_ocr:1.5.4
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-document_classification:1.3.0
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-document_verification:1.5.0
docker pull registry.mobbeel.com/com.mobbeel/face-biometrics-api:0.3.0
docker pull registry.mobbeel.com/com.mobbeel/face-biometrics-proxy:1.1.0
  1. Make sure the images are downloaded:
docker images

The output of the command should look something like this:

registry.mobbeel.com/com.mobbeel/mobbscan-mysql                          2.9.8               93c3ec8e018a
registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346      2.9.8               7da993985436
registry.mobbeel.com/com.mobbeel/mobbscan-document_classification        1.3.0               673478570a6a
registry.mobbeel.com/com.mobbeel/mobbscan-document_ocr                   1.5.4               39b73f9fd022
registry.mobbeel.com/com.mobbeel/mobbscan-document_detection             1.4.0               b22b55b374bb
registry.mobbeel.com/com.mobbeel/mobbscan-document_verification          1.5.0               a26c55c6813b
registry.mobbeel.com/com.mobbeel/face-biometrics-api                     1.1.0               82b612765e53
registry.mobbeel.com/com.mobbeel/face-biometrics-proxy                   0.3.0               fd4ed685de5b
  1. Create a new folder where you will configure all components
cd /opt
mkdir mobbscan-configuration
##These folder are required to mount the Docker volumens so the information is persisted between restarts and/or containters creation/deletion
cd mobbscan-configuration
mkdir samples
mkdir licenses
mkdir db-data
  1. Copy the license file provided by Mobbeel in this folder /opt/mobbscan-configuration/licenses

  2. Create the deployment docker file

vim docker-stack.yml
  1. Edit the file and add this information
version: '3.4'

services:
    mobbscan-db:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-mysql:2.9.8
        environment:
            - MYSQL_ROOT_PASSWORD=********
            - MYSQL_DATABASE=MOBBSCAN
        ports:
            - "3306:3306/tcp"
        volumes:
            - /opt/mobbscan-configuration/db-data:/var/lib/mysql
    mobbscan:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.8
        ports:
            - "8080:8080/tcp"
        volumes:
            - /opt/mobbscan-configuration/samples:/var/lib/tomcat8/mobbscan-work/samples
            - /opt/mobbscan-configuration/licenses:/var/lib/tomcat8/mobbscan-work/lic
        environment:
            - jdbc.driverclassname=com.mysql.jdbc.Driver
            - jdbc.url=jdbc:mysql://mobbscan-db:3306/MOBBSCAN
            - jdbc.username=********
            - jdbc.password=********
            - dnn_classification_service=true
            - dnn_detection_service=true
            - dnn_ocr_service=true
            - dnn_verification_service=true
            - mobbscan_dnn_document_classification_url=http://document_classification:8080/classification-document-mobbeel-api/v1/classification
            - mobbscan_dnn_document_detection_url=http://document_detection:8080/document_detection_dnn/api/detect
            - mobbscan_dnn_document_ocr_url=http://document_ocr:8080/ocr-api/prediction
            - mobbscan_dnn_document_verification_url=http://document_verification:8080/document-verification-mobbeel/api/verification
            - face_matching_url=http://face-biometrics-proxy:8080/mobbid-facerecognition/face/matching
            - spring.profiles.active=mysql,pro

    document_ocr:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_ocr:1.5.4
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    document_detection:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_detection:1.4.0
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    document_classification:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_classification:1.3.0
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    document_verification:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_verification:1.5.0
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    face-biometrics-proxy:
        image: registry.mobbeel.com/com.mobbeel/face-biometrics-proxy:0.3.0
        ports:
            - "8080/tcp"
    face-biometrics-api:
        image: registry.mobbeel.com/com.mobbeel/face-biometrics-api:1.1.0
        ports:
            - "8080/tcp"
        environment:
            MOBBEEL_V1_URL: http://face-identification-mobbeel:8080/face-identication-mobbeel/v1
            STORE_RESULTS: "False"
  1. Deploy the solution (Make sure the swarm mode is initialised with docker swarm init)
docker stack deploy --compose-file /opt/mobbscan-configuration/docker-stack.yml MobbScanStack
  1. Check that everything is right. The output of the command should look something like this:
$> docker stack ps MobbScanStack
ID                  NAME                                          IMAGE                                                                       NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
z10smueqhh0h        MobbscanStack_document_classification.1       registry.mobbeel.com/com.mobbeel/mobbscan-document_classification:1.3.0     docker-desktop      Running             Running 4 minutes ago
zjgumtc2fngu        MobbscanStack_document_detection.1            registry.mobbeel.com/com.mobbeel/mobbscan-document_detection:1.4.0          docker-desktop      Running             Running 4 minutes ago
fng7x9tp8rzj        MobbscanStack_document_ocr.1                  registry.mobbeel.com/com.mobbeel/mobbscan-document_ocr:1.5.4                docker-desktop      Running             Running 4 minutes ago
rdx7x9tp8rzj        MobbscanStack_document_verification.1         registry.mobbeel.com/com.mobbeel/mobbscan-document_verification:1.5.0       docker-desktop      Running             Running 4 minutes ago
gxz7866xxmku        MobbscanStack_mobbscan.1                      registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.8   docker-desktop      Running             Running 4 minutes ago
vt37yyh4l897        MobbscanStack_mobbscan-db.1                 registry.mobbeel.com/com.mobbeel/mobbscan-mysql:2.9.8                       docker-desktop      Running             Running 4 minutes ago
fdxf7k5aqvyp        MobbscanStack_face-biometrics-api.1           registry.mobbeel.com/com.mobbeel/face-recognition-api:1.1.0                 docker-desktop      Running             Running 4 minutes ago
mpv3wq91hqeu        MobbscanStack_face-biometrics-proxy.1         registry.mobbeel.com/com.mobbeel/face-identification-mobbeel:0.3.0          docker-desktop      Running             Running 4 minutes ago
  1. Check out the server is responding properly.
curl http://SERVER_IP:8080/mobbscan/health.json
{
  "code": "OK",
  "description": "Everything is OK"
}
  1. Check that the right version is installed.
curl http://SERVER_IP:8080/mobbscan/version.json
{
   "code" : "OK",
   "description" : "OK",
   "buildDate" : "XXXXXXXXXXX",
   "platformVersion" : "2.9.8"
}
  1. Check that your license is working properly
curl -X POST \
  'http://SERVER_IP:8080/mobbscan/scan/start.json' \
  -H 'content-type: multipart/form-data' \
  -F operationMode=SCAN_ONLY_BACK \
  -F licenseId=YOUR_LICENSE \
  -F documentType=ESPIDCard
{
  "code": "OK",
  "description": "START_SCAN_SUCCESS",
  "scanId": "4bb8f83f-8eed-40c2-ba72-a50afcef7761"
}
  1. Almost there... Access the backoffice administration dashboard and create a new user to be able to review the scan processes.

The backoffice is available at http://SERVER_IP:8080/mobbscan/admin. Use the default admin user:

  • username: admin
  • password: admin

In the "Admin panel" you can create an user (option "Create user"). You'll be able to create a user that will have access to the documents linked to your license.

  1. You're done! You can now use http://SERVER_IP:8080/mobbscan/ to start scanning documents and reviewing the results.

Customizations and comments

This is just an example of how to configure MobbScan on a single server, but it could also be done using only Docker Compose instead of Docker Swarm, or any other orchestrator such as Kubernetes or OpenShift. If you are not familiar with Docker Swarm please find out more info here

Mounted volumes

MobbScan docker images are ephemeral and they do not store nor preserve any information unless configured to do so. The docker-stack.yml configuration file shown above mounts three different volumes to persist information when the images are stopped, destroyed, replaced, etc:

  • db-data will store the database information extracted by the API
  • samples will store the images sent to be analysed to the API (if the API is configured to preserve the images)
  • licenses will store the license file provided to you that will enable the API to work properly

Note: Both the db-data and samples volumes must work together, so if you mount one you must mount the other one as well.

Database configuration

If you prefer not to use the Docker container for the development database just point to your own mysql instance (version 5.7.x) and configure the yaml deployment file according to these environment variables:

    - jdbc.url=jdbc:mysql://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/MOBBSCAN
    - jdbc.username=XXXXXXXXXXXXXXXX
    - jdbc.password=XXXXXXXXXXXXXXXX

Proxy

The previous configuration assumes that the API is accessed using a proxy with an SSL offloading.

environment:
    # ...
    - spring.profiles.active=mysql,pro

If you plan to access the API for development without https please change this setting to:

environment:
    # ...
    - spring.profiles.active=mysql,dev

Delete processes automatically

To enable the deletion of each scanning process automatically you have to add these environment variables to the MobbScan service on the deployment file:

  • delete_all_sessions=true
  • delete_unfinished_sessions=true
  • delete_unfinished_sessions_older_than_seconds=XXXX

Example:

version: '3.4'
 
services:
    mobbscan:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.8
        ports:
            - "8080:8080/tcp"
        volumes:
            - /opt/mobbscan-configuration/samples:/var/lib/tomcat8/mobbscan-work/samples
            - /opt/mobbscan-configuration/licenses:/var/lib/tomcat8/mobbscan-work/lic
        environment:
            - jdbc.driverclassname=com.mysql.jdbc.Driver
            - jdbc.url=jdbc:mysql://DATABASE_IP:DATABASE_PORT/MOBBSCAN
            - jdbc.username=**********
            - jdbc.password=**********
            - ...
            - delete_all_sessions=true
            - delete_unfinished_sessions=true
            # 15(days)*24(hours)*60(minutes)*60(seconds)
            - delete_unfinished_sessions_older_than_seconds=1296000
    ...
    ...

Production environment

There is not single optimal configuration to run MobbScan on-premises for a production deployment. Here's an example of an approach used successfully on a live production site.

Components:

  • Proxy/Load Balancer: It is used to do the ssl offloading and load balance the request among the MobbScan instances (at least two). It will also take care of the sticky session (if needed). The MobbScan API is stateless but the backoffice to review the samples is not, so a sticky session will only be needed in case you're using the backoffice.
  • API Instances: The preferred approach here is to create a virtual image containing a running configuration of MobbScan (with the required components for the particular use case) so it can be replicated as many times as needed so as to support the incoming workload. The image will basically contain all the stateless MobbScan containers. The other required components will be deployed elsewhere to be accessible from all the "replicated" instances.
  • Database: It is recommended that the database is installed with some redundancy or cluster approach.
  • Filesystem: A Network File System (NFS) is required to store the files and images produced by the API. You could tweak the Docker volumes directly or just configure the server to mount the NFS endpoint in the same folder you would use to mount the Docker volume.

If you use Amazon AWS you could use these service for each layer:

  • Proxy/Load Balancer: AWS ALB
  • API Instances: AWS EC2 + AMI encapsulating each set of MobbScan docker images
  • Database: AWS RDS
  • Filesystem: AWS EFS

Here's the example yaml configuration file for the swarm.

version: '3.4'

services:
    mobbscan:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.8
        ports:
            - "8080:8080/tcp"
        volumes:
            - /opt/mobbscan-configuration/samples:/var/lib/tomcat8/mobbscan-work/samples
            - /opt/mobbscan-configuration/licenses:/var/lib/tomcat8/mobbscan-work/lic
        environment:
            - jdbc.driverclassname=com.mysql.jdbc.Driver
            - jdbc.url=jdbc:mysql://YOUR_DATABASE_HOST:YOUR_DATABASE_PORT/MOBBSCAN
            - jdbc.username=********
            - jdbc.password=********
            - dnn_classification_service=true
            - dnn_detection_service=true
            - dnn_ocr_service=true
            - dnn_verification_service=true
            - mobbscan_dnn_document_classification_url=http://document_classification:8080/classification-document-mobbeel-api/v1/classification
            - mobbscan_dnn_document_detection_url=http://document_detection:8080/document_detection_dnn/api/detect
            - mobbscan_dnn_document_ocr_url=http://document_ocr:8080/ocr-api/prediction
            - mobbscan_dnn_document_verification_url=http://document_verification:8080/document-verification-mobbeel/api/verification
            - face_matching_url=http://face-biometrics-proxy:8080/mobbid-facerecognition/face/matching
            - spring.profiles.active=mysql,pro

    document_ocr:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_ocr:1.5.4
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    document_detection:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_detection:1.4.0
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    document_classification:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_classification:1.3.0
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    document_verification:
        image: registry.mobbeel.com/com.mobbeel/mobbscan-document_verification:1.5.0
        ports:
            - "8080/tcp"
        environment:
            - GUNICORN_WORKER=2
    face-biometrics-proxy:
        image: registry.mobbeel.com/com.mobbeel/face-biometrics-proxy:0.3.0
        ports:
            - "8080/tcp"
    face-biometrics-api:
        image: registry.mobbeel.com/com.mobbeel/face-biometrics-api:1.1.0
        ports:
            - "8080/tcp"
        environment:
            MOBBEEL_V1_URL: http://face-identification-mobbeel:8080/face-identication-mobbeel/v1
            STORE_RESULTS: "False"
  • This approach configures two nodes in "active" mode, meaning that the load balancer will distribute each request equally between the active nodes.
  • The number of nodes in the "cluster" could be incremented at any time by deploying a new "cloned" server and adding it to the list of nodes controlled by the load balancer.
  • The load balancer configuration is not in the scope of this document.
  • The ssl offloading should be handled on the reverse proxy (or the firewall).
  • The previous configuration file is exactly the same as the one used for the development environment but for the utility database container which is not recommended for production.

Node configuration

The configuration of the production servers is very similar to those of development but taking into account:

  • The database should be installed and configured in its own server (in cluster mode if possible)
  • The shared filesystem (NFS) must be shared among all active nodes in the cluster.

Database configuration

Please ask your Mobbeel representative for the appropriate files (sql scripts) to provision the external database.

Logs

MobbScan services redirect their logs to the standard output so you can easily configure the Docker Log driver to redirect it to your preferred centralised log system.

Orchestration support

MobbScan does not yet provide full Kubernetes nor Swarm support out of the box. We are currently working on it and it will be available in future releases.

Maintenance

Update the MobbScan version

If you need to update the version of a MobbScan container you could do it easily by following these steps:

  • Download the updated image version from the private docker registry
  • Update the version number on the deployment file.
  • Update the stack
  1. Download the updated image version you need to update from the private Docker registry
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.9
docker pull registry.mobbeel.com/com.mobbeel/mobbscan-mysql:2.9.9
  1. Update the version number on the deployment file (usually in /opt/mobbscan-configuration/)

  2. Get the stack name you previously deployed

docker stack ls
  1. Re-deploy it again. The stack would be updated to match the configuration on the deployment file
docker stack deploy --compose-file ~/opt/mobbscan-configuration/docker-stack.yml MobbScanStack

If everything goes right when you execute "docker stack ps MobbScanStack" you should see something like:

ID                  NAME                                IMAGE                                                                       NODE                DESIRED STATE       CURRENT STATE          ERROR                              PORTS
k9yfpkeapmyn        MobbscanStack_mobbscan.1            registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:2.9.9   docker-desktop      Running             Running 4 hours ago
kqx03cd3ecxe        MobbscanStack_mobbscan-db.1       registry.mobbeel.com/com.mobbeel/mobbscan-mysql:2.9.9                       docker-desktop      Running             Running 4 hours ago

Update the database

Mobbeel will provide the scripts to handle the update of the data in case that it is necessary. You could use your favourite MySQL client to connect to the database (development, UAT, production, etc) to execute the scripts.

Useful commands

Find out the name of the stack deployed on the server**

docker stack ls
NAME                SERVICES            ORCHESTRATOR
MobbScanStack       2                   Swarm

The name of the stack is MobbScanStack

Deployment status

docker stack ps MobbScanStack
ID                  NAME                                IMAGE                                                                        NODE                DESIRED STATE       CURRENT STATE             ERROR                         PORTS
q29u4r6qxcfe        MobbScanStack_mobbscan.1            registry.mobbeel.com/com.mobbeel/mobbscan-ubuntu-xenial64-opencv346:latest   docker-desktop      Running             Running 17 minutes ago
le55ldvqwudd        MobbScanStack_mobbscan-db.1       registry.mobbeel.com/com.mobbeel/mobbscan-mysql:latest                       docker-desktop      Running             Running 17 minutes ago

If there has been any errors or restart of any of the containers it would appear here.

Inspect the logs

docker service logs MobbScanStack_mobbscan
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,732 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'defaultResponseMessages': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,732 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'swaggerPluginAdapter': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,732 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'jacksonSwaggerSupport': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,732 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'customImplementation': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,732 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'environment': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,732 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'systemProperties': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,732 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'systemEnvironment': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,733 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'servletConfig': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,733 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    |  2020-02-10 11:10:00,733 [localhost-startStop-1] DEBUG   c.m.m.c.ValidationController - Rejected bean name 'applicationEventMulticaster': no URL paths identified
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    | 10-Feb-2020 11:10:02.381 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/var/lib/tomcat8/webapps/mobbscan.war] has finished in [30,959] ms
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    | 10-Feb-2020 11:10:02.383 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/var/lib/tomcat8/webapps/ROOT]
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    | 10-Feb-2020 11:10:02.399 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    | 10-Feb-2020 11:10:02.403 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/var/lib/tomcat8/webapps/ROOT] has finished in [20] ms
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    | 10-Feb-2020 11:10:02.411 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    | 10-Feb-2020 11:10:02.420 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
MobbScanStack_mobbscan.1.q29u4r6qxcfe@docker-desktop    | 10-Feb-2020 11:10:02.427 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 31072 ms

If you use the option "-f" on the command you would obtain a tailing of the logs and the output will be updated automatically docker service logs MobbScanStack_mobbscan -f

Remove the service and create it again

Remove the stack

docker stack rm MobbScanStack

Deploy the stack again

docker stack deploy --compose-file /opt/mobbscan-configuration/docker-stack.yml MobbScanStack

If you get this error when deploying the stack this node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again just execute docker swarm init and then the deploy again.

  • MobbScan Server
    • Docker images
    • Docker images distribution
  • Development environment
    • Customizations and comments
  • Production environment
    • Orchestration support
  • Maintenance
    • Update the MobbScan version
    • Update the database
    • Useful commands
Mobbeel for developers
Product Documentation
MobbIDMobbScanMobbSign
Connect
LinkedInFacebookX
More
FAQContact Us
Mobbeel Solutions SL
Copyright © 2026 Mobbeel Solutions SL