Commit graph

13 commits

Author SHA1 Message Date
c00a1f85bc router-ui: per-device traffic, last seen, and saner device saves
- nftables dynamic sets count bytes per LAN address; a 1-min tick folds
  them into totals that survive a ruleset reload
- devices page shows last seen + per-device down/up
- saving no longer pushes every DHCP lease into devices.toml, only rows
  with a reservation, note or block
- empty-state text on the traffic graphs instead of blank space

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 12:42:50 +01:00
2f1e14495b router-ui: web management page for ports, devices, traffic, speedtest
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 12:15:54 +01:00
41adf0d9f9 Revert transcode-hevc thread cap; let ffmpeg use all cores
Thread cap didn't move the thermals, so the real culprit is likely
dried-out thermal paste rather than concurrency. Reverting to the
unbounded default while the compound gets redone; running one stream
at a time is enough of a workaround in the meantime.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 12:14:46 +01:00
1fcfbedc9d Cap transcode-hevc to 8 ffmpeg threads by default
Concurrent transcodes on the 56-core mediaserver were running hot.
Limits each ffmpeg invocation to 8 threads via -threads and x265's
pools= param (libx265 ignores -threads alone). Overridable with
TRANSCODE_THREADS env var.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 12:04:13 +01:00
f57c6e99ec Add Last Update widget to Homepage via record-update script
record-update parses nvd diff after switch and writes latest.json;
Homepage polls a local-only nginx listener and renders date/changes/
closure/kernel via a customapi widget.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-16 20:58:19 +01:00
7d50716bc6 Show total storage savings in transcode-hevc --status
Parse every Saved: entry in the log to compute cumulative original
size, new size, bytes saved, and percentage reduction so we have a
single command for the transcode impact.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 19:56:46 +01:00
3c6e86aca9 Clean up leftover temp files on transcode-hevc startup
Removes any .transcode-* files left behind by interrupted runs
before starting the encoding loop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 22:55:53 +01:00
7ef39af81b Fix transcode-hevc hanging on files with attached pictures
Map only the first video stream, all audio, and all subtitles instead
of mapping everything. This avoids feeding cover art images through
the libx265 encoder which caused hangs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 21:00:59 +01:00
5f31149565 Skip actively seeded files in transcode-hevc via qBittorrent API
Queries qBittorrent for individual file sizes of all active torrents.
Files whose size matches a seeded torrent file are skipped, catching
cross-filesystem copies where hardlink detection doesn't work.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:31:37 +01:00
c8c7606eb7 Skip hardlinked files in transcode-hevc to avoid breaking seed links
Files with multiple hardlinks are likely linked from downloads/ where
they are still being seeded. Transcoding would break the hardlink and
cause both copies to take up disk space separately.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:22:24 +01:00
f431d1a5b0 Always output MKV in transcode-hevc to avoid container codec issues
MP4 containers don't support all subtitle/codec combinations with HEVC.
MKV handles everything, so always output .mkv and remove the original
if it was a different format.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:20:02 +01:00
603ac86f0a Skip downloads directories in transcode-hevc
Files in downloads/ are still being seeded and must not be altered.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 10:27:48 +01:00
7fe1ccb8a7 Add transcode-hevc script for bulk H.264 to HEVC conversion
Resumable batch script that finds H.264 files, re-encodes to HEVC
(libx265 CRF 24), verifies duration, and replaces originals.
Tracks completed files in /var/lib/transcode-hevc/completed.log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 10:25:36 +01:00