Skip to main content

LUML Relay

Relay and agent that expose local web services through LUML. The agent runs next to a service on a machine nobody can reach, such as a job on a cluster, and keeps one outgoing connection to a relay. The relay serves the service under a hostname of its own, and LUML decides who may open it.

LUML uses it for relayed flows: a Flow instance that runs next to an experiment and is opened from the LUML app.

Installation

pip install "luml-relay[luml]"

The luml extra lets the agent start sessions at LUML with an API key. The server extra is only needed to run a relay.

To expose a flow, install the SDK with the flow extra instead. It brings the relay along and starts the agent for you:

pip install "luml_sdk[flow]" lumlflow

Exposing a service

luml-relay expose exposes a service that listens on a loopback port. It reads the LUML API key from LUML_API_KEY and starts a session in an orbit that has a relay assigned:

export LUML_API_KEY="luml_your_api_key"
luml-relay expose 5000 --organization "My organization" --orbit "Research" --label "resnet-sweep"

The command prints the session's public address and serves it until it is stopped or LUML ends the session. --bearer-token sends a bearer token to the service with every request, such as Flow's session token from the launch URL of lumlflow ui.

Running a relay

A relay is registered in the Relays tab of the organization settings in LUML, with a label, a base domain and the wss address agents connect to. Registering shows the relay's token once.

The relay is published as the container image ghcr.io/luml-ai/luml-relay. It reads the address of LUML from LUML_BASE_URL and its token from LUML_RELAY_TOKEN, and it listens on port 8080:

docker run -d -p 8080:8080 \
  -e LUML_BASE_URL=https://api.luml.ai \
  -e LUML_RELAY_TOKEN=dfsrelay_your_relay_token \
  ghcr.io/luml-ai/luml-relay:latest

The same server runs from the package with pip install "luml-relay[server]" and luml-relay serve. luml-relay serve --help lists its limits.

The relay serves plain HTTP, so TLS is terminated in front of it. The base domain needs a wildcard DNS record and a wildcard certificate. Set LUML_RELAY_COOKIE_SECRET to keep viewers' browser sessions across restarts.

Documentation

Metadata

Release files for luml-relay 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for luml-relay 0.1.0
File Interpreter ABI Platform Actions
luml_relay-0.1.0-py3-none-any.whl Python 3 none any Details for luml_relay-0.1.0-py3-none-any.whl

Release files / luml_relay-0.1.0-py3-none-any.whl

Download URL luml_relay-0.1.0-py3-none-any.whl
Size 36.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f3579908e178aee853f88f93e85dc954873abcdcb3962d2e4f91a9794840988
BLAKE2b-256 checksum
How to use checksums
2c5e6c827302a6d36cf434a482ae6af8601af289cc9706151da1e9623f767928
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for luml-relay 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page