Offline / Air-Gapped Deployment

Offline / Air-Gapped Deployment

Overview

A standard Syndeia Cloud deployment requires an internet connection to automatically download infrastructure components like Cassandra, JanusGraph, Zookeeper, and Kafka. This process will fail in an air-gapped (offline) environment.

This guide provides the necessary steps for an offline installation. You will first download the required components onto an internet-connected machine, then transfer them to your target server.

The installation scripts are designed to automatically detect these components in the user's home directory and use the local files, bypassing the need for an internet connection.

Pre-requisites

You will need two machines for this process:

  1. Download Host

  • Any computer with an internet connection (Windows, macOS, or Linux).

  • 5 GB of available disk space.

  • Python 3.6+ installed.

    • To check if Python is installed, open a terminal or command prompt and run:

      python3 --version

      The output should show a version number, e.g., Python 3.9.6.

    • If you need to install Python, you can find downloads and instructions at the official Python website: python.org/downloads/

  • Python requests module:

    • This module is required to download the necessary installation files.

    • After confirming Python and pip are installed, run the following command in your terminal or command prompt to install the requests module:

      python3 -m pip install requests
  • Syndeia Cloud docker package and credentials downloaded : Download the following python script from the password-protected link provided in the Intercax Helpdesk request where you originally received your Syndeia Cloud license. To request a copy of these, visit https://intercax.com/help and enter an Evaluation Request - or find the existing request that your colleagues or organization may have sent to Intercax in the past. This python script is provided using Intercax’s secure, access-controlled file share service.

    1. syndeia-cloud_infrastructure_downloader.py

  1. Target Syndeia Server

  • The secure Linux server where Syndeia Cloud will be installed or upgraded.

  • The server must meet the OS and Hardware requirements specified here: Automated Deployment

  • The tarutility must be installed.

Note Regarding RLM Licensing:
Syndeia utilizes RLM Intercax License Server 15.1 for floating licensing. Please refer to the requirements below:

  • RLM Intercax License Server 15.1 must be up and running if using a floating license pointer file. See this document for installation instructions if one has not been set up:

  • A valid license file or license pointer file must be present in the home directory of the user/admin that will be running the script. Syndeia requires a valid license, which you should have received when you purchased the software. Please see Linux - Intercax License Server Installation and Setup for details regarding license types. If you need help acquiring a license, you can open a ticket at intercax.com/help.

Steps

Step 1: Create the Offline Zip File on the Download Host

  1. ON DOWNLOAD HOST: Download the syndeia-cloud_infrastructure_downloader.py script and the syndeia-cloud and infrastructure installation zip files from the password-protected links provided in the Intercax Helpdesk request where you originally received your Syndeia Cloud license. The files should be downloaded to the same directory.

    • Infrastructure Downloader Script:

      • Location: Syndeia_Cloud_3.7/Syndeia_Cloud_Utilities/Offline_Installation/

      • File Name: syndeia-cloud_infrastructure_downloader.py

    • Syndeia-Cloud software and infrastructure installation zips

      • Location: Syndeia_Cloud_3.7/

      • File Names:

        • syndeia-cloud-3.7_cassandra_zookeeper_kafka_setup.zip

        • syndeia-cloud-3.7_janusgraph_setup.zip

        • syndeia-cloud-3.7.zip

  2. ON DOWNLOAD HOST: Open a shell (e.g., Terminal, PowerShell, or Command Prompt) and navigate to the directory containing the syndeia-cloud_infrastructure_downloader.py script.

    # Example Path cd /home/user/Downloads
  3. ON DOWNLOAD HOST: Execute the syndeia-cloud_infrastructure_downloader.py script. This script will download all required infrastructure components and package them into a single zip file along with the Syndeia-Cloud software and infrastructure zips.

    python3 syndeia-cloud_infrastructure_downloader.py
  4. The script is finished when you see the πŸŽ‰ SYNDEIA CLOUD INFRASTRUCTURE ARCHIVE READY message. The final zip file, named syndeia-cloud_infrastructure.zip, will be created in your current directory on your Download Host (/home/user/Downloads).

