Skip to content

Installation

Requirements

  • OS: Linux (amd64 or arm64). The Docker image and prebuilt binaries are statically linked against musl — no glibc or distro requirement.
  • Clustering: A Redis instance is required only when running multiple Pylon nodes. Single-node deployments have no external dependencies.

Install

A multi-arch image (linux/amd64 and linux/arm64) is published to the GitHub Container Registry on every release.

docker pull ghcr.io/i-rocky/pylon:latest

Available tags: latest, X.Y.Z (exact release), and X.Y (latest patch in a minor series).

To run Pylon with Docker, mount your apps.json and expose port 7000:

docker run -d --name pylon \
  -p 7000:7000 \
  -v "$PWD/apps.json:/etc/pylon/apps.json:ro" \
  -e PYLON_APPS_PATH=/etc/pylon/apps.json \
  --ulimit nofile=1048576:1048576 \
  ghcr.io/i-rocky/pylon:latest

Tip

The --ulimit nofile=1048576:1048576 flag raises the open-file limit so Pylon can handle large numbers of concurrent WebSocket connections.

Each tagged release on the GitHub Releases page includes prebuilt Linux binaries for x86_64 and aarch64 (statically linked against musl — no glibc or distro requirement), each packaged as a .tar.gz with a matching .sha256 checksum file.

Download, verify, and extract:

# Replace X.Y.Z and ARCH (x86_64 or aarch64) as appropriate.
# Note the asset name carries the leading "v" of the tag.
ASSET=pylon-vX.Y.Z-ARCH-unknown-linux-musl

curl -LO "https://github.com/i-rocky/pylon/releases/download/vX.Y.Z/${ASSET}.tar.gz"
curl -LO "https://github.com/i-rocky/pylon/releases/download/vX.Y.Z/${ASSET}.tar.gz.sha256"

sha256sum -c "${ASSET}.tar.gz.sha256"
tar xzf "${ASSET}.tar.gz"

# The tarball unpacks into a directory containing the binary plus
# LICENSE, README.md, apps.example.json, and a systemd/ directory with
# pylon.service, pylon.env.example and 99-pylon.sysctl.conf.
"./${ASSET}/pylon" --version

Building from source requires a Rust toolchain. Pylon pins its toolchain version in rust-toolchain.toml — rustup will download the correct version automatically.

git clone https://github.com/i-rocky/pylon.git
cd pylon
cargo build --release

The binary is written to target/release/pylon.

./target/release/pylon --version

You can also run directly without a separate build step:

cargo run --release