|
|
49d33e8210
|
README: rollout block matches the current one (compose included, visible apply output)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-11-01 01:16:42 -05:00 |
|
|
|
abb7186bd0
|
Rebuild gaps closed: Authentik bootstrap creds, Gitea install lock + admin user from .env, Syncthing GUI-auth-off fixup, plugin ensured on apply, portal built by install.sh; README rebuild section with the honest manual remainder
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-11-01 01:14:46 -05:00 |
|
|
|
33482bfff3
|
README: push-to-deploy rollout commands, clone switch, webhook test, enabling steps
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-11-01 01:09:42 -05:00 |
|
|
|
66f05cf9a7
|
Push-to-deploy (OFF by default): vanguard-deploy applies only changed parts with a live-stream guard for MediaMTX, rollback, pending timer; dumpd /deploy webhook gated by DEPLOY_AUTO; configure --apply; switchToClone.sh; draft CI workflow; committed plugin zip
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-11-01 01:08:43 -05:00 |
|
|
|
07ffae0746
|
Soft per-user clip quotas: dumpd pauses/resumes Syncthing folders by folder size (CLIPS_QUOTA_GB, per-user overrides file); clips page shows usage
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:30:22 -05:00 |
|
|
|
c56a2997ba
|
about: clips section grouped with contributing, after Stream
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:26:17 -05:00 |
|
|
|
272791ea7d
|
about: dedicated 'Send your game clips' section for everyone
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:25:56 -05:00 |
|
|
|
2d8e6bb68c
|
about: show only sections the account's groups actually permit
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:24:33 -05:00 |
|
|
|
4b2f3175ad
|
about: section leads state actual membership; admin view warns where a gate will still refuse
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:21:00 -05:00 |
|
|
|
ef3a0a3fcd
|
Caddy: /me route matches the bare path too (gateway identity call fell through to copyparty)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:03:23 -05:00 |
|
|
|
63ba628fad
|
STATUS: /about and /clips live
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:02:48 -05:00 |
|
|
|
48409b5dbf
|
Self-service clip intake (/clips + dumpd /me/clips via Syncthing REST) and role-aware gateway page (/about + dumpd /me)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 18:00:01 -05:00 |
|
|
|
367d41fe18
|
addClipUser.sh + README: onboarding a gamer's clips via Syncthing
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:54:49 -05:00 |
|
|
|
7213460c10
|
Caddy: /logout on every gated host redirects to Authentik sign-out
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:53:02 -05:00 |
|
|
|
68c2866a28
|
Syncthing: GUI auth disabled behind the Authentik gate; docs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:49:17 -05:00 |
|
|
|
446fd32c81
|
STATUS: MediaMTX restarted (microsecond names live); roles policy to be proven by natural logins
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:45:31 -05:00 |
|
|
|
97d1ba97a9
|
STATUS/plan: phase 10 Gitea via Authentik verified
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:37:28 -05:00 |
|
|
|
52c065b753
|
roles policy: only revoke memberships it granted itself (manual adds survive); track in user attributes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:34:43 -05:00 |
|
|
|
2ab0a4e837
|
Docs: git-admins claim with Authentik group nesting
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:27:51 -05:00 |
|
|
|
7e935c31d1
|
Gitea access gated by Authentik group git-users; roles table example
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:10:09 -05:00 |
|
|
|
b661ee795b
|
Phase 10: Gitea OIDC login prerequisites in compose (external-only registration, auto-register, account linking); README steps
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 17:09:33 -05:00 |
|
|
|
6db786e00e
|
Phase 12 verified live; MediaMTX config changes documented as restart-only on this setup
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:54:08 -05:00 |
|
|
|
f1d19ba32d
|
Plan: off-site gap filling option (home NVENC / Spot GPU) and SYS-3 availability note
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:26:44 -05:00 |
|
|
|
9dc81ae5aa
|
README/STATUS: gap filling availability and the on/off commands
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:25:08 -05:00 |
|
|
|
4101498ad7
|
Sweep: fix gap-total parsing so FILL_GAPS_MS actually triggers
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:19:58 -05:00 |
|
|
|
473247e710
|
Sweep: opt-in gap filling for streams (FILL_GAPS_MS) — CFR re-encode with duplicated frames, raw kept in .src/, timecode carried; default off
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:19:25 -05:00 |
|
|
|
f36487d4b5
|
Timecode: nominal fps + proper drop-frame detection, shell-safe plan output; streams never VFR-re-encoded; gap list in the sidecar; docs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:17:26 -05:00 |
|
|
|
3fcb8fbe99
|
Phase 12: frame-accurate timecode via an overscan band — vgstrip encoder/decoder, sweep writes tmcd + creation_time + sidecar, dumpd /time, Caddy /time routes, MediaMTX microsecond names, /dock/clock/ page, dock band setup via obs-websocket, Go Live band composite + toggle, portal crops the band
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:07:56 -05:00 |
|
|
|
89841c3d2a
|
Plan: phase 12 — permanent overscan band with a machine-readable server clock; drift-aware decode
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 16:00:03 -05:00 |
|
|
|
f1bd28f8d1
|
Plan: phase 12 redesigned as a 10 s machine-readable sync burst decoded by the sweep into the timecode track; nothing visible in finals
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:58:20 -05:00 |
|
|
|
4419cc9d67
|
Plan: dock manages the OBS clock overlay through obs-websocket
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:56:33 -05:00 |
|
|
|
57be5bba52
|
Plan: burned-in server clock on the Go Live (WebRTC) path via canvas compositing
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:56:00 -05:00 |
|
|
|
b782621368
|
Plan: phase 12 uses the server clock as the only time reference
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:53:40 -05:00 |
|
|
|
b750bdb71c
|
Plan: phase 12 — timecode track + burned-in clock for frame-accurate multicam
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:53:29 -05:00 |
|
|
|
a7ad3dc224
|
STATUS/plan: phases 5-7 and 11 live and verified; refreshed unfinished list
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:48:33 -05:00 |
|
|
|
5085f8ab55
|
Docs/apply note: MediaMTX does not hot-reload auth settings; restart between streams after auth changes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:46:25 -05:00 |
|
|
|
2988e7a804
|
Caddy main host: route /me/* to dumpd (the dock's token request was falling through to copyparty -> 403)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:44:09 -05:00 |
|
|
|
10cfc6e505
|
check.sh: syntax checks for shell, python, yaml, dock JS, generators, portal build
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:40:26 -05:00 |
|
|
|
733f6c54d5
|
dock: fix JS syntax error (?? mixed with ||) that disabled every button
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:39:58 -05:00 |
|
|
|
65aa8b0894
|
Docs: provider invalidation flow so every logout forces a full Discord re-login
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:38:01 -05:00 |
|
|
|
07a05788ad
|
dock: sign out ends the Authentik login too, then returns to the dock
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:37:00 -05:00 |
|
|
|
d44546ef29
|
dock: sign out in the background and return to the dock instead of landing on copyparty
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:35:31 -05:00 |
|
|
|
49ea1cd5d0
|
dock: sign out link (Authentik session) for re-login after group changes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:33:54 -05:00 |
|
|
|
dcc347e1ea
|
Phase 7+11: token-based publishing — MediaMTX authMethod http -> dumpd /mtx-auth (bridge-only port 8081); dumpd mints 12 h HMAC tokens for Discord-authenticated streamers; dock rewritten (no passwords, naming rules with live preview, prefix/suffix, manual-setup accordion with hidden token); portal uses tokens; configure.py drops streamers; MediaMTX hot-reload, Caddy reload — no stream interruption
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:22:15 -05:00 |
|
|
|
2a74cb7b40
|
Logout ends the Authentik session: copyparty idp-logout -> outpost sign_out; live portal Sign out link
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:11:53 -05:00 |
|
|
|
268a6a2f81
|
copyparty idp-h-key: Caddy injects a header with a secret name (COPYPARTY_IDP_KEY); IdP headers ignored without it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:09:13 -05:00 |
|
|
|
b89afb50d2
|
Caddy: /whoami on the main host echoes the Authentik identity headers for debugging
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:08:16 -05:00 |
|
|
|
c4a79c3316
|
README/plan: note WebDAV is available via app passwords but deliberately not set up
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:01:14 -05:00 |
|
|
|
15402eeb82
|
Discord-only login: drop WebDAV/app-password path from docs and generated config comments
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 15:00:48 -05:00 |
|
|
|
50c037e514
|
Phase 5+6: main host behind Authentik — copyparty trusts X-Authentik-* headers with group permissions (editors, media-admins), dumpd authorizes from headers (admins/media-admins), /sync gated to media-admins, dock drops its dump password; configure.py loses editors/admin
WebDAV continues via Authentik app passwords (provider: Intercept header authentication).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
2026-10-31 14:55:48 -05:00 |
|