2025-12-10 20:47:11 [INFO ] ================================================================================ 2025-12-10 20:47:11 [INFO ] Syndeia Infrastructure Downloader v2.0 2025-12-10 20:47:11 [INFO ] Auto-detected Syndeia Cloud version: 3.7 2025-12-10 20:47:11 [INFO ] ================================================================================ 2025-12-10 20:47:11 [INFO ] Log file: C:\Users\jcp22\Downloads\offline-test\syndeia_download_20251210_204711.log 2025-12-10 20:47:11 [INFO ] Verifying required local Syndeia Cloud packages... 2025-12-10 20:47:11 [SUCCESS] All required Syndeia Cloud packages found locally. 2025-12-10 20:47:11 [INFO ] Temporary workspace created: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads 2025-12-10 20:47:11 [INFO ] Beginning download of 8 packages... 2025-12-10 20:47:11 [INFO ] Processing download: apache-zookeeper-3.8.4-bin.tar.gz (saving as zookeeper-3.8.4-bin.tar.gz) 2025-12-10 20:47:11 [INFO ] Download attempt 1/3 for apache-zookeeper-3.8.4-bin.tar.gz (saving as zookeeper-3.8.4-bin.tar.gz) Attempting to download: zookeeper-3.8.4-bin.tar.gz Source: https://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\zookeeper-3.8.4-bin.tar.gz File size: 13.9MB βœ… SUCCESS: Downloaded zookeeper-3.8.4-bin.tar.gz to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\zookeeper-3.8.4-bin.tar.gz 2025-12-10 20:47:14 [SUCCESS] Successfully downloaded and verified zookeeper-3.8.4-bin.tar.gz 2025-12-10 20:47:14 [INFO ] Processing download: kafka_2.13-3.7.0.tgz 2025-12-10 20:47:14 [INFO ] Download attempt 1/3 for kafka_2.13-3.7.0.tgz Attempting to download: kafka_2.13-3.7.0.tgz Source: https://archive.apache.org/dist/kafka/3.7.0/kafka_2.13-3.7.0.tgz Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\kafka_2.13-3.7.0.tgz File size: 113.5MB βœ… SUCCESS: Downloaded kafka_2.13-3.7.0.tgz to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\kafka_2.13-3.7.0.tgz 2025-12-10 20:47:19 [SUCCESS] Successfully downloaded and verified kafka_2.13-3.7.0.tgz 2025-12-10 20:47:19 [INFO ] Processing download: janusgraph-full-1.0.0.zip 2025-12-10 20:47:19 [INFO ] Download attempt 1/3 for janusgraph-full-1.0.0.zip Attempting to download: janusgraph-full-1.0.0.zip Source: https://github.com/JanusGraph/janusgraph/releases/download/v1.0.0/janusgraph-full-1.0.0.zip Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\janusgraph-full-1.0.0.zip βœ… SUCCESS: Downloaded janusgraph-full-1.0.0.zip to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\janusgraph-full-1.0.0.zip 2025-12-10 20:47:45 [SUCCESS] Successfully downloaded and verified janusgraph-full-1.0.0.zip 2025-12-10 20:47:45 [INFO ] Processing download: OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz 2025-12-10 20:47:45 [INFO ] Download attempt 1/3 for OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz Attempting to download: OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz Source: https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.27%2B6/OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz βœ… SUCCESS: Downloaded OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz 2025-12-10 20:47:46 [SUCCESS] Successfully downloaded and verified OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz 2025-12-10 20:47:46 [INFO ] Processing download: cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz 2025-12-10 20:47:46 [INFO ] Download attempt 1/3 for cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz Attempting to download: cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz Source: https://github.com/astral-sh/python-build-standalone/releases/download/20250517/cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz βœ… SUCCESS: Downloaded cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz 2025-12-10 20:47:48 [SUCCESS] Successfully downloaded and verified cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz 2025-12-10 20:47:48 [INFO ] Processing download: packaging-25.0-py3-none-any.whl 2025-12-10 20:47:48 [INFO ] Download attempt 1/3 for packaging-25.0-py3-none-any.whl Attempting to download: packaging-25.0-py3-none-any.whl Source: https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\packaging-25.0-py3-none-any.whl File size: 64.9KB βœ… SUCCESS: Downloaded packaging-25.0-py3-none-any.whl to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\packaging-25.0-py3-none-any.whl 2025-12-10 20:47:48 [SUCCESS] Successfully downloaded and verified packaging-25.0-py3-none-any.whl 2025-12-10 20:47:48 [INFO ] Processing download: six-1.17.0-py2.py3-none-any.whl 2025-12-10 20:47:48 [INFO ] Download attempt 1/3 for six-1.17.0-py2.py3-none-any.whl Attempting to download: six-1.17.0-py2.py3-none-any.whl Source: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\six-1.17.0-py2.py3-none-any.whl File size: 10.8KB βœ… SUCCESS: Downloaded six-1.17.0-py2.py3-none-any.whl to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\six-1.17.0-py2.py3-none-any.whl 2025-12-10 20:47:48 [SUCCESS] Successfully downloaded and verified six-1.17.0-py2.py3-none-any.whl 2025-12-10 20:47:48 [INFO ] Processing download: apache-cassandra-4.1.9-bin.tar.gz 2025-12-10 20:47:48 [INFO ] Download attempt 1/3 for apache-cassandra-4.1.9-bin.tar.gz Attempting to download: apache-cassandra-4.1.9-bin.tar.gz Source: https://archive.apache.org/dist/cassandra/4.1.9/apache-cassandra-4.1.9-bin.tar.gz Destination: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\apache-cassandra-4.1.9-bin.tar.gz File size: 49.5MB βœ… SUCCESS: Downloaded apache-cassandra-4.1.9-bin.tar.gz to C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads\apache-cassandra-4.1.9-bin.tar.gz 2025-12-10 20:47:51 [SUCCESS] Successfully downloaded and verified apache-cassandra-4.1.9-bin.tar.gz 2025-12-10 20:47:51 [SUCCESS] All packages downloaded and verified successfully! 2025-12-10 20:47:51 [INFO ] Copying Syndeia Cloud packages to staging area... 2025-12-10 20:47:51 [INFO ] Copying syndeia-cloud-3.7_cassandra_zookeeper_kafka_setup.zip... 2025-12-10 20:47:51 [SUCCESS] Copied syndeia-cloud-3.7_cassandra_zookeeper_kafka_setup.zip 2025-12-10 20:47:51 [INFO ] Copying syndeia-cloud-3.7_janusgraph_setup.zip... 2025-12-10 20:47:51 [SUCCESS] Copied syndeia-cloud-3.7_janusgraph_setup.zip 2025-12-10 20:47:51 [INFO ] Copying syndeia-cloud-3.7.zip... 2025-12-10 20:47:53 [SUCCESS] Copied syndeia-cloud-3.7.zip 2025-12-10 20:47:53 [INFO ] Creating zip archive... 2025-12-10 20:47:53 [INFO ] Source: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads 2025-12-10 20:47:53 [INFO ] Output: syndeia-cloud_infrastructure.zip 2025-12-10 20:49:37 [SUCCESS] Archive created successfully: C:\Users\jcp22\Downloads\offline-test\syndeia-cloud_infrastructure.zip 2025-12-10 20:49:38 [INFO ] Temporary workspace cleaned up: C:\Users\jcp22\Downloads\offline-test\syndeia_temp_downloads ==================================================================================================== πŸ“‹ DOWNLOAD AND VERIFICATION SUMMARY ==================================================================================================== FILENAME STATUS SIZE VERIFICATION CHECKSUMS ---------------------------------------------------------------------------------------------------- zookeeper-3.8.4-bin.tar.gz βœ… PASS 13.9 MB βœ“ VERIFIED βœ“ MATCH kafka_2.13-3.7.0.tgz βœ… PASS 113.5 MB βœ“ VERIFIED βœ“ MATCH janusgraph-full-1.0.0.zip βœ… PASS 709.4 MB βœ“ VERIFIED βœ“ MATCH OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz βœ… PASS 41.4 MB βœ“ VERIFIED βœ“ MATCH cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz βœ… PASS 42.1 MB βœ“ VERIFIED βœ“ MATCH packaging-25.0-py3-none-any.whl βœ… PASS 64.9 KB βœ“ VERIFIED βœ“ MATCH six-1.17.0-py2.py3-none-any.whl βœ… PASS 10.8 KB βœ“ VERIFIED βœ“ MATCH apache-cassandra-4.1.9-bin.tar.gz βœ… PASS 49.5 MB βœ“ VERIFIED βœ“ MATCH ---------------------------------------------------------------------------------------------------- SUMMARY: 8/8 files successful | Total Size: 969.9 MB ================================================================================ πŸ” DETAILED CHECKSUM VERIFICATION ================================================================================ πŸ“ zookeeper-3.8.4-bin.tar.gz Expected: 284cb4675adb64794c63d95bf202d265cebddc0cda86ac86fb0ede8049de9187 Actual: 284cb4675adb64794c63d95bf202d265cebddc0cda86ac86fb0ede8049de9187 Status: βœ… VERIFIED - Checksums match πŸ“ kafka_2.13-3.7.0.tgz Expected: 65f26e5937bbb76dfe78dfb416730dfa7e3378b27e13fd1e204f1a1099bfaf9c Actual: 65f26e5937bbb76dfe78dfb416730dfa7e3378b27e13fd1e204f1a1099bfaf9c Status: βœ… VERIFIED - Checksums match πŸ“ janusgraph-full-1.0.0.zip Expected: b27bd135b81f056f756c143f720a4a89b67b73dceead4f752ee1bccee2877850 Actual: b27bd135b81f056f756c143f720a4a89b67b73dceead4f752ee1bccee2877850 Status: βœ… VERIFIED - Checksums match πŸ“ OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz Expected: d854baf8fcf835e28142d1519b88a1367c117e01fa1c18e34f9a1435d02a0437 Actual: d854baf8fcf835e28142d1519b88a1367c117e01fa1c18e34f9a1435d02a0437 Status: βœ… VERIFIED - Checksums match πŸ“ cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz Expected: 4e783545fb4722546bb2a432bff2b457361c22c8dd70eeb8b2fdfb2d48af01ba Actual: 4e783545fb4722546bb2a432bff2b457361c22c8dd70eeb8b2fdfb2d48af01ba Status: βœ… VERIFIED - Checksums match πŸ“ packaging-25.0-py3-none-any.whl Expected: 29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 Actual: 29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 Status: βœ… VERIFIED - Checksums match πŸ“ six-1.17.0-py2.py3-none-any.whl Expected: 4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 Actual: 4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 Status: βœ… VERIFIED - Checksums match πŸ“ apache-cassandra-4.1.9-bin.tar.gz Expected: 65ad4f01e732b1730472360b5613f607cc1d4717cb6e2be3881e8736207e4e34 Actual: 65ad4f01e732b1730472360b5613f607cc1d4717cb6e2be3881e8736207e4e34 Status: βœ… VERIFIED - Checksums match ================================================================================ πŸ“‹ Bundle Contents: Syndeia Cloud Packages: βœ… syndeia-cloud-3.7_cassandra_zookeeper_kafka_setup.zip (25.6 KB) βœ… syndeia-cloud-3.7_janusgraph_setup.zip (15.3 KB) βœ… syndeia-cloud-3.7.zip (2.4 GB) Infrastructure Packages: βœ… zookeeper-3.8.4-bin.tar.gz (13.9 MB) βœ… kafka_2.13-3.7.0.tgz (113.5 MB) βœ… janusgraph-full-1.0.0.zip (709.4 MB) βœ… OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz (41.4 MB) βœ… cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz (42.1 MB) βœ… packaging-25.0-py3-none-any.whl (64.9 KB) βœ… six-1.17.0-py2.py3-none-any.whl (10.8 KB) βœ… apache-cassandra-4.1.9-bin.tar.gz (49.5 MB) ================================================================================ πŸ“¦ Archive Location: C:\Users\jcp22\Downloads\offline-test\syndeia-cloud_infrastructure.zip πŸ“ Archive Size: 3.4 GB ================================================================================ πŸŽ‰ SYNDEIA CLOUD INFRASTRUCTURE ARCHIVE READY ================================================================================

