Skip to content

Install

bmwl edited this page Nov 20, 2025 · 1 revision

Install Guide

This page contains detailed installation instructions for the Soft Data Diode Tools. For basic setup, see the main README.

OS Prerequisites

Sender Side

The sender side requires more OS dependencies since it handles content capture:

  • Python 3
  • Browser and WebDriver (headless ok)
  • vncsnapshot program
  • Python venv virtual environment recommended

Receiver Side

The receiver side has minimal dependencies. You pretty much just need Python 3.

Step-by-Step Installation

1. Clone the Repository

cd /opt
git clone https://github.com/bmtwl/SoftDataDiode.git
cd SoftDataDiode

2. Create a Virtual Environment (Recommended for Sender)

A virtual environment is strongly recommended for the sender side, particularly because Selenium can be difficult to get working with OS packages.

python -m venv venv
source venv/bin/activate

To exit the virtual environment when done:

deactivate

3. Install Python Packages

Sender Side Installation:

pip install opencv-python-headless cryptography selenium numpy

Receiver Side Installation:

pip install Pillow cryptography

4. Generate Encryption Key

Both sender and receiver must use the same encryption key. Generate it using:

python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

Save this key for use in your configuration files.

Browser and WebDriver Setup for Selenium

Selenium requires both a browser and a matching WebDriver to be installed, even on headless systems.

Chrome/Chromium Setup

  1. Install Chrome or Chromium browser
  2. Install the matching ChromeDriver version
  3. Ensure the WebDriver is in your PATH or specify its location in your configuration

Common Selenium Issues

Selenium may crash if it cannot find the browser or WebDriver. The recommended approach is to use a virtual environment rather than OS packages, as some distributions have broken Selenium packages (notably Debian's python3-selenium).

For detailed Selenium setup instructions, refer to the Selenium Project documentation.

Next Steps

Clone this wiki locally