mirror of
https://github.com/bybrooklyn/alchemist.git
synced 2026-04-18 01:43:34 -04:00
Since v0.2.9, Alchemist gains the first stable 0.3.0 release with: Security: - Fixed a critical bug where a config parse failure on a configured instance could re-enable unauthenticated setup endpoints. - Session cookies are no longer marked Secure by default, restoring plain HTTP and LAN login flows unless ALCHEMIST_COOKIE_SECURE=true is set. - Restricted /api/fs/* filesystem browsing to loopback clients during initial setup. - Hardened proxy header handling with explicit trust configuration. Library and encoding: - Added per-library transcoding profiles with built-in presets. - Added lossless MP4/MOV to MKV remuxing when a file is already in the target codec. - Added subtitle sidecar extraction for text subtitle tracks. - Added stream rules for commentary stripping, language filtering, and default-track retention. - Added optional VMAF quality gating. - Added duplicate detection in Library Intelligence. - Added Library Doctor health scanning. - Added mirrored output roots. Job management: - Added Skipped and Archived tabs. - Added sort controls for jobs. - Added per-job priority promotion. - Added live retry countdowns. - Added structured skip explanations. - Added structured failure explanations. Engine control: - Added Background, Balanced, and Throughput runtime modes with manual overrides. - Added drain mode. - Added boot-time auto-analysis of queued jobs. UI redesign: - Replaced page h1 blocks with a compact engine control strip. - Restructured the dashboard around compact stats, savings, and recent activity. - Grouped log viewer entries by job. - Rebuilt the setup wizard inside the main shell. - Redesigned library selection around recommendations and chips. - Replaced custom stats bars with Recharts area and bar charts. - Merged hardware into Transcoding settings. - Merged notifications and automation into one tab. - Improved mobile navigation and jobs layout. - Tightened typography and token usage across the design system. - Added analyzing shimmer states and protected terminal job states from poll overwrites. Reliability and stability: - Added exponential retry backoff. - Cleaned orphaned temp outputs and subtitle sidecar temp files on startup. - Fixed infinite analysis loops and boot-analysis pagination. - Kept the engine running when the queue drains so new watcher jobs are picked up. - Serialized analysis passes and dropped overlapping watcher-triggered passes. - Added job stall detection. - Fixed graceful shutdown on Ctrl+C and SIGTERM. - Added log retention pruning. - Added auth session cleanup. - Cached /api/system/resources for 500ms. - Added a Drop guard for in_flight_jobs. - Stopped re-probing completed job detail source files when encode_stats already exist. Hardware and encoding: - Fixed Apple VideoToolbox encodes with -allow_sw 1, yuv420p conversion, and hvc1 tagging. - Switched Intel Arc selection to VAAPI-first with QSV as last resort. - Improved audio planning so lossless codecs transcode while common Atmos/EAC3 tracks can copy. - Added libopus runtime fallback to AAC when libopus is unavailable. - Surfaced fuller FFmpeg failure logs and VideoToolbox-specific failure explanations. Backend architecture: - Upgraded to Rust 2024 and MSRV 1.85. - Upgraded sqlx to 0.8 and rand to 0.9. - Removed async-trait in favor of native async fn traits with trait-variant where needed. - Split server.rs into focused submodules. - Moved ffprobe execution to tokio::process::Command with a timeout. - Split high-volume and low-volume broadcast channels. - Hardened cancellation-lock recovery and stderr truncation. - Added warnings for invalid notification and schedule JSON plus safer analysis pagination limits. Database: - Extended decisions with structured reason codes and payload JSON. - Added job_failure_explanations with legacy fallback support. - Added indexes for structured explanation filtering. - Preserved automatic upgrades from 0.2.5 onward. CI/CD and tooling: - Added nightly workflows using the shared build pipeline. - Added actionlint to release checks. - Added the Playwright reliability suite to CI. - Documented and validated the Windows contributor workflow. - Expanded just release-check to cover fmt, clippy, tests, actionlint, web verify, docs build, E2E, and backend build. - Standardized release binaries and checksums. - Published multi-arch Docker images for linux/amd64 and linux/arm64. Release metadata and docs cleanup: - Bumped Cargo, VERSION, web, web-e2e, and docs manifests to 0.3.0. - Updated stable changelog dates and nightly image references. - Removed stale RC-era Windows wording from the README and docs. - Clarified that the Windows core contributor path is supported while broader utility and release recipes remain Unix-first. - Clarified that AMD AV1 remains outside the validated 0.3.0 support matrix. - Aligned Docker Compose, Helm, and release-facing docs on ghcr.io/bybrooklyn/alchemist.
35 lines
906 B
YAML
35 lines
906 B
YAML
services:
|
|
alchemist:
|
|
image: ghcr.io/bybrooklyn/alchemist:latest
|
|
container_name: alchemist
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
# Configuration file
|
|
- ./config.toml:/app/config/config.toml:ro
|
|
# Media directories (adjust paths as needed)
|
|
- /path/to/media:/media
|
|
- /path/to/output:/output
|
|
# Persistent database
|
|
- alchemist_data:/app/data
|
|
environment:
|
|
- RUST_LOG=info
|
|
- TZ=America/New_York
|
|
- ALCHEMIST_CONFIG_PATH=/app/config/config.toml
|
|
- ALCHEMIST_DB_PATH=/app/data/alchemist.db
|
|
- ALCHEMIST_CONFIG_MUTABLE=false
|
|
# For Intel QuickSync (uncomment if needed)
|
|
# devices:
|
|
# - /dev/dri:/dev/dri
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
|
|
volumes:
|
|
alchemist_data:
|