Commit Graph
100 Commits
Author SHA1 Message Date
Gabe Kangas 811a766da7 chore(docs): update FEDERATION.md 2026-02-02 10:58:07 -08:00
Gabe Kangas 768203e032 chore(doc): add FEDERATION.md 2026-02-02 10:50:25 -08:00
Gabe Kangas 8f4ddfb370 fix(i18n): fix missing translation 2026-01-29 11:48:03 -08:00
605c4eed00 Fix for initial client status and config not hydrating (#4772)
* fix(js): fix server hydration not working. will speed up initial load time

* fix: update lockfile

* fix(js): fix for malformed or invalid JSON in hydration

* chore: update extracted translations

---------

Co-authored-by: Owncast default web localizations <owncast@owncast.online>
2026-01-28 18:12:25 -08:00
6abaf20f2b feat: add support for custom favicons (#4770)
* feat: add support for custom favicons

* Commit updated API documentation

* chore(i18n): add localization of text

* fix(js): regenerate package lock file

* chore(test): add favicon test

* fix: max size not respected

* Commit updated API documentation

* fix: move favicon.ico to the static dir

* fix: fix tests

* fix: remove hard-coded content-type of icon

* chore: update extracted translations

* feat(admin): add support for resetting to default icon

* chore: use a higher res default favicon

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>
2026-01-28 18:07:19 -08:00
93b482871f Require authentication to participate in chat (#4762)
* feat(chat): require authentication to participate in chat

* fix: it's pretty much impossible to bypass the auth requirement, addressing review feedback anyway

* feat(chat): render chat text input as disabled if chat auth is required

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>
2026-01-28 11:49:07 -08:00
Gabe Kangas dfc3478197 fix(ap): lock db and return error in createFollow 2026-01-22 16:24:58 -08:00
Gabe KangasandGitHub de6468ad89 Add shared inbox support for ActivityPub delivery (#4755)
* feat(ap): add support for shared inboxes to reduce outbound load

* feat(db): refactor ap followers db into followers repository

* fix(ap): use the updated activity library to pull out the shared inbox endpoint

* chore(deps): point at updated build of owncast/activity

* fix(ap): typeless endpoints

* feat(test): update ActivityPub test to support shared inboxes

* chore(test): remove unused variable

* fix: feedback from review. Guard against SSRF/non-HTTPS/local and handle transaction errors
2026-01-22 15:33:22 -08:00
Gabe Kangas b18e773fa7 chore(web): remove unused scss file 2026-01-21 23:50:37 -08:00
Gabe KangasandGitHub b0fc8260d9 ActivityPub integration test (#4761)
* feat(test): add an end-to-end ActivityPub integration test

* chore(ci): run AP integration test under CI

* feat(test): use caddy instead of home built reverse proxy

* fix(test): fix linter warnings

* chore(test): don't commit test self-signed certs I suppose

* chore(test): more shellcheck linter warnings

* fix: fix test setup under CI
2026-01-21 22:33:55 -08:00
23ce430e5b A set of additional outbound ActivityPub outbound delivery optimizations (#4750)
* fix: remove optimistic UI updates in external actions to prevent race condition (#4711)

When adding/deleting external actions, the UI would sometimes show
duplicated or cloned rows due to a race condition between:
1. The optimistic setActions() call updating local state
2. The save() callback updating externalActions in context
3. The useEffect syncing actions from externalActions

This fix removes the optimistic updates and lets the server response
be the single source of truth, updating the UI only after the context
is updated via the save() success callback.

Fixes #4347

* fix(ap): additional outbound ActivityPub delivery optimizations

- check circuit breaker before signing any messages or any other work
- create outbound messages in batches and not all at once
- add small delay between outbound messages to spread it out a bit

* fix(ap): increase ap queue buffer size, reduce outbound http client timeout

* fix(ap): handle malformed inbox URIs

* fix(ap): batch outbox based on work performed not index

* feat(ap): add retryable activitypub outbound delivery client

---------

Co-authored-by: John Costa <jcosta@execonline.com>
2026-01-21 21:00:18 -08:00
Gabe Kangas 9f30aa37ce chore(ap): point to updated activity library fork 2026-01-20 21:27:40 -08:00
Gabe KangasandGitHub a82efb0e9a Add a layer of safety around required ActivityPub Actor fields (#4703)
* fix(ap): add safe constructors, getters, and validators to ActivityPub actors to address #4701

* chore: replace nil check with the new Validate() method

* chore(test): added test to verify the values extracted from actors

* fix: return the specific error type + test for it

* fix(ap): add recovery for each AP inbox worker for a worst case scenario

* fix(ap): add additional safe accessor methods to other AP entities other than actors

* chore(tests): add tests for the new safe accessors

* fix(ap): handle empty public keys in AP actors
2026-01-17 14:25:06 -08:00
Gabe KangasandGitHub 0ff73d5e1e Fix pwd no longer being included in ffmpeg binary search (#4749)
* fix(go): fix pwd no longer being included in ffmpeg binary search. Closes #4747

* fix: updates per feedback
2026-01-17 14:23:39 -08:00
Gabe Kangas 93868574a5 chore(ci): go mod tidy 2026-01-17 13:45:45 -08:00
Gabe Kangas 04b9ae755e Update dynamic storybook templates to reflect new story requirements 2026-01-13 16:45:53 -08:00
Gabe KangasandGitHub d80a7246e1 Split out tools from main go.mod into tools/ (#4734)
* Split out tools from main go.mod into tools/ and create Makefile to support running them manually

* chore(ci): linter error

* fix(ci): fix the pre-commit and pre-push hooks
2026-01-13 16:17:35 -08:00
Gabe KangasandGitHub a272d8fbe3 Fix linter errors (#4733) 2026-01-13 15:25:53 -08:00
Gabe Kangas 12dc10c901 chore: run nightly container build with -P flag to allow testing container at build time 2026-01-11 18:59:31 -08:00
Gabe Kangas 5438ab8ea0 chore(js): fix js formatting 2026-01-10 15:37:26 -08:00
Gabe Kangas f93543fac9 chore(build): add sanity checks to the build process to verify binaries run on architecure 2026-01-10 15:36:12 -08:00
Gabe Kangas 53a6166d4b chore(js): fix js formatting 2026-01-10 15:35:30 -08:00
Gabe Kangas ee3a0d486f fix(ci): pull in the upstream base repo branch for PRs 2026-01-02 19:54:17 -08:00
Gabe Kangas 2b343e9f81 chore: go mod tidy + add standalone linter step to lefthook 2025-12-24 14:28:32 -08:00
Gabe Kangas e12ea37f7e fix: fix url in test shell script 2025-12-24 09:29:36 -08:00
Gabe Kangas fe1935ea0f fix: remove unused var in shell script 2025-12-24 09:18:26 -08:00
Gabe Kangas e62b4ea83d chore(deps): bump lefthook version 2025-12-24 09:08:32 -08:00
Gabe Kangas 30a988c6a7 chore: pull ffmpeg from our own build repo 2025-12-24 09:07:52 -08:00
Gabe Kangas db0aaf66a1 chore: bump version number 2025-12-23 15:16:55 -08:00
Gabe Kangas 3b25e295e8 Missing visible param not being passed to api request 2025-12-23 15:12:25 -08:00
Gabe KangasandGitHub 3e15e29c52 Bump OpenAPI spec version 2025-12-10 14:14:10 -08:00
fea4339e94 Notifications repository + service (#4565)
* Notifications repository

* feat: notifications repo + service

* fix: remove use of notifications/notifications.go

* Update persistence/notificationsrepository/notificationsrepository.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: remove unused method

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-21 15:34:01 -08:00
Gabe Kangas 7e0a42dd5f fix(i18n): update existing pr/branch on workflow run 2025-11-20 19:39:12 -08:00
Gabe Kangas 8b4efc1c23 chore(fix): fix crowdin action error 2025-11-20 19:27:35 -08:00
Gabe Kangas 4a143bf27e chore(ci): split up upload/download translation jobs 2025-11-20 19:19:15 -08:00
Gabe Kangas 5203ffc303 chore(ci): use unique translation PR branch name when creating PRs 2025-11-20 17:51:22 -08:00
Gabe Kangas e4f406acd8 chore(ci): bump create-pull-request action version 2025-11-20 15:58:53 -08:00
Gabe Kangas 77099eb7df chore(ci): stop creating non-translation related i18n PRs 2025-11-20 15:57:05 -08:00
Gabe Kangas 92f435f813 chore(ci): point ci image at our own build 2025-10-30 17:33:52 -07:00
Gabe KangasandGitHub b35d7b06a2 Bump golangci-lint version in workflow 2025-10-24 16:46:50 -07:00
Gabe KangasandGitHub 38932e2a4f Bump Go version 1.24 -> 1.25.3 2025-10-24 16:38:41 -07:00
Gabe Kangas 3a756201ea chore(css): run stylelint 2025-10-24 00:15:12 -07:00
Gabe Kangas 03ad1fad21 chore(go): bump to go version 1.25.3 2025-10-24 00:08:50 -07:00
Gabe Kangas 4b9845c7c8 Format sass files 2025-10-24 00:08:29 -07:00
Gabe Kangas c7d78f4224 Use updated sass import syntax 2025-10-23 23:27:10 -07:00
Gabe KangasandGitHub cc9286416c Update storybook to v9 (#4645)
* chore: Update storybook to v9

* Pin next-export-i18n + remove outdated mock library

* Replace old mocking library with MSW

* Resolve knip unused code warnings
2025-10-20 21:26:32 -07:00
Gabe Kangas 363a60a77d chore(tests): update test/ci tooling to work better with go -tool support 2025-10-10 14:25:51 -07:00
Gabe Kangas a3915bd89d chore(ci): more updating CI to run more efficient 2025-10-07 13:11:52 -07:00
Gabe Kangas 7800afd95a chore(ci): update CI to run more less often and more efficient 2025-10-06 20:18:07 -07:00
Gabe KangasandGitHub 0b781eb716 fix(activitypub): fixes #4372 where excessive AP resource use disrupts video delivery (#4552) 2025-09-24 17:53:05 -07:00
Gabe Kangas 73da623959 fix: fix some incorrect formatting in json 2025-09-16 00:19:47 -07:00
8eb8bdc18b Stop using empty/whitespace as chat display names (#4553)
* fix(chat): fixes #4522 to stop people from setting invalid display names

* fix(chat): also guard against non-ascii whitespace like non breaking space

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: handle additional whitespace

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Javascript formatting autofixes

* fix: deduplicate running of validation

* fix: fix error with useMemo

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Javascript formatting autofixes

* fix: fix component rendering issue

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
2025-09-15 13:37:39 -07:00
Gabe Kangas ef1e24356c chore(ci): update golangci-lint reference and lefthook config 2025-09-14 17:32:28 -07:00
e66b0444ad Increases the max bandwidth selectable in the admin UI (#4550)
* feat(admin): Closes #1462. Increases the max bandwidth selectable in the UI + localization for the strings

* chore: update extracted translations

* Javascript formatting autofixes

---------

Co-authored-by: Owncast default web localizations <owncast@owncast.online>
2025-09-14 15:41:58 -07:00
Gabe KangasandGitHub 8568f43310 fix(js): fixes #4452 action buttons not showing externally while mobile (#4547) 2025-09-14 14:28:57 -07:00
Gabe Kangas c12ef0ec57 Add aarch64-musl compiler to our infra downloads 2025-09-02 21:56:59 -07:00
Gabe Kangas 481de398fc fix(css): format 2025-08-07 18:55:21 -07:00
Gabe Kangas b1ba1bdf0f fix(css): fix sass import path 2025-08-07 18:49:18 -07:00
074bff32c1 Update directory.owncast.online -> owncast.directory (#4485)
* chore: change directory.owncast.online -> owncast.directory. For #4483

* chore: update extracted translations

---------

Co-authored-by: Owncast default web localizations <owncast@owncast.online>
2025-08-02 16:49:11 -07:00
Gabe KangasandGitHub 104c1ace39 Increase max number of PRs to open 2025-07-30 16:09:59 -07:00
Gabe KangasandGitHub b2324a1f5b Try to fix renovate not auto-merging 2025-07-30 15:54:12 -07:00
Gabe Kangas 828bddb4f4 fix(tests): fix i18n tests 2025-07-13 18:58:55 -07:00
Gabe Kangas 19bb9cdacd chore: renmae file 2025-07-11 08:30:19 -07:00
Gabe KangasandGitHub f18b1d9e05 Update standard-pull-request.md 2025-07-11 08:23:47 -07:00
Gabe KangasandGitHub a406d2c7d4 Update copilot-instructions.md 2025-07-10 14:24:07 -07:00
Gabe KangasandGitHub 0766c6acf4 Updated copilot instructions 2025-07-08 16:24:50 -07:00
Gabe KangasandGitHub 1310dc1b80 Add horizontal line to admin sidebar (#4417)
* feat(admin): add horizontal line to sidebar. Closes #4098

* fix: lint css file

* fix: tweak css

* chore: go mod tidy

* fix: another css fix
2025-07-04 19:34:57 -07:00
Gabe Kangas 7515758b41 chore: update copilot instructions 2025-07-04 17:20:06 -07:00
Gabe Kangas a5d352dfab chore: update copilot instructions 2025-07-03 19:36:27 -07:00
Gabe Kangas 2775956a68 chore: update copilot instructions 2025-07-03 19:01:50 -07:00
Gabe Kangas 8234974ad0 Additional instructions 2025-07-03 17:31:26 -07:00
Gabe Kangas c8aa572ecc Add some configs to improve copilot functionailty 2025-07-03 15:31:05 -07:00
Gabe KangasandGitHub 936a8385ba Update standard-pull-request.md 2025-06-30 10:52:31 -07:00
Gabe KangasandGitHub 508895fd90 Update bug-report-feature-request.yml 2025-06-13 12:49:57 -07:00
Gabe Kangas 594b8efbe7 chore(tests): pass --yes flag to npx 2025-05-20 20:27:45 -07:00
Gabe Kangas f6c13bdc69 chore(web): remove unpopulated meta tags. Closes #4324 2025-05-20 20:27:45 -07:00
Gabe Kangas ffa4d37e6b chore: update lefthook + go mod tidy 2025-05-20 20:00:52 -07:00
77da953781 Disable support for the latency compensator in the player (#4348)
* chore(web): disable support for the latency compensator. Closes #4224

* Javascript formatting autofixes

---------

Co-authored-by: Owncast <owncast@owncast.online>
2025-05-20 20:00:03 -07:00
Gabe Kangas d6dbd5b0df Revert "chore: add detailed PR template"
This reverts commit 04c208a2e9.
2025-05-16 10:31:58 -07:00
Gabe Kangas 04c208a2e9 chore: add detailed PR template 2025-05-16 10:26:58 -07:00
Gabe KangasandGitHub f98f04c1f8 Update bug-report-feature-request.yml 2025-05-16 09:52:17 -07:00
Gabe KangasandGitHub a13bca35d8 Update standard-pull-request.md 2025-05-16 09:49:19 -07:00
Gabe KangasandGitHub 6d97def04a fix(api): fix fediauth code verification. fixes #4316 (#4317) 2025-05-07 14:50:21 -07:00
Gabe Kangas d7ef258657 fix: fix linter error 2025-05-07 14:41:04 -07:00
Gabe Kangas 3661cd3e63 chore: bump version number 2025-05-03 16:08:51 -07:00
Gabe Kangas 75a8819188 fix(web): add missing space in footer 2025-05-03 11:16:16 -07:00
Gabe Kangas a624d86e22 chore: add additional project assets 2025-04-27 17:55:36 -07:00
Gabe Kangas 92d1b79a80 fix(chat): fix emoji rendering as text. Fixes #4287 2025-04-23 18:13:29 -07:00
Gabe Kangas b645cb0eb7 chore: go mod tidy 2025-04-23 16:39:32 -07:00
Gabe Kangas f67badd927 fix(ap): check for like activity iri. Fixes #3223 2025-04-23 16:36:25 -07:00
Gabe Kangas d6b0e21700 chore(tests): add commit hooks if people want to use them 2025-04-01 22:27:40 -07:00
Gabe KangasandGitHub dc09dc17a4 Update standard-pull-request.md
Update the PR template again to state even stronger that I want people to open issues because it makes my life difficult if they don't.
2025-03-20 05:39:06 -07:00
Gabe Kangas e088520d46 fix(chat): do not handle chat usernames as html escaped. Closes #3743 2025-03-10 21:12:09 -07:00
Gabe Kangas a775302a45 chore(docs): add digitalocean to readme sponsor list. Closes #4232 2025-03-04 20:08:28 -08:00
Gabe Kangas 6516ed4a92 chore(deps): add oapi-codegen as a tool and update the script to use it 2025-03-04 16:26:31 -08:00
Gabe Kangas 8444348baa chore(deps): add sqlc as a tool 2025-03-04 16:22:32 -08:00
Gabe KangasandGitHub 6e4a237a72 Bump Golang version to 1.24 (#4226)
* chore(go): bump golang version to 1.24

* chore(tests): bump golang versions for running tests under ci

* chore(ci): bump golangci-lint version

* chore(go): add golangci-lint to tools list

* chore(go): add gofumpt to tools list

* fix(ci): fix golang-ci version definition
2025-02-25 20:42:14 -08:00
Gabe Kangas bb33d683f0 fix(js): revert some deps that are breaking the web build 2025-02-25 12:40:28 -08:00
Gabe KangasandGitHub 1577ebe475 chore(ci): run go tests under arm runners. closes #4120 2025-02-24 17:05:28 -08:00
Gabe Kangas f0650ce760 fix: re-apply initial fix + set content-type header. Fixes #4114 2025-02-23 17:46:16 -08:00