Installation
Praxrr ships as a Docker image, a compiled Deno binary, or a source checkout for development. Pick the path that matches how you run your Arr stack.
Prerequisites
Section titled “Prerequisites”All install paths need network access to your Arr instances and, when linking a remote PCD, outbound Git or HTTPS access to the configuration repository.
- Docker: Docker Engine with Compose v2
- From source: Git, Deno 2.x
- Toolchain manager: mise for repository-pinned tools
- Parser development (optional): Go 1.26.5, pinned in
mise.toml
Docker (recommended)
Section titled “Docker (recommended)”Pull the develop channel image and mount a persistent config volume:
services: praxrr: image: ghcr.io/yandy-r/praxrr:develop container_name: praxrr ports: - '6868:6868' volumes: - ./config:/config environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - PARSER_HOST=parser - PARSER_PORT=5000 - ARR_CREDENTIAL_MASTER_KEY=REDACTED - ARR_CREDENTIAL_MASTER_KEY_VERSION=v1 depends_on: parser: condition: service_healthy
parser: image: ghcr.io/yandy-r/praxrr-parser:develop container_name: praxrr-parser expose: - '5000'The UI listens on port 6868 inside the container. Map host ports as needed.
The parser image runs as a non-root user and is reachable only on the private
Compose network. Do not add a host ports mapping for port 5000. Its container
health check calls the private GET /health route; application health is reported
separately by Praxrr at GET /api/v1/health.
Note: The parser service is optional. Linking, syncing, and most features work without it. Remove the
parserservice andPARSER_*variables when you do not need CF or quality profile testing.
See Docker deployment for compose files, volumes, and networking details.
Standalone archive
Section titled “Standalone archive”Release archives contain the praxrr application, its server.js and static/
assets, and an adjacent praxrr-parser binary (.exe on Windows). Run praxrr
from the extracted archive; when no explicit PARSER_HOST is set, it starts the
adjacent parser on loopback, waits for parser health, and stops the child process
with the app. If the parser is absent or unhealthy, Praxrr still starts and only
parser-dependent testing and simulation features are unavailable.
Set APP_BASE_PATH to the directory that holds Praxrr data (default /config
in Docker):
export APP_BASE_PATH=/path/to/praxrr-dataexport PORT=6868export ARR_CREDENTIAL_MASTER_KEY=REDACTEDexport ARR_CREDENTIAL_MASTER_KEY_VERSION=v1./praxrrPraxrr stores the SQLite app database, PCD clones, logs, and backups under
APP_BASE_PATH. Set PARSER_HOST and PARSER_PORT only when using an externally
managed parser instead of the adjacent binary.
Stable container releases publish to ghcr.io/yandy-r/praxrr:latest. Beta and
develop channels use :beta and :develop tags. See
Upgrading for channel semantics.
From source
Section titled “From source”Clone the monorepo and start the development launcher:
git clone https://github.com/yandy-r/praxrr.gitcd praxrrmise installdeno task devThis installs the pinned Go 1.26.5 toolchain and runs the Go parser plus Vite dev
server on port 6969. Use
deno task dev:noauth when you want authentication disabled for local testing.
Warning:
AUTH=offanddeno task dev:noauthdisable login. Never expose those settings on untrusted networks. PreferAUTH=on(default) orAUTH=oidcin production.
Required secrets
Section titled “Required secrets”Before bridging Arr instances, set credential encryption keys:
| Variable | Purpose |
|---|---|
ARR_CREDENTIAL_MASTER_KEY |
Base64-encoded 32-byte AES-GCM key |
ARR_CREDENTIAL_MASTER_KEY_VERSION |
Version label for the active key |
Store these in your secret manager or .env file. Never commit real keys to
Git.
First login
Section titled “First login”With AUTH=on (default), create the initial admin account on first launch. API
access uses the X-Api-Key header or ?apikey= query parameter after you
generate a key in settings.
Next steps
Section titled “Next steps”- Follow the Quick Start to link a PCD and sync your first profile.
- Read Configuration for environment variables and auth modes.