Skip to main content

Web Interface

Served by the same binary as the backend. Default: http://localhost:3000.

Header bar

Visible on every page. Shows engine state and provides Start and Stop controls plus About and Logout.

  • Start — begins processing
  • Stop — drain mode: active jobs finish, no new jobs start
  • About — version info, environment info, and update-check status

Dashboard

  • Engine state and stat row (active, completed, failed, total)
  • Mobile Active Now panel with active job progress on narrow screens
  • Queue ETA panel with remaining jobs and a recent-throughput estimate
  • Recent Activity — last five jobs with status and timestamps
  • Resource Monitor — CPU, memory, GPU (updated via SSE)

Jobs

Tabs: Active / Queued / Completed / Failed / Cancelled / Skipped / Archived

Search matches file paths plus stored skip and failure explanation text.

Click any job to open the detail panel:

  • Input metadata (codec, resolution, bitrate, duration, HDR)
  • Output stats (size, compression ratio, speed, VMAF)
  • Skip or failure reason in plain English, including known FFmpeg stderr signatures when available
  • Per-file attempt history for retries and reruns
  • Queue position and blocked reason for queued jobs

Right-click a job row to open the row action menu, including Copy input path.

  • Full FFmpeg log

Bulk actions via checkboxes: restart, cancel, delete. Terminal tabs can be cleared from the active table without deleting the underlying history.

Logs

Real-time log viewer (SSE). Entries grouped by job — click a header to expand. System logs appear at the top. Filterable by level, searchable.

Statistics

Space savings area chart, per-codec breakdown, aggregate totals, and a storage-reclaimed equivalent. Fills in as jobs complete.

Intelligence

  • Duplicate groups by basename
  • Remux-only opportunities
  • Wasteful audio layout recommendations
  • Commentary / descriptive-track cleanup candidates

Convert

Experimental single-file utility:

  • Upload a file (bounded by conversion_upload_limit_gb, default 8 GiB)
  • Probe streams and metadata
  • Configure transcode or remux settings
  • Preview the generated FFmpeg command plus source/output summary and estimated savings
  • Queue the job and download the result when complete

Library & Intake

Watch Folders includes a Preview action that runs the planner in dry-run mode for a folder and shows skip, remux, encode, error, and sample-file results without enqueueing work.

Uploads and generated outputs are removed automatically by a cleanup sweep that runs on every upload. The retention window after a successful download is governed by conversion_download_retention_hours (default 1 hour).

Convert uses the same analyzer, planner, queue, and executor as library jobs. Treat it as a one-off utility, not a second core workflow.

Settings tabs

TabControls
LibraryWatch folders, scan trigger
Watch FoldersExtra monitored directories
TranscodingCodec, quality, thresholds, stream rules
HardwareGPU vendor, device path, fallback, probe log, cached detection state
File SettingsOutput extension, suffix, output root, replace strategy, and a staged-change impact summary
QualityVMAF scoring, minimum score, revert on failure
NotificationsDiscord webhook, Discord bot, Gotify, ntfy, Telegram, email, webhook targets, quiet hours, daily summary time
API TokensNamed bearer tokens with read_only, arr_webhook, and full_access classes
ScheduleTime windows
RuntimeEngine mode, concurrent jobs override, Library Doctor, database backup
SystemMonitoring poll interval, manual conversion upload limit and post-download retention, update channel/check settings, telemetry toggle, watch-folder switch, metrics switch
AppearanceColor theme (35+ themes)
ConfigRaw TOML editor with no-persistence validation preview before apply

Runtime backup validation is also available through POST /api/v1/system/backup/validate-restore for operators who want to inspect a downloaded .db.gz snapshot before planning a manual restore.