Running DocIntel on an air-gapped system
An air-gapped system is a computer or network that is physically isolated from the internet or other unsecured networks to prevent unauthorized access. This guide is designed for users who need to operate DocIntel in a secure environment without internet connectivity.
We will walk you through the necessary steps to install and configure DocIntel on an air-gapped system using Docker Compose.
This guide assumes a basic understanding of Linux and Docker Compose, building upon the installation guide that uses Docker Compose. Always refer to your lead system administrator for the specific details of your secure deployment.
By the end of this page, you will have a clear understanding of how to set up and run Docintel in an air-gapped system.
Install Docker
Install Docker on your system by following the instructions on the Docker website. Check that Docker is properly installed and running with the following command. Specific for installing the required packages on your air-gapped system will depend on your environement, refer to your system administrator.
docker info
Install a Docker Registry
Before installing DocIntel, you must first install a Docker registry on your air-gapped system. A Docker registry is a storage location for Docker images that allows you to manage and distribute Docker images within your organization. You can install a Docker registry by following the instructions provided in the Docker documentation.
You can usually run such a service with the following command (here storing permanently on /data/registry
)
docker run -d \
-p 5000:5000
--restart=always \
-v /data/registry:/var/lib/registry \
--name registry registry:2
This guide does not detail how to securely run a docker registry. Refer to the offical Docker documentation for such production deployment.
Note that some images might not be redistribuable, see the implication on the offical Docker documentation. Edit daemon.json
located in /etc/docker/
, assuming the file was previously empty, add the following contents:
{
"allow-nondistributable-artifacts": ["locahost:5000"]
}
Restart docker and the registry.
Transfer and load required images
After installing the Docker repository, you will need to import the necessary Docker images for DocIntel. The following Docker images are required:
- PostgreSQL
- Apache SolR
- Vertex Synapse
- RabbitMQ
- DocIntel
You can obtain these Docker images by downloading them from a secure system that has internet access and then transferring them to your air-gapped system using a secure transfer method, such as USB drive.
docker save postgres | gzip > postgres.tar.gz
docker save rabbitmq | gzip > rabbitmq.tar.gz
docker save solr | gzip > solr.tar.gz
docker save vertexproject/synapse-cortex:v2.x.x | gzip > synapse.tar.gz
docker save docintelapp/document-analyzer | gzip > docintel-document-analyzer.tar.gz
docker save docintelapp/document-indexer | gzip > docintel-document-indexer.tar.gz
docker save docintelapp/importer | gzip > docintel-importer.tar.gz
docker save docintelapp/newsletter | gzip > docintel-newsletter.tar.gz
docker save docintelapp/scraper | gzip > docintel-scraper.tar.gz
docker save docintelapp/source-indexer | gzip > docintel-source-indexer.tar.gz
docker save docintelapp/tag-indexer | gzip > docintel-tag-indexer.tar.gz
docker save docintelapp/thumbnailer | gzip > docintel-thumbnailer.tar.gz
docker save docintelapp/webapp | gzip > docintel-webapp.tar.gz
The save commands might require significant time and disk spaces.
To import the Docker images, use docker load
:
docker load -i postgres.tar.gz
docker load -i rabbitmq.tar.gz
docker load -i solr.tar.gz
docker load -i synapse.tar.gz
docker load -i docintel-document-analyzer.tar.gz
docker load -i docintel-document-indexer.tar.gz
docker load -i docintel-importer.tar.gz
docker load -i docintel-newsletter.tar.gz
docker load -i docintel-scraper.tar.gz
docker load -i docintel-source-indexer.tar.gz
docker load -i docintel-tag-indexer.tar.gz
docker load -i docintel-thumbnailer.tar.gz
docker load -i docintel-webapp.tar.gz
Install DocIntel and its dependencies
Follow the the installation guide that uses Docker Compose. On a production system, you might want to install SystemD services.