Step 2: Transfer the zip file to the Target Server

Copy the syndeia-cloud_infrastructure.zip file from your Download Host to the user's home directory on the Target Server.

Using scp ON DOWNLOAD HOST:

scp syndeia-cloud_infrastructure.zip user@target-server:/home/user/

Step 3: Extract the Bundle on the Target Server

  1. ON TARGET SERVER: Log in as the installation user and navigate to your home directory.

    cd ~
  2. ON TARGET SERVER: Verify that the syndeia-cloud_infrastructure.zip file is present.

    ls -l
[user@target-server ~]$ ls -l -rw-r--r-- 1 user user 1014056738 Jul 2 10:30 syndeia-cloud_infrastructure.zip
  1. ON TARGET SERVER: Extract the syndeia-cloud_infrastructure.zip file. This will place all the required infrastructure files directly into your home directory.

    unzip syndeia-cloud_infrastructure.zip
[user@target-server ~]$ unzip syndeia-cloud_infrastructure.zip Archive: syndeia-cloud_infrastructure.zip inflating: packaging-25.0-py3-none-any.whl inflating: six-1.17.0-py2.py3-none-any.whl inflating: apache-cassandra-4.1.9-bin.tar.gz inflating: kafka_2.13-3.7.0.tgz inflating: cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz inflating: janusgraph-full-1.0.0.zip inflating: OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz inflating: zookeeper-3.8.4-bin.tar.gz inflating: syndeia-cloud-3.7.zip inflating: syndeia-cloud-3.7_cassandra_zookeeper_kafka_setup.zip inflating: syndeia-cloud-3.7_janusgraph_setup.zip
  1. ON TARGET SERVER: Confirm that the following files are present in the user’s home directory after extraction using the ls -l ~ command.
    - apache-cassandra-4.1.9-bin.tar.gz
    - cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz
    - janusgraph-full-1.0.0.zip
    - kafka_2.13-3.7.0.tgz
    - OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz
    - packaging-25.0-py3-none-any.whl

    - six-1.17.0-py2.py3-none-any.whl
    - syndeia-cloud-3.7.zip
    - syndeia-cloud-3.7_cassandra_zookeeper_kafka_setup.zip
    - syndeia-cloud-3.7_janusgraph_setup.zip
    - zookeeper-3.8.4-bin.tar.gz

