Skip to main content

Lightweight MDM control server for LBE VR headsets (PICO), with a web console and LAN discovery.

Project description

styly-mdm

The control server for STYLY-MDM — a lightweight Mobile Device Management system for Location Based Experience (LBE) VR headsets. It bridges PICO VR HMDs and a browser-based admin console, letting you launch apps and install APKs on many headsets at once over the LAN.

STYLY-MDM is designed for use within a local area network (LAN). It has no authentication. Do not expose the server to the public internet.

Install & run

Run without cloning the repository:

# One-off, no install (recommended):
uvx styly-mdm

# Or install, then run:
pip install styly-mdm
styly-mdm

The server starts on port 7070 and prints its LAN IP addresses. Open http://<server-ip>:7070 in a browser for the web console. Devices on the LAN discover the server automatically via UDP broadcast (port 7071).

Configuration

A command-line flag overrides the corresponding environment variable.

Option Env var Flag Default
HTTP/WebSocket port MDM_WS_PORT --port 7070
UDP discovery port MDM_DISCOVERY_PORT 7071
Data directory (uploaded APKs, pushed bundles, device registry) MDM_DATA_DIR --data-dir current directory
Simultaneous device downloads, server-wide MDM_MAX_CONCURRENT_TRANSFERS --max-concurrent-transfers 5
Seconds a device may hold a transfer slot MDM_TRANSFER_TIMEOUT 600

The data directory holds everything the server persists: uploaded APKs (<data-dir>/apks/), pushed file bundles (<data-dir>/bundles/), and the device registry (<data-dir>/device_registry.json). It defaults to the directory the server is started from, so uvx styly-mdm in a fresh directory comes up with no devices or groups.

Transfer throttling bounds how many devices download at once — one server-wide pool shared by every install and push/sync job; the rest queue until a slot frees.

Only one server may answer discovery on a given port: the server probes on startup and exits if another STYLY-MDM server already responds on its discovery port. Run a second server alongside the first by giving it a different MDM_DISCOVERY_PORT and MDM_WS_PORT.

You can also start it as a module: python -m styly_mdm.

Documentation

Full documentation, protocol references, and the Android MDM client live in the project repository: https://github.com/styly-dev/STYLY-MDM.

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

styly_mdm-0.3.0.tar.gz (102.6 kB view details)

Uploaded Source

Built Distribution

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

styly_mdm-0.3.0-py3-none-any.whl (71.0 kB view details)

Uploaded Python 3

File details

Details for the file styly_mdm-0.3.0.tar.gz.

File metadata

  • Download URL: styly_mdm-0.3.0.tar.gz
  • Upload date:
  • Size: 102.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for styly_mdm-0.3.0.tar.gz
Algorithm Hash digest
SHA256 856940a559e84cbc6b79788309e821ca79002cbcafeab5d6d1fd6e94b57aac83
MD5 5bfb2079b7148715b7c8385bd2f1654e
BLAKE2b-256 e474652f494cad07923e51277cd42a87c6ee8ece8e59e9d6761477da872f1bfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for styly_mdm-0.3.0.tar.gz:

Publisher: publish-pypi.yml on styly-dev/STYLY-MDM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file styly_mdm-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: styly_mdm-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 71.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for styly_mdm-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5050fff06dfaa8c63b25f6b7a5802ea244c0d8ffc42c4384872d6c47da7e4598
MD5 f4f0a73ce4223d7685caf5a09ab3f7be
BLAKE2b-256 ed7913aef81f006cc25f2cc1401f1c6392a4d212e0cb6f32e51a586f12153f93

See more details on using hashes here.

Provenance

The following attestation bundles were made for styly_mdm-0.3.0-py3-none-any.whl:

Publisher: publish-pypi.yml on styly-dev/STYLY-MDM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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