Commit Graph

  • 630b253278 bunch of shit main Brandyn / Techy 2026-11-06 19:05:47 -06:00
  • ca01516d42 Stuck-recording triage, a diag landing page, and the fixes behind Tuesday's symptoms Brandyn / Techy 2026-11-04 21:25:43 -06:00
  • a9de09fa18 Alarm mentions, targeted --set, and a logout that actually logs out Brandyn / Techy 2026-11-03 21:07:17 -06:00
  • b38d40ab0c Elastic security, our own metrics, and an alert pipeline that can actually reach Discord Brandyn / Techy 2026-11-03 19:58:06 -06:00
  • ef357c6d82 Docs follow the Elastic swap, and apply removes orphaned containers Brandyn / Techy 2026-11-03 16:58:08 -06:00
  • 6f7fb29ae0 metricbeat sets the same correlation fields as filebeat, so one dashboard spans logs and metrics Brandyn / Techy 2026-11-03 16:55:39 -06:00
  • 88bb28989c Rip out the Victoria stack for Elastic: four containers, Kibana as the single pane Brandyn / Techy 2026-11-03 16:53:19 -06:00
  • 6f77764fec Propagate this build's lessons into the scripts and every runbook Brandyn / Techy 2026-11-03 16:32:09 -06:00
  • 18d443579d vector: the ingestion endpoint is under /logs too Brandyn / Techy 2026-11-03 16:26:21 -06:00
  • f8f2233a55 --hosts accepts DIAG, and says why --apply cannot introduce a new host Brandyn / Techy 2026-11-03 16:25:51 -06:00
  • 07d6c7e924 vector: current_boot_only must be true on systemd 257, and drop the redundant object! casts Brandyn / Techy 2026-11-03 16:24:46 -06:00
  • a77051c496 apply creates the observability data dirs; Caddyfile.example regenerated with the diag block Brandyn / Techy 2026-11-03 16:18:13 -06:00
  • da9a1f4fa6 diag host: real path prefixes for every UI, and an index page served as a file Brandyn / Techy 2026-11-03 16:17:47 -06:00
  • d3ff452546 Generate alertmanager.yml so no-webhook is a valid state, not a broken one Brandyn / Techy 2026-11-03 16:01:49 -06:00
  • cea02d2ee8 Phase 13 integration: install.sh, configure.py, and a deadman that degrades cleanly Brandyn / Techy 2026-11-03 15:56:49 -06:00
  • 8ae43905dc Phase 13 build: logs, metrics, alerting and a deadman on a diag. host Brandyn / Techy 2026-11-03 15:45:58 -06:00
  • 09882833a0 Phase 14: say plainly that VictoriaLogs does not alert, and put a timer script ahead of the vmalert stack Brandyn / Techy 2026-11-03 15:35:39 -06:00
  • 3662eb3465 Phase 14: diag. host with VictoriaLogs at /logs, ops controls later Brandyn / Techy 2026-11-03 15:33:47 -06:00
  • 12760a94c3 dumpd /me reports the decoded discord_id; the gateway page shows it on hover Brandyn / Techy 2026-11-03 15:13:27 -06:00
  • ba110747b7 Identify the bot's web callers by Discord id, and isolate the bot's network Brandyn / Techy 2026-11-03 00:13:14 -06:00
  • 31bec6e770 STATUS: the bot's SQLite history is merged into MariaDB Brandyn / Techy 2026-11-03 00:03:22 -06:00
  • 5c91fa7e99 Add vgbot-merge-sqlite.py: merge the bot's old SQLite history into the live MariaDB Brandyn / Techy 2026-11-03 00:01:19 -06:00
  • be12a34f8c Roles policy: log the whole decision, and let one Discord role grant several groups Brandyn / Techy 2026-11-02 23:34:29 -06:00
  • f7c96dd8e2 bot docs: CI no longer runs the test suites; they run locally before a push Brandyn / Techy 2026-11-02 22:44:09 -06:00
  • ad919cada6 deployBotBundle.sh: fail when the installed release does not serve Brandyn / Techy 2026-11-02 22:29:51 -06:00
  • 25e9078d9b Drop the last references to the bot's code living in this repo Brandyn / Techy 2026-11-02 21:58:34 -06:00
  • 1ee8befdee install.sh, deploy.sh and the runbooks cover the bot bundle path Brandyn / Techy 2026-11-02 21:57:52 -06:00
  • ca10a9895f bot docs: pytest gates the release, the website's node tests are advisory Brandyn / Techy 2026-11-02 21:55:41 -06:00
  • f8136025ce act_runner: add a python312 label (CPython 3.12 + node) for the bot's CI; note that labels are fixed at registration Brandyn / Techy 2026-11-02 21:51:57 -06:00
  • 1e4c0e88dc The bot's secrets live in Gitea: signed settings travel with the release bundle Brandyn / Techy 2026-11-02 21:37:35 -06:00
  • b05f129bed Bot releases install themselves: signed bundle upload to dumpd, no Docker socket in CI Brandyn / Techy 2026-11-02 21:32:34 -06:00
  • 22dcf893d5 deployBotBundle.sh: accept the artifact as Gitea serves it (a zip holding the tar.gz) Brandyn / Techy 2026-11-02 21:20:04 -06:00
  • 223458550a Bot hosting: releases are self-contained CI bundles, and the bot serves its own web UI Brandyn / Techy 2026-11-02 21:18:15 -06:00
  • 855651c5a4 Metrics taps: node_exporter + cAdvisor containers, MediaMTX and Caddy metrics on loopback (Prometheus format, store-agnostic) Brandyn / Techy 2026-11-01 19:55:42 -06:00
  • 704bc8c4d3 Logging framework: logfmt events in our scripts, container labels + rotated json-file logs, Caddy JSON access logs; LOGGING.md Brandyn / Techy 2026-11-01 19:53:05 -06:00
  • 88bfda4c9d Sweep/vgdeband: cap x264 at ENCODE_THREADS (2) so conversions stop starving Jellyfin and the live portal Brandyn / Techy 2026-11-01 19:30:29 -06:00
  • f32730ba94 Clips folders: create an empty .stlocal with the folder (Syncthing refuses to scan while the #include target is missing) Brandyn / Techy 2026-11-01 19:08:58 -06:00
  • 2078a53419 UPCOMING.md: gap list, techy's take, agreed direction (MariaDB metadata, markers, future watch app) Brandyn / Techy 2026-11-01 18:21:38 -06:00
  • 645f447015 Live portal: custom layouts are left alone — new streams chime and wait in a draggable tray; Arrange re-grids and returns to auto Brandyn / Techy 2026-11-01 14:36:01 -06:00
  • b2e7e9a4bb Gateway page: live-page instructions (layout, audio, rename, group names, maximise); portal: maximise button per tab bar Brandyn / Techy 2026-11-01 14:17:30 -06:00
  • d5b2ba502b Live portal: rename streams (tab double-click, persisted per browser) and name tab groups (header slot, session) Brandyn / Techy 2026-11-01 14:12:21 -06:00
  • 9bdf9f1947 WebRTC audio mirror: AAC cannot cross WebRTC, so transcode audio to Opus into <path>.webrtc Brandyn / Techy 2026-11-01 13:58:15 -06:00
  • f060277167 Streamer guidance: B-frames 0 (MediaMTX refuses WebRTC playback of H.264 with B-frames) Brandyn / Techy 2026-11-01 13:29:34 -06:00
  • 3432be691f Live portal: auto-arrange panels as an even grid on join/leave, Arrange button Brandyn / Techy 2026-11-01 13:25:05 -06:00
  • 68bb0e66d5 Live portal: clip the timecode band with a measured game-aspect frame Brandyn / Techy 2026-11-01 13:14:25 -06:00
  • eb36ce771d Last ovh1/about leftovers: check.sh covers the new host roles, procedure A verifies at /, bot README db host Brandyn / Techy 2026-11-01 13:11:30 -06:00
  • 0d537ccb65 STATUS: hostname restructure deployed, band removal live Brandyn / Techy 2026-11-01 13:09:36 -06:00
  • 2cd936beaf Sweep: crop the timecode band off published streams (re-encode after decode); vgdeband.sh catch-up Brandyn / Techy 2026-11-01 13:05:35 -06:00
  • bb09565388 Fix README section cross-reference (5e) Brandyn / Techy 2026-11-01 01:29:33 -06:00
  • 9d67a240d9 Runbook F5b + STATUS: nested-groups scope mapping, verified Brandyn / Techy 2026-11-01 01:29:14 -06:00
  • 6128a4ef3a README: nested groups need a second scope mapping (managed profile mapping is direct-only and sticky on proxy providers) Brandyn / Techy 2026-11-01 01:26:14 -06:00
  • e885f4c979 deploy.sh: pending mode works without a git checkout (timer no longer fails before the clone switch) Brandyn / Techy 2026-11-01 01:43:22 -05:00
  • ca37a3913a configure.py: skip vanguard-deploy install when the pipeline files are not on the box Brandyn / Techy 2026-11-01 01:41:18 -05:00
  • 18f4e07de8 Split hosts: media (gateway at /), files, clips, sync; live gains /dock, /dock/clock, /dump, /me, /time Brandyn / Techy 2026-11-01 01:38:35 -05:00
  • c1a46d66dc HOSTNAME-CHANGE.md: hostname inventory, subdomain rename and base-domain move procedures; linked from README Brandyn / Techy 2026-11-01 01:23:33 -05:00
  • 3c407c0733 FRESH-INSTALL: appendix runbook with every action and command, A–L Brandyn / Techy 2026-11-01 01:21:34 -05:00
  • 861a88fc7e FRESH-INSTALL.md: ordered walkthrough from empty box to working pipeline, manual steps included; linked from README Brandyn / Techy 2026-11-01 01:19:06 -05:00
  • 49d33e8210 README: rollout block matches the current one (compose included, visible apply output) Brandyn / Techy 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 Brandyn / Techy 2026-11-01 01:14:46 -05:00
  • 33482bfff3 README: push-to-deploy rollout commands, clone switch, webhook test, enabling steps Brandyn / Techy 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 Brandyn / Techy 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 Brandyn / Techy 2026-10-31 18:30:22 -05:00
  • c56a2997ba about: clips section grouped with contributing, after Stream Brandyn / Techy 2026-10-31 18:26:17 -05:00
  • 272791ea7d about: dedicated 'Send your game clips' section for everyone Brandyn / Techy 2026-10-31 18:25:56 -05:00
  • 2d8e6bb68c about: show only sections the account's groups actually permit Brandyn / Techy 2026-10-31 18:24:33 -05:00
  • 4b2f3175ad about: section leads state actual membership; admin view warns where a gate will still refuse Brandyn / Techy 2026-10-31 18:21:00 -05:00
  • ef3a0a3fcd Caddy: /me route matches the bare path too (gateway identity call fell through to copyparty) Brandyn / Techy 2026-10-31 18:03:23 -05:00
  • 63ba628fad STATUS: /about and /clips live Brandyn / Techy 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) Brandyn / Techy 2026-10-31 18:00:01 -05:00
  • 367d41fe18 addClipUser.sh + README: onboarding a gamer's clips via Syncthing Brandyn / Techy 2026-10-31 17:54:49 -05:00
  • 7213460c10 Caddy: /logout on every gated host redirects to Authentik sign-out Brandyn / Techy 2026-10-31 17:53:02 -05:00
  • 68c2866a28 Syncthing: GUI auth disabled behind the Authentik gate; docs Brandyn / Techy 2026-10-31 17:49:17 -05:00
  • 446fd32c81 STATUS: MediaMTX restarted (microsecond names live); roles policy to be proven by natural logins Brandyn / Techy 2026-10-31 17:45:31 -05:00
  • 97d1ba97a9 STATUS/plan: phase 10 Gitea via Authentik verified Brandyn / Techy 2026-10-31 17:37:28 -05:00
  • 52c065b753 roles policy: only revoke memberships it granted itself (manual adds survive); track in user attributes Brandyn / Techy 2026-10-31 17:34:43 -05:00
  • 2ab0a4e837 Docs: git-admins claim with Authentik group nesting Brandyn / Techy 2026-10-31 17:27:51 -05:00
  • 7e935c31d1 Gitea access gated by Authentik group git-users; roles table example Brandyn / Techy 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 Brandyn / Techy 2026-10-31 17:09:33 -05:00
  • 6db786e00e Phase 12 verified live; MediaMTX config changes documented as restart-only on this setup Brandyn / Techy 2026-10-31 16:54:08 -05:00
  • f1d19ba32d Plan: off-site gap filling option (home NVENC / Spot GPU) and SYS-3 availability note Brandyn / Techy 2026-10-31 16:26:44 -05:00
  • 9dc81ae5aa README/STATUS: gap filling availability and the on/off commands Brandyn / Techy 2026-10-31 16:25:08 -05:00
  • 4101498ad7 Sweep: fix gap-total parsing so FILL_GAPS_MS actually triggers Brandyn / Techy 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 Brandyn / Techy 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 Brandyn / Techy 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 Brandyn / Techy 2026-10-31 16:07:56 -05:00
  • 89841c3d2a Plan: phase 12 — permanent overscan band with a machine-readable server clock; drift-aware decode Brandyn / Techy 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 Brandyn / Techy 2026-10-31 15:58:20 -05:00
  • 4419cc9d67 Plan: dock manages the OBS clock overlay through obs-websocket Brandyn / Techy 2026-10-31 15:56:33 -05:00
  • 57be5bba52 Plan: burned-in server clock on the Go Live (WebRTC) path via canvas compositing Brandyn / Techy 2026-10-31 15:56:00 -05:00
  • b782621368 Plan: phase 12 uses the server clock as the only time reference Brandyn / Techy 2026-10-31 15:53:40 -05:00
  • b750bdb71c Plan: phase 12 — timecode track + burned-in clock for frame-accurate multicam Brandyn / Techy 2026-10-31 15:53:29 -05:00
  • a7ad3dc224 STATUS/plan: phases 5-7 and 11 live and verified; refreshed unfinished list Brandyn / Techy 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 Brandyn / Techy 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) Brandyn / Techy 2026-10-31 15:44:09 -05:00
  • 10cfc6e505 check.sh: syntax checks for shell, python, yaml, dock JS, generators, portal build Brandyn / Techy 2026-10-31 15:40:26 -05:00
  • 733f6c54d5 dock: fix JS syntax error (?? mixed with ||) that disabled every button Brandyn / Techy 2026-10-31 15:39:58 -05:00
  • 65aa8b0894 Docs: provider invalidation flow so every logout forces a full Discord re-login Brandyn / Techy 2026-10-31 15:38:01 -05:00
  • 07a05788ad dock: sign out ends the Authentik login too, then returns to the dock Brandyn / Techy 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 Brandyn / Techy 2026-10-31 15:35:31 -05:00
  • 49ea1cd5d0 dock: sign out link (Authentik session) for re-login after group changes Brandyn / Techy 2026-10-31 15:33:54 -05:00