ls -l ~
[user@target-server ~]$ unzip syndeia-cloud_infrastructure.zip -rwxrwxrwx 1 jp jp 43401920 Jul 16 02:00 OpenJDK11U-jre_x64_linux_hotspot_11.0.27_6.tar.gz -rwxrwxrwx 1 jp jp 51883388 Jul 16 02:00 apache-cassandra-4.1.9-bin.tar.gz -rwxrwxrwx 1 jp jp 44148241 Jul 16 02:00 cpython-3.10.17+20250517-x86_64-unknown-linux-gnu-install_only.tar.gz -rwxrwxrwx 1 jp jp 743882909 Jul 16 02:00 janusgraph-full-1.0.0.zip -rwxrwxrwx 1 jp jp 119028138 Jul 16 01:59 kafka_2.13-3.7.0.tgz -rwxrwxrwx 1 jp jp 66469 Jul 16 02:00 packaging-25.0-py3-none-any.whl -rwxrwxrwx 1 jp jp 11050 Jul 16 02:00 six-1.17.0-py2.py3-none-any.whl -rwxrwxrwx 1 jp jp 2149220183 Jul 15 12:21 syndeia-cloud-3.7.zip -rwxrwxrwx 1 jp jp 29506 Jul 15 12:20 syndeia-cloud-3.7.zip -rwxrwxrwx 1 jp jp 29559 Jul 15 12:20 syndeia-cloud-3.7.zip -rwxrwxrwx 1 jp jp 14609453 Jul 16 01:59 zookeeper-3.8.4-bin.tar.gz

Next Steps: Continue Installation

Your Target Server is now prepared with all the necessary offline infrastructure components. The standard Syndeia Cloud Infrastructure installers are designed to detect these pre-staged files in your home directory and will use them instead of attempting to download them from the internet.

You can now proceed with the standard installation or upgrade processes from one of the following installation guides on the target server.