Skip to main content

qRemoteX — Federated Remote Execution Agent for qRaptor

Project description

qRemoteX — Federated Remote Execution Agent

Lightweight agent that connects to the qRaptor Executor Gateway via WebSocket (QRP protocol) and executes Python scripts and tools on customer infrastructure — on-prem, VPC, GPU clusters, or edge.

Install

Docker (Recommended)

docker run -d \
  --name qremotex \
  -e QRAPTOR_GATEWAY_URL=wss://exec-{shortId}.qraptor.app/ws/executor \
  -e QRAPTOR_API_KEY=qrx_prod_... \
  qraptor/qremotex:latest

pip (PyPI)

pip install qremotex

Kubernetes (Helm)

helm install qremotex oci://registry-1.docker.io/qraptor/qremotex \
  --set config.gatewayUrl=wss://exec-{shortId}.qraptor.app/ws/executor \
  --set secrets.apiKey=qrx_prod_...

Quick Start (Development)

# Install from source (core only)
pip install -e .

# Install with built-in tool handlers (db_query, http_request, file_parse, web_crawler)
pip install -e ".[tools]"

# Install dev dependencies (pytest, ruff)
pip install -e ".[dev]"

Run

export QRAPTOR_GATEWAY_URL="wss://exec-{shortId}.qraptor.app/ws/executor"
export QRAPTOR_API_KEY="qrx_prod_..."

qremotex

Or with python -m:

python -m qremotex.main

Configuration (Environment Variables)

Variable Required Default Description
QRAPTOR_GATEWAY_URL Yes WebSocket URL (wss://...)
QRAPTOR_API_KEY Yes API key (qrx_{env}_{secret})
QRAPTOR_EXECUTOR_ID No auto (uuid4) Stable executor ID
QRAPTOR_EXECUTOR_NAME No hostname Display name
CONCURRENCY No 25 Max parallel jobs
HEARTBEAT_SEC No 20 Heartbeat interval (seconds)
EXEC_TIMEOUT_SEC No 300 Default execution timeout
MAX_SCRIPT_SIZE_KB No 512 Max script size (KB)
MAX_MEMORY_MB No 2048 Memory limit per execution
LABELS No {} JSON labels for routing ({"region":"us-east-1","gpu":"true"})
LOG_LEVEL No INFO Logging level
QRAPTOR_API_KEY_FILE No Path to key file for hot-reload (SIGHUP)
QRAPTOR_EXTRA_PACKAGES No Space-separated pip packages to install at startup (Docker only)

Installing Extra Packages

qRemoteX ships with core dependencies only. Add packages your agents need:

# Docker: inline packages
docker run -d \
  -e QRAPTOR_EXTRA_PACKAGES="pandas torch boto3" \
  -e QRAPTOR_GATEWAY_URL=wss://... \
  -e QRAPTOR_API_KEY=qrx_prod_... \
  qraptor/qremotex:latest

# Docker: custom image (recommended for production)
# Dockerfile:
#   FROM qraptor/qremotex:latest
#   USER root
#   RUN pip install --no-cache-dir pandas torch boto3
#   USER qremotex

# pip: install alongside qremotex
pip install qremotex pandas torch boto3

See docs/EXTENDING_QREMOTEX.md for all installation patterns.

Deployment Options

Method Best For Registry
Docker Production, easy setup Docker Hub: qraptor/qremotex
pip Dev/testing, native Python PyPI: pip install qremotex
Helm Kubernetes clusters OCI: oci://registry-1.docker.io/qraptor/qremotex
Binary Air-gapped, no Python/Docker Download from Studio UI

Key Rotation

Rotate keys without restart:

  1. Set QRAPTOR_API_KEY_FILE=/path/to/key.txt
  2. Write the new key to the file
  3. Send kill -HUP <pid> to the agent process

Tests

pip install -e ".[dev]"
pytest tests/ -v

Requirements

  • Python 3.13+ (for pip install)
  • Docker (for container deployment)
  • A qRaptor account with an active subscription

Architecture

See docs/QREMOTEX_ARCHITECTURE_AND_IMPLEMENTATION_PLAN.md for full design.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qremotex-2.0.11590.tar.gz (139.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qremotex-2.0.11590-py3-none-any.whl (49.4 kB view details)

Uploaded Python 3

File details

Details for the file qremotex-2.0.11590.tar.gz.

File metadata

  • Download URL: qremotex-2.0.11590.tar.gz
  • Upload date:
  • Size: 139.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for qremotex-2.0.11590.tar.gz
Algorithm Hash digest
SHA256 55b7bd210124d3dc927f77811cc0e173d4a1960a6ef1897d7f6cd1f486defa13
MD5 e2b537f4da0e03da48d2d9e8c4a6a5fe
BLAKE2b-256 53b664a8600f8a9b14684d7a4f1f42469bea4e78d8e3ae4e31bb1f82f9fa9b5d

See more details on using hashes here.

File details

Details for the file qremotex-2.0.11590-py3-none-any.whl.

File metadata

  • Download URL: qremotex-2.0.11590-py3-none-any.whl
  • Upload date:
  • Size: 49.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for qremotex-2.0.11590-py3-none-any.whl
Algorithm Hash digest
SHA256 fd97a738a4227628bcce766c97da057f5fa7b41e0d88ae66c27d2c6149378eb4
MD5 74e3c1e7d9e93da96833432a1861a870
BLAKE2b-256 e45b611d7d3e2d57958473ccbf139a6892604e29623c4860daa2edae3c31b719

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page