Skip to main content

Requirements

System Requirements

  • Ubuntu 20.04+ or similar Debian-based Linux
  • x86_64 architecture
  • Root or sudo access
  • OpenSSL (for SSL certificate generation)

Optional: Oracle Instant Client

Required only if using Oracle as a source database.
  1. Download Oracle Instant Client 23.4:
    • instantclient-basic-linux.x64-23.4.0.24.05.zip
    • instantclient-sdk-linux.x64-23.4.0.24.05.zip
  2. Install dependencies:
    sudo apt-get install -y unzip libaio1
    
  3. Extract and configure:
    sudo mkdir -p /opt/oracle
    sudo unzip instantclient-basic-linux.x64-23.4.0.24.05.zip -d /opt/oracle/
    sudo unzip instantclient-sdk-linux.x64-23.4.0.24.05.zip -d /opt/oracle/
    sudo ln -s /opt/oracle/instantclient_23_4 /opt/oracle/instantclient
    
  4. Configure library path:
    echo "/opt/oracle/instantclient" | sudo tee /etc/ld.so.conf.d/oracle-instantclient.conf
    sudo ldconfig
    

Installation

Step 1: Extract the Package

tar -xzf wirekite.tar.gz
cd wirekite

Step 2: Run the Installer

sudo ./install.sh
The installer will:
  1. Install binaries to /opt/wirekite
  2. Create the wirekite system user
  3. Create configuration at /etc/wirekite/wirekite.cfg
  4. Set up the instance directory structure
  5. Configure the license directory

Step 3: GUI Setup (Optional)

During installation, you’ll be prompted to set up the web interface:
Do you want to set up the GUI/UX server? (y/n)
If you choose yes, the installer will:
  • Generate self-signed SSL certificates (valid for 365 days)
  • Create the logs directory at /opt/wirekite/ux/logs
  • Optionally install the systemd service
  • Optionally start the UX server
For production, replace the self-signed certificates with certificates from a trusted CA.

Step 4: Install License

Wirekite requires two license files to operate: a .license file containing the encrypted license data and a .key file containing the decryption key. These are provided to you when you purchase or receive a Wirekite license.
sudo ./install-license.sh /path/to/wirekite.license /path/to/wirekite.key
The installer validates the license before installing it. If validation passes, it copies the files to /opt/wirekite/license/ with secure permissions (mode 600, owned by the wirekite user).
Wirekite requires a valid license to run. The orchestrator validates the license at startup and will exit immediately if the license is missing, expired, or invalid.

Directory Structure

After installation, Wirekite creates the following structure:
/opt/wirekite/
├── orchestrator/wirekite      # Main orchestrator binary
├── ux/                        # Web interface
│   ├── server/
│   │   ├── ux-server          # Server binary
│   │   ├── ux-server.cfg      # Server configuration
│   │   └── certs/             # SSL certificates
│   ├── static/                # Web assets
│   └── logs/                  # Server logs
├── instance/                  # Migration workspace
│   └── config/                # Configuration directory
├── license/                   # License files
│   ├── license               # License validation utility
│   ├── wirekite.license      # Encrypted license data
│   └── wirekite.key          # License decryption key
├── mysql/                     # MySQL binaries
├── postgres/                  # PostgreSQL binaries
├── oracle/                    # Oracle binaries
├── sqlserver/                 # SQL Server binaries
├── snowflake/                 # Snowflake loader
├── bigquery/                  # BigQuery loader
├── spanner/                   # Spanner loader
├── firebolt/                  # Firebolt loader
├── databricks/                # Databricks loader
└── singlestore/               # SingleStore loader

/etc/wirekite/
└── wirekite.cfg               # System configuration

Configuration

System Configuration

The main configuration file is located at /etc/wirekite/wirekite.cfg:
WIREKITE_HOME=/opt/wirekite
ORACLE_LIB_PATH=/opt/oracle/instantclient
You can create a user-specific configuration at /etc/wirekite/wirekite_<username>.cfg which takes precedence over the system-wide configuration.

UX Server Configuration

The web interface configuration is at /opt/wirekite/ux/server/ux-server.cfg:
PORT=8443
CERT_FILE=/opt/wirekite/ux/server/certs/server.crt
KEY_FILE=/opt/wirekite/ux/server/certs/server.key
STATIC_DIR=/opt/wirekite/ux/static
CONFIG_DIR=/opt/wirekite/ux/configs
ORCHESTRATOR_BIN=/opt/wirekite/orchestrator/wirekite

License Management

License Files

A Wirekite license consists of two files:
wirekite.license
file
Encrypted license file containing customer name, expiration date, feature flags, and optional host binding and usage caps. The file is AES-256 encrypted and signed with HMAC-SHA256 to prevent tampering.
wirekite.key
file
Decryption key used to read the license file. Must be kept secure and paired with the correct .license file.
Both files are stored at /opt/wirekite/license/ with mode 600 permissions.

How License Validation Works

The orchestrator validates the license at startup before doing anything else. If validation fails, it prints an error and exits with code 1. The following checks are performed:
CheckError Message
License file exists and is readableLicense check fail: failed to read license file
Signature is valid (file not tampered with)license file has been tampered with
License has not expiredLicense has expired
System clock is not set before the issued dateLicense issued date is in the future
MAC address matches (if host-bound)Host ID mismatch

Validating Your License

You can manually validate a license at any time using the license utility:
/opt/wirekite/license/license -cmd validate \
  -input /opt/wirekite/license/wirekite.license \
  -keyfile /opt/wirekite/license/wirekite.key
This outputs the license details including customer name, expiration date, days remaining, features, and any validation errors.

Checking Licensed Features

To list all features in your license:
/opt/wirekite/license/license -cmd features \
  -input /opt/wirekite/license/wirekite.license \
  -keyfile /opt/wirekite/license/wirekite.key
To check for a specific feature:
/opt/wirekite/license/license -cmd features \
  -input /opt/wirekite/license/wirekite.license \
  -keyfile /opt/wirekite/license/wirekite.key \
  -check-feature prod

Usage Caps

Some licenses include usage caps that limit the total bytes processed for data migrations and CDC replication. When a cap is reached, the affected loader exits gracefully with exit code 2 and the orchestrator reports the limit in its log. Usage is tracked in /opt/wirekite/instance/usage.log. You can view current usage through the Web Interface under the license section.
A usage cap of 0 means unlimited. If your license does not include usage caps, there are no byte limits on data migration or CDC replication.

Replacing a License

To replace an expired or updated license, simply run the installer again with the new files:
sudo ./install-license.sh /path/to/new-wirekite.license /path/to/new-wirekite.key
The installer validates the new license before overwriting the existing one. Running migrations do not need to be restarted - the new license takes effect the next time validation is performed.

Systemd Service

If you installed the systemd service, manage the UX server with:
# Enable on boot
sudo systemctl enable wirekite-ux

# Start service
sudo systemctl start wirekite-ux

# Check status
sudo systemctl status wirekite-ux

# View logs
sudo journalctl -u wirekite-ux -f

# Restart after config changes
sudo systemctl restart wirekite-ux

Accessing the Web Interface

  1. Open your browser and navigate to https://<server-ip>:8443
  2. On first access, you’ll be redirected to create an admin account
  3. Log in with your new credentials
  4. Start configuring sources, targets, and migrations
The initial admin user can only be created once. Store these credentials securely.

Upgrading

To upgrade an existing installation:
  1. Stop the UX server:
    sudo systemctl stop wirekite-ux
    
  2. Run the installer:
    sudo ./install.sh
    
The installer automatically preserves:
  • /opt/wirekite/instance/ - Your migration configurations and data
  • /opt/wirekite/license/ - Your license files
  1. Start the UX server:
    sudo systemctl start wirekite-ux
    

Uninstalling

To remove Wirekite:
sudo ./uninstall.sh
Add -y to skip confirmation:
sudo ./uninstall.sh -y
The uninstaller will:
  1. Stop the UX server
  2. Remove the systemd service
  3. Remove /opt/wirekite
  4. Remove the wirekite system user
  5. Remove /etc/wirekite
Uninstalling removes all migration configurations and data. Back up /opt/wirekite/instance/ before uninstalling if you need to preserve your migrations.

Troubleshooting

License Validation Failed

Verify your license is valid:
/opt/wirekite/license/license -cmd validate \
  -input /opt/wirekite/license/wirekite.license \
  -keyfile /opt/wirekite/license/wirekite.key
Check that:
  • Both wirekite.license and wirekite.key exist in /opt/wirekite/license/
  • File permissions are set correctly (mode 600, owned by wirekite:wirekite)
  • The current date is between the issued and expiry dates
  • The .key file matches the .license file (they must be from the same pair)
  • The system clock is accurate (a clock set before the license issued date will fail validation)
If you see Host ID mismatch, your license is bound to a specific host’s MAC address. Contact your license provider to get a license for this host or a host-independent license.

Migration Stopped with Exit Code 2

Exit code 2 indicates a usage cap has been reached. Check the orchestrator log for a message like data migration limit exceeded or CDC replication limit exceeded. View your current usage through the web interface or contact your license provider to increase your usage cap.

UX Server Won’t Start

  1. Check the logs:
    tail -f /opt/wirekite/ux/logs/ux-server.log
    tail -f /opt/wirekite/ux/logs/ux-server-error.log
    
  2. Verify SSL certificates exist:
    ls -la /opt/wirekite/ux/server/certs/
    
  3. Check port 8443 is not in use:
    sudo lsof -i :8443
    
  4. Verify file permissions:
    ls -la /opt/wirekite/ux/server/
    

Oracle Connection Issues

  1. Verify Oracle Instant Client is installed:
    ls -la /opt/oracle/instantclient/
    
  2. Check library configuration:
    ldconfig -p | grep oracle
    
  3. Verify the symlink exists:
    ls -la /opt/oracle/instantclient