Skip to main content

rdc-proxy-unifi

UniFi/EdgeSwitch port-counter plugin for rdc-proxy.

Adds a "switch" side channel to the rdc-proxy dashboard containing live port counters polled via SSH from a UniFi/EdgeSwitch running swctrl.

Prerequisites

  • rdc-proxy already installed on the same host (it provides the plugin loader + dashboard).
  • A UniFi/EdgeSwitch (any model supporting swctrl port show counters).
  • An SSH key that the rdc-proxy service user can use to log into the switch.

Install

Assuming rdc-proxy is already running at /opt/rdc-proxy:

# Clone and install into the rdc-proxy venv
sudo git clone https://github.com/andrewroydshayes/rdc-proxy-unifi.git /opt/rdc-proxy-unifi
sudo /opt/rdc-proxy/venv/bin/pip install /opt/rdc-proxy-unifi

# Place your SSH key where the service can read it (0600 root:root)
sudo cp ~/.ssh/id_rsa_unifi /etc/rdc-proxy/id_rsa_unifi
sudo chmod 600 /etc/rdc-proxy/id_rsa_unifi

# Configure via env vars in /etc/rdc-proxy/rdc-proxy.env (see below), then:
sudo systemctl restart rdc-proxy

The rdc-proxy service will log [plugins] loaded: unifi on startup.

Or use the included installer:

curl -fsSL https://raw.githubusercontent.com/andrewroydshayes/rdc-proxy-unifi/main/install/install-unifi.sh \
  | sudo bash

Configuration

Add to /etc/rdc-proxy/rdc-proxy.env:

RDC_UNIFI_SWITCH_IP=10.0.0.97
RDC_UNIFI_SWITCH_USER=root
RDC_UNIFI_SSH_KEY=/etc/rdc-proxy/id_rsa_unifi
RDC_UNIFI_PORT_ID=9
RDC_UNIFI_POLL_INTERVAL=30
RDC_UNIFI_SIDE_CHANNEL=switch

All env vars have defaults — only set the ones you need to change.

How the side channel surfaces

The plugin calls state.update_side_channel("switch", {...counters...}) once per poll. rdc-proxy's dashboard collector merges all side channels into the JSON returned by /api/status, under side_channels. For UI back-compat the "switch" channel is ALSO mirrored at the top level as switch in each dashboard history point.

Development

pip install -e ".[dev]"
pytest

License

MIT.

Metadata

Release files for rdc-proxy-unifi 0.2.0

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

Source distribution (sdist)

Source distribution for rdc-proxy-unifi 0.2.0
File Size Uploaded
rdc_proxy_unifi-0.2.0.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rdc-proxy-unifi 0.2.0
File Interpreter ABI Platform
rdc_proxy_unifi-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.9 kB

Release files / rdc_proxy_unifi-0.2.0.tar.gz

Download URL rdc_proxy_unifi-0.2.0.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c09fe0c549619e9ff13fca125422e45f543dbd8e7540bc8fbd205bdfd23bb509
BLAKE2b-256 checksum
How to use checksums
ae9a890f1f97a2e730ce763c003e0f28761cb47d26591c462207bfef15dbbb3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 19, 2026.

Transparency log

Release files / rdc_proxy_unifi-0.2.0-py3-none-any.whl

Download URL rdc_proxy_unifi-0.2.0-py3-none-any.whl
Size 4.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84d3dd64f3887aa45a3c23481a83619bae5d83f8a0a6e6609cfcdf3bf5222c1a
BLAKE2b-256 checksum
How to use checksums
6030db097e47c89c9fd07ad5b0c6d4cf011833f4434a297f823317796ac8e4ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

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