Installation & Quick Start
Installation
Binary
# Linux
curl -fsSL https://get.plexsphere.com/plexd | sh
# macOS — plexd runs as root, so the installer needs it too
curl -fsSL https://get.plexsphere.com/plexd | sudo shWindows has no install script: a POSIX shell script cannot serve it. Follow the Windows Installation Guide, which downloads the binary and registers the service by hand from an elevated PowerShell.
Container
docker pull ghcr.io/plexsphere/plexd:latestEvery release publishes the same multi-arch image under several tags, so you can pin at whatever granularity you want:
| Tag | Example | Moves |
|---|---|---|
v<version> | v0.2.0 | Never — the release version, spelled as the git tag and the GitHub release name |
<version> | 0.2.0 | Never — the same image, without the v prefix |
<major>.<minor> | 0.2 | With each patch release in that minor series |
<major> | 0 | With each release in that major series |
latest | With each release | |
dev | With each push to main — unreleased, not for production |
v<version> and <version> point at the same manifest digest; pick the spelling that matches how you record versions elsewhere.
OpenWRT
No opkg package yet - download the release binary for your package architecture (e.g. plexd-linux-mipsle for mipsel_24kc devices) and manage it with the procd init script from deploy/openwrt/ in the repository. See the README there for requirements and step-by-step instructions.
From Source
Requires Go 1.26+. Building needs nothing else. Running the Linux data plane additionally needs WireGuard tools and nftables on the host; macOS and Windows need nothing beyond the binary, because both carry their own userspace WireGuard.
git clone https://github.com/plexsphere/plexd.git
cd plexd
make buildQuick Start
Platform-Provisioned Node (Token via Cloud-Init)
No manual steps required - plexd reads the bootstrap token automatically:
plexd upManual Enrollment
Generate a token in the Plexsphere UI or CLI, then:
# Interactive prompt (recommended - token never visible in shell history or process list)
plexd join
# From file
plexd join --token-file /etc/plexd/bootstrap-token
# From environment variable
PLEXD_BOOTSTRAP_TOKEN=plx_enroll_a8f3c7... plexd joinRunning as a Service
plexd install registers plexd with whatever service manager the host has, and never starts it. Start it with the matching command:
# Linux — systemd
sudo plexd install
sudo systemctl enable --now plexd# macOS — launchd
sudo plexd install
sudo launchctl bootstrap system /Library/LaunchDaemons/com.plexsphere.plexd.plist# Windows — Service Control Manager, from an elevated PowerShell
.\plexd.exe install
sc.exe start plexdThe macOS and Windows guides carry the full walkthrough, including verification and uninstall.
Kubernetes (DaemonSet)
Production: Use External Secrets Operator (ESO) to provision the bootstrap token from your secrets manager (e.g. Vault, AWS Secrets Manager) instead of storing it as a plain Secret.
apiVersion: v1
kind: Secret
metadata:
name: plexd-bootstrap
namespace: plexd-system
type: Opaque
stringData:
token: "plx_enroll_a8f3c7..."
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: plexd
namespace: plexd-system
spec:
selector:
matchLabels:
app: plexd
template:
metadata:
labels:
app: plexd
spec:
hostNetwork: true
serviceAccountName: plexd
containers:
- name: plexd
image: ghcr.io/plexsphere/plexd:latest
securityContext:
capabilities:
add:
- NET_ADMIN
- NET_RAW
env:
- name: PLEXD_API
value: "https://api.plexsphere.com"
- name: PLEXD_BOOTSTRAP_TOKEN
valueFrom:
secretKeyRef:
name: plexd-bootstrap
key: token
volumeMounts:
- name: plexd-data
mountPath: /var/lib/plexd
volumes:
- name: plexd-data
hostPath:
path: /var/lib/plexd
type: DirectoryOrCreateDocker (Bridge Mode)
services:
plexd:
image: ghcr.io/plexsphere/plexd:latest
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- plexd-data:/var/lib/plexd
environment:
PLEXD_API: "https://api.plexsphere.com"
PLEXD_BOOTSTRAP_TOKEN_FILE: /run/secrets/bootstrap-token
PLEXD_MODE: bridge
secrets:
- bootstrap-token
restart: unless-stopped
volumes:
plexd-data:
secrets:
bootstrap-token:
file: ./bootstrap-tokenSee Also
- Platform Support — what Linux, macOS and Windows each support
- macOS Installation Guide
- Windows Installation Guide
- Configuration Reference
- Environment Variables
- CLI Reference