VOD Docs

Improvements

The prioritised plan for correctness, pipeline performance, reliability and scale.

Ordered by impact. Each item names the current behaviour it changes.

Chart · placeholder
Improvement roadmap: impact vs effort for each item below

2×2 matrix (quick wins, big bets, fill-ins, deprioritised).

1. Correctness (small, high value)

ChangeWhy
Fix session restore in the auth store (always clear the loading state; never refresh while logging out)Returning users sometimes see neither Sign in nor their avatar
Stop status polling at completed / failedCallbacks currently repeat on every tick
Re-raise Celery's Retry instead of catching it in transcode, segment and upload tasksA swallowed or duplicated retry can confuse the chord or fork the pipeline
Let prepare_video accept its own retryThe download retry currently always fails
Don't mark the whole video failed when one rendition failsSiblings flip the status back and forth
Clean the working directory in on_pipeline_failedFailed runs leave files on the worker
Use server-side pagination, search and filters in the admin tableVideos past the first 20 are not visible
Add the missing settings to the templatesA fresh clone needs manual fixes

2. Pipeline performance

3. Reliability and operations

ChangeWhy
CI: build images off the server, push to a registry, deploy by pullingNo compilation on the production box; repeatable deploys
Run migrations automatically on deploySchema changes cannot be forgotten
Health checks on every service, depends_on: service_healthyStart order based on readiness, not just process start
Graceful worker shutdown periodDeploys wait for the current task instead of failing it
Nightly PostgreSQL dumps and MinIO mirroring off the serverThere is no backup today
Uptime check, disk and memory alerts, alert on videos stuck in processingProblems surface without a manual check
Log rotation and structured (JSON) logs with request IDsBounded disk use, searchable logs
Pinned image versionsNo surprise upgrades on rebuild
Automated tests: auth flows, admin authorisation, tus hook contract, pipeline happy pathChanges are verified before reaching production

4. Scale

Bottleneck todayNext step
Every segment is served from one serverA CDN in front of /storage (segments are already immutable and cacheable)
One worker, one video at a timeWorkers on separate machines; replace startup recovery with per-video heartbeats; shared storage between stages
One long video occupies the workerSplit the source into chunks at keyframes and encode chunks in parallel
One Uvicorn processMultiple workers behind Caddy; move blocking calls out of async handlers
One MinIO on local diskManaged S3-compatible storage (S3, R2) or distributed MinIO

5. Product

Server-rendered browse and watch pages with per-video metadata, search, pagination and infinite scroll, real admin dashboards, user management, comments, watch history and recommendations.

Security

Security hardening is tracked separately and documented here once each item ships.

On this page