diff --git a/backlog/config.yml b/backlog/config.yml new file mode 100644 index 0000000..26f8986 --- /dev/null +++ b/backlog/config.yml @@ -0,0 +1,16 @@ +project_name: "OBS R2 Uploader & Streaming" +default_status: "To Do" +statuses: ["To Do", "In Progress", "Done"] +labels: [] +milestones: [] +date_format: yyyy-mm-dd +max_column_width: 20 +default_editor: "nvim" +auto_open_browser: true +default_port: 6420 +remote_operations: true +auto_commit: false +bypass_git_hooks: false +check_active_branches: true +active_branch_days: 30 +task_prefix: "task" diff --git a/backlog/tasks/task-1 - Fix-streaming-server-recording-permissions.md b/backlog/tasks/task-1 - Fix-streaming-server-recording-permissions.md new file mode 100644 index 0000000..53c9700 --- /dev/null +++ b/backlog/tasks/task-1 - Fix-streaming-server-recording-permissions.md @@ -0,0 +1,16 @@ +--- +id: TASK-1 +title: Fix streaming server recording permissions +status: Done +assignee: [] +created_date: '2026-02-22 00:28' +labels: [] +dependencies: [] +priority: high +--- + +## Description + + +nginx-rtmp recordings dir was owned by root, nginx runs as nobody. Fixed with chown nobody:nogroup. + diff --git a/backlog/tasks/task-2 - Add-Whisper-transcription-to-archive-worker.md b/backlog/tasks/task-2 - Add-Whisper-transcription-to-archive-worker.md new file mode 100644 index 0000000..bc54ca8 --- /dev/null +++ b/backlog/tasks/task-2 - Add-Whisper-transcription-to-archive-worker.md @@ -0,0 +1,16 @@ +--- +id: TASK-2 +title: Add Whisper transcription to archive-worker +status: Done +assignee: [] +created_date: '2026-02-22 00:28' +labels: [] +dependencies: [] +priority: high +--- + +## Description + + +Archive-worker now extracts audio, sends to Whisper (large-v3-turbo), saves .txt and .srt alongside MP4 recordings. Connected to whisper-local via traefik-public network. + diff --git a/backlog/tasks/task-3 - Add-live-viewer-counter-to-stream-page.md b/backlog/tasks/task-3 - Add-live-viewer-counter-to-stream-page.md new file mode 100644 index 0000000..c0573ce --- /dev/null +++ b/backlog/tasks/task-3 - Add-live-viewer-counter-to-stream-page.md @@ -0,0 +1,16 @@ +--- +id: TASK-3 +title: Add live viewer counter to stream page +status: Done +assignee: [] +created_date: '2026-02-22 00:28' +labels: [] +dependencies: [] +priority: medium +--- + +## Description + + +Heartbeat-based viewer tracking via archive-worker Flask endpoints. Page sends POST /api/viewers/heartbeat every 5s, displays count with pulsing red dot. Nginx proxies /api/ to archive-worker. + diff --git a/backlog/tasks/task-4 - Fix-R2-credentials-and-rclone-config.md b/backlog/tasks/task-4 - Fix-R2-credentials-and-rclone-config.md new file mode 100644 index 0000000..1f49852 --- /dev/null +++ b/backlog/tasks/task-4 - Fix-R2-credentials-and-rclone-config.md @@ -0,0 +1,16 @@ +--- +id: TASK-4 +title: Fix R2 credentials and rclone config +status: Done +assignee: [] +created_date: '2026-02-22 00:28' +labels: [] +dependencies: [] +priority: high +--- + +## Description + + +Old R2 API token was rotated during credential cleanup. Created new scoped token for obs-videos bucket (Object Read & Write). Updated rclone config on Netcup with no_check_bucket=true. Updated local .env. Cleaned up 500+ stale HLS chunks from R2. + diff --git a/backlog/tasks/task-5 - Version-control-streaming-server-on-Netcup.md b/backlog/tasks/task-5 - Version-control-streaming-server-on-Netcup.md new file mode 100644 index 0000000..5ca773e --- /dev/null +++ b/backlog/tasks/task-5 - Version-control-streaming-server-on-Netcup.md @@ -0,0 +1,16 @@ +--- +id: TASK-5 +title: Version control streaming-server on Netcup +status: Done +assignee: [] +created_date: '2026-02-22 00:28' +labels: [] +dependencies: [] +priority: medium +--- + +## Description + + +Initialized git repo at /opt/streaming-server, pushed to gitea.jeffemmett.com/jeffemmett/streaming-server (private). Includes nginx-rtmp config, archive-worker with transcription, docker-compose, stream player page. +