Commit Graph
100 Commits
Author SHA1 Message Date
Gabe KangasGitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Aaron OgleOwncastGinger Wongdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>nebunezgabek
bc2caadb74 0.0.6 -> Master (#731)
* Implement webhook events for external integrations (#574)

* Implement webhook events for external integrations

Reference #556

* move message type to models and remove duplicate

* add json header so content type can be determined

* Pass at migrating webhooks to datastore + management apis (#589)

* Pass at migrating webhooks to datastore + management apis

* Support nil lastUsed timestamps and return back the new webhook on create

* Cleanup from review feedback

* Simplify a bit

Co-authored-by: Aaron Ogle <aaron@geekgonecrazy.com>

Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* Webhook query cleanup

* Access tokens + Send system message external API (#585)

* New add, get and delete access token APIs

* Create auth token middleware

* Update last_used timestamp when using an access token

* Add auth'ed endpoint for sending system messages

* Cleanup

* Update api spec for new apis

* Commit updated API documentation

* Add auth'ed endpoint for sending user chat messages

* Return access token string

* Commit updated API documentation

* Fix route

* Support nil lastUsed time

* Commit updated Javascript packages

* Remove duplicate function post rebase

* Fix msg id generation

* Update controllers/admin/chat.go

Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com>

* Webhook query cleanup

* Add SystemMessageSent to EventType

Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com>

* Set webhook as used on completion. Closes #610

* Display webhook errors as errors

* Commit updated API documentation

* Add user joined chat event

* Change integration API paths. Update API spec

* Update development version of admin that supports integration apis

* Commit updated API documentation

* Add automated tests for external integration APIs

* check error

* quiet this test for now

* Route up some additional 3rd party apis. #638

* Commit updated API documentation

* Save username on user joined event

* Add missing scope to valid scopes list

* Add generic chat action event API for 3rd parties. Closes #666

* Commit updated API documentation

* First pass at moving WIP config framework into project for #234

* Only support exported fields in custom types

* Using YP get/set key as a first pass at using the data layer. Fixes + integration.

* Ignore test db

* Start adding getters and setters for config values

* More get/set config work. Starting to populate api with data

* Wire up some config edit endpoints

* More endpoints

* Disable cors middleware

* Add more endpoints and add test to test them

* Remove the in-memory change APIs

* Add endpoint for changing tags

* Add more config endpoints

* Starting to point more things away from config file and to the datastore

* Populate YP with db data

* Create new util method for parsing page body markdown and return it in api

* Verify proposed path to ffmpeg

* For development purposes show the config key in logs

* Move stats values to datastore

* Moving over more values to the datastore

* Move S3 config to datastore

* First pass the config -> db migrator

* Add the start of the video config apis

* It builds pointing everything away from the config

* Tweak ffmpeg path error message

* Backup database every hour. Closes #549

* Config + defaults + migration work for db

* Cleanup logging

* Remove all the old config structs

* Add descriptive info about migration

* Tweak ffmpeg validation logic

* Fix db backup path. backup on db version migration

* Set video and s3 configurations

* Update api spec with new config endpoints

* Add migrator for stats file

* Commit updated API documentation

* Use a dynamic system port for internal HLS writes. Closes #577 (#626)

* Use a dynamic system port for internal HLS writes. Closes #577

* Cleanup

* YP key migration to datastore

* Create a backup directory if needed before migrations

* Remove config test that no longer makes sense. Cleanup.

* Change number types from float32 to float64

* Update automated test suite

* Allow restoring a database backup via command line flags. Closes #549

* Add new hls segment config api

* Commit updated API documentation

* Update apis to require a value container property

* add socialHandles api

* Commit updated API documentation

* Add new latancy level setting to replace segment settings

* Commit updated API documentation

* Fix spelling

* Commit updated API documentation

* hardcode a json api of available social platforms

* Add additional icons

* Return social handles in server config api

* Add socialhandles validation to test

* Move list of hard coded social platforms to an api

* Remove audio only code from transcoder since we do not use it

* Add latency levels api + snapshot of video settings as current broadcast

* Add config/serverurl endpoint

* Return 404 on YP api if disabled

* Surface stream title in YP response

* Add stream title to web ui

* Cleanup log message. Closes #520

* Rename ffmpeg package to transcoder

* Add ws package for testing

* Reduce chat backlog to past 5hrs, max 50. Closes #548

* Fix error formatting

* Add endpoint for resetting yp registration

* Add yp/reset to api spec. return status in response

* Return zero viewer count if stream is offline. Closes #422

* Post-rebase fixes

* Fix merge conflict in openapi file

* Commit updated API documentation

* Standardize controller names

* Support setting the stream key via the command line. Closes #665

* Return social handles with YP data. First half of https://github.com/owncast/owncast-yp/issues/28

* Give the YP package access to server status regardless if enabled or not

* Change delay in automated tests

* Add stream title integration API. For #638

* Commit updated API documentation

* Add storage to the migrator

* Missing returning NSFW value in server config

* Add flag to ignore websocket client. Closes #537

* Add error for parsing broadcaster metadata

* Add support for a cli specified http server port. Closes #674

* Add cpu usage levels and a temporary mapping between it and libx264 presets

* Test for valid url endpoint when saving s3 config

* Re-configure storage on every stream to allow changing storage providers

* After 5 minutes of a stream being stopped clear the stream title

* Hide viewer count once stream goes offline instead of when player stops

* Pull steamTitle from the status that gets updated instead of the config

* Commit updated API documentation

* Optionally show stream title in the header

* Reset stream title when server starts

* Show chat action when stream title is updated

* Allow system messages to come back in persistence

* Split out getting chat history for moderation + fix tests

* Remove server title and standardize on name only

* Commit updated API documentation

* Bump github.com/aws/aws-sdk-go from 1.37.1 to 1.37.2 (#680)

Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.1 to 1.37.2.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.1...v1.37.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add video variant and stream latency config file migrator

* Remove mostly unused disable upgrade check bool

* Commit updated API documentation

* Allow bundling the admin from the 0.0.6 branch

* Fix saving port numbers

* Use name instead of old title on window focus

* Work on latency levels. Fix test to use levels. Clean up transcoder to only reference levels

* Another place where title -> name

* Fix test

* Bump github.com/aws/aws-sdk-go from 1.37.2 to 1.37.3 (#690)

Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.2 to 1.37.3.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.2...v1.37.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependabot config

* Bump github.com/aws/aws-sdk-go from 1.37.3 to 1.37.5 (#693)

Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.3 to 1.37.5.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.3...v1.37.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump video.js from 7.10.2 to 7.11.4 in /build/javascript (#694)

* Bump video.js from 7.10.2 to 7.11.4 in /build/javascript

Bumps [video.js](https://github.com/videojs/video.js) from 7.10.2 to 7.11.4.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v7.10.2...v7.11.4)

Signed-off-by: dependabot[bot] <support@github.com>

* Commit updated Javascript packages

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>

* Make the latency migrator dynamic so I can tweak values easier

* Split out fetching ffmpeg path from validating the path so it can be changed in the admin

* Some commenting and linter cleanup

* Validate the path for a logo change and throw an error if it does not exist

* Logo change requests have to be a real file now

* Cleanup, making linter happy

* Format javascript on push

* Only format js in master

* Tweak latency level values

* Remove unused config file examples

* Fix thumbnail generation after messing with the ffmpeg path getter

* Reduce how often we report high hardware utilization warnings

* Bundle the 0.0.6 branch version of the admin

* Return validated ffmpeg path in admin server config

* Change the logo to be stored in the data directory instead of webroot

* Bump postcss from 8.2.4 to 8.2.5 in /build/javascript (#702)

Bumps [postcss](https://github.com/postcss/postcss) from 8.2.4 to 8.2.5.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.2.4...8.2.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Default config file no longer used

* don't show stream title when offline

addresses https://github.com/owncast/owncast/issues/677

* Remove auto-clearing stream title. #677

* webroot -> data when using logo as thumbnail

* Do not list websocket/access token create/delete as integration APIs

* Commit updated API documentation

* Bundle updated admin

* Remove pointing to the 0.0.6 admin branch

* Linter cleanup

* Linter cleanup

* Add donations and follow links to show up under social handles

* Prettified Code!

* More linter cleanup

* Update admin bundle

* Remove use of platforms.js and return icons with social handles. Closes #732

* Update admin bundle

* Support custom config path for use in migration

* Remove unused platform-logos.gif

* Reduce log level of message

* Remove unused logo files in static dir

* Handle dev vs. release build info

* Restore logo.png for initial thumbnail

* Cleanup some files from the build process that are not needed

* Fix incorrect build-time injection var

* Fix missing file getting copied to the build

* Remove console directory message.

* Update admin bundle

* Fix comment

* Report storage setup error

* add some value set error checking

* Use validated dynamic ffmpeg path for animated gif preview

* Make chat message links be white so they don't hide in the bg. Closes #599

* Restore conditional that was accidentally removed

Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Ginger Wong <omqmail@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: nebunez <uoj2y7wak869@opayq.net>
Co-authored-by: gabek <gabek@users.noreply.github.com>
2021-02-18 23:05:52 -08:00
Gabe Kangas 2d42903ad6 Format javascript on push 2021-02-05 13:10:52 -08:00
Gabe KangasandGitHub 4d60c7c80c Update dependabot config 2021-02-04 01:41:17 -08:00
Gabe Kangas 89cf6115b3 Give more useful error messages and don't panic on bad disconnects. Closes #673 2021-01-29 11:25:18 -08:00
Gabe Kangas cf54be4b1d Stop logging rate limit messages 2021-01-26 19:52:32 -08:00
Gabe Kangas ca66ea6588 Pin preact to 10.5.10 to fix broken player layout. #661 2021-01-26 10:32:07 -08:00
Gabe Kangas 54ba725af3 Add hls load test 2021-01-19 23:58:14 -08:00
Gabe Kangas fca3473dad fix ffmpeg version check throwing warnings. closes #641 2021-01-18 17:17:39 -08:00
Gabe KangasandGitHub 95ad4e006a Try enabling codeql analysis, see how it does. 2021-01-18 15:51:14 -08:00
Gabe Kangas 5c1091e5f4 quiet this test for now 2021-01-16 17:32:19 -08:00
Gabe Kangas 2049d33e0c Check error when reading ffmpeg version string 2021-01-16 17:26:35 -08:00
Gabe Kangas eacd0bcbd4 check error from read timeout 2021-01-16 17:24:12 -08:00
Gabe Kangas 2b81fcef53 Add a read timeout when reading rtmp to handle connections that have dropped. Closes #564 2021-01-13 21:58:34 -08:00
Gabe Kangas acd546ce6c Remove fatal error. Closes #623 2021-01-13 17:57:37 -08:00
Gabe Kangas 594722d447 Update admin bundle 2021-01-13 00:25:16 -08:00
Gabe Kangas 191613949c Pin to a specific older version of snowpack until we can upgrade 2021-01-12 23:38:26 -08:00
Gabe Kangas aed6ea432c Tweak build script 2021-01-11 19:44:02 -08:00
Gabe Kangas f9916207c8 Add more checking around ffmpeg version validation. closes #619 2021-01-11 18:33:56 -08:00
Gabe Kangas 9214135ea4 Update admin bundle 2021-01-11 11:26:12 -08:00
Gabe Kangas e16be346c0 Set version number for 0.0.5 in api spec 2021-01-11 11:22:16 -08:00
Gabe Kangas 86a874df06 Update admin bundle 2021-01-09 13:29:39 -08:00
Gabe Kangas 0526404d19 Put suggested ffmpeg version into constants file 2021-01-08 16:09:00 -08:00
Gabe Kangas 064fdda528 Check version of ffmpeg. Closes #587 2021-01-07 22:45:29 -08:00
Gabe Kangas 7869072c96 Move unlock 2021-01-04 22:02:16 -08:00
Gabe Kangas c812a0abf5 Fix concurrent write crash. Fixes #578 2021-01-04 21:18:35 -08:00
Gabe Kangas fca3b02851 Point fakechat test script to localhost by default. Commit package.json 2021-01-02 12:16:53 -08:00
Gabe Kangas bda430f791 Cleanup some exported methods 2021-01-01 17:08:20 -08:00
Gabe Kangas 3c7997b75e Make missing ffmpeg a fatal error. Closes #554 2021-01-01 17:01:36 -08:00
Gabe Kangas 1dc25889ec Add inbound chat event rate limiting. Closes #484 2021-01-01 16:55:46 -08:00
Gabe Kangas b2953028cf Remove forcing old path-style URLs with s3. Closes #497 2020-12-31 11:50:18 -08:00
Gabe Kangas 56fe91f45c Mark api spec as 0.0.5-development 2020-12-30 23:26:11 -08:00
Gabe Kangas bc4b6895be Fix error message 2020-12-30 12:22:44 -08:00
Gabe Kangas 68f481d8be Render markdown to extra page content in prerelease api 2020-12-29 23:38:49 -08:00
Gabe Kangas ff61862109 Update admin bundle 2020-12-29 16:06:38 -08:00
Gabe Kangas cd77eab971 testing package-lock has updates 2020-12-28 18:10:40 -08:00
Gabe Kangas e5da1f871e Add PostCSS because Tailwind CLI needed it 2020-12-28 17:52:47 -08:00
Gabe Kangas 8328d1cb11 Disable serving a directory listing. Closes #530 2020-12-27 15:41:21 -08:00
Gabe Kangas 6e7787369e Mark API as v0.0.4 2020-12-25 19:24:19 -08:00
Gabe KangasandGitHub 88015638f0 Add checklist item for installer. 2020-12-22 23:25:36 -08:00
Gabe Kangas 75d800bf70 Update admin bundle 2020-12-22 18:02:32 -08:00
Gabe Kangas 959482e41a Update Admin bundle 2020-12-21 23:45:33 -08:00
Gabe Kangas 93c3968bc6 Try to assist people with websocket troubleshooting. Closes #468 2020-12-21 22:36:21 -08:00
Gabe Kangas 1ff70c13c5 Surface RTMP server port in admin. For #475 2020-12-21 22:20:27 -08:00
Gabe Kangas 76590bb043 Validate explicitly provided ffmpeg path. Closes #490 2020-12-21 22:02:05 -08:00
Gabe KangasandGitHub e558c549d7 Websocket fixes (#461)
* Bump api spec version

* Do not panic on cpu monitoring error

* Centralize the socket disconnect logic and fire it also when socket errors occur. Hopefully closes #421
2020-12-21 19:42:47 -08:00
Gabe Kangas 553992d6f8 Add linux-arm7 support to build script. Closes #470 2020-12-18 00:21:49 -08:00
Gabe Kangas 84b8a4290d Update admin bundle 2020-12-17 09:59:42 -08:00
Gabe KangasandGitHub e9c7ff29cf Add custom RTMP port number support (#462)
* Bump api spec version

* Add support for custom RTMP port. Closes #454
2020-12-17 09:56:04 -08:00
Gabe Kangas 1fe1c6c925 Move duplicate string to a constant 2020-12-16 23:01:09 -08:00
Gabe Kangas 47770feaa5 Remove TODO 2020-12-16 22:59:13 -08:00
Gabe Kangas 4ce139c0e0 Bump api spec version 2020-12-16 00:27:17 -08:00
Gabe KangasandGitHub 7b33e42efd Clean up some readme links 2020-12-14 16:34:50 -08:00
Gabe Kangas 97a86ec388 Add data dir to Dockerfile 2020-12-13 23:09:55 -08:00
Gabe Kangas ce4cb44412 Add latest tag to docker build 2020-12-13 22:29:29 -08:00
Gabe Kangas c04c3e851b Update admin bundle 2020-12-13 13:38:07 -08:00
Gabe Kangas 814fcceaac Reduce hardware alerting thresholds 2020-12-07 13:44:49 -08:00
Gabe Kangas b405b2fcc7 Connections from Restream seem to be more sensitive about if we get the initial packets processed or not, so I moved setStreamAsConnected to be decoupled from when we set broadcaster info. Another update for #432 2020-12-06 14:28:00 -08:00
Gabe Kangas 1c42bf9f63 Check for nil when accessing broadcaster. Might help #432 2020-12-06 12:01:16 -08:00
Gabe Kangas 45fef4659a Split up warnings so the entire slice does not have to be iterated through 2020-12-05 19:09:29 -08:00
Gabe Kangas 2abea78e3c Use onMetaData instead of setDataFrame to try to parse out RTMP
metadata. Closes #419
2020-12-05 18:37:42 -08:00
Gabe Kangas 40e63546cb Limit number of log entries returned. Closes #423 2020-12-05 18:11:33 -08:00
Gabe Kangas 4a4639a523 Ignore old per-session peak viewer counts when reading stats file. 2020-12-05 15:09:57 -08:00
Gabe Kangas 62d85a8b1d Stop crash with invalid/missing geoip data. Fixes #414 2020-12-05 13:33:15 -08:00
Gabe Kangas 22cd2da43f Update admin bundle 2020-12-04 11:14:12 -08:00
Gabe Kangas 8202d20e1f Update Admin bundle 2020-12-02 22:01:30 -08:00
Gabe Kangas 1b5a0381a1 Update admin bundle 2020-12-02 01:02:19 -08:00
Gabe Kangas 1c4c182088 Whoops. Default config should have YP set to false 2020-12-02 00:34:45 -08:00
Gabe Kangas 904de880b4 Add YP config blocks to example configs 2020-12-02 00:30:39 -08:00
Gabe KangasandGitHub 0b66f3b79f Support video-only streams if there is no audio in the inbound stream. (#401)
Closes #400
2020-12-02 00:19:55 -08:00
Gabe Kangas 97ffe5e8ff Mark api doc as 0.0.3 2020-11-29 14:37:42 -08:00
Gabe Kangas 592d0e78d5 Update Admin bundle 2020-11-28 19:58:18 -08:00
Gabe Kangas e59db3998e Update admin bundle 2020-11-28 15:34:40 -08:00
Gabe KangasandGitHub 5dff6f32fc End to end automated tests run on Github workflows (#384)
* WIP for automated integration test

* See if it runs under a workflow

* Support running test locally as well as a workflow

* Use already downloaded repo to build. Do not re-clone

* Add comments

* Update to support new default config file

* Split out different test suites

* Add test for chat

* Always run test with config-default and ignore local config file

* Remove the build workflow because the end to end test does that now
2020-11-24 00:28:54 -08:00
Gabe Kangas f0441e4f0a Update admin bundle 2020-11-23 22:34:26 -08:00
Gabe Kangas 97f4d0c3dc Increase how often viewer counts are collected. Closes #392 2020-11-23 22:21:20 -08:00
Gabe Kangas 4cb0027ed3 Fix blocking YP 2020-11-20 22:59:20 -08:00
Gabe Kangas 298d140c28 Connect to websocket in embed player. Closes #361 2020-11-20 18:06:51 -08:00
Gabe Kangas 90b71b7c00 Fix typo. ms -> s 2020-11-20 14:11:19 -08:00
Gabe Kangas 13be7c047c Put example compose file into examples 2020-11-19 23:33:25 -08:00
Gabe Kangas 036a981ef3 Removing transcoding performance warnings. Not currently helpful. 2020-11-19 22:40:09 -08:00
Gabe Kangas 92dc98a0ea Make things not break if video passthrough is enabled + update admin to display video settings a bit clearer. A start to #306 2020-11-19 22:12:48 -08:00
Gabe Kangas e860f9ab2f Add missing content-type 2020-11-19 15:26:43 -08:00
Gabe KangasandGitHub d4426f1dff Make default config file simpler. Closes #364 (#375) 2020-11-19 08:48:33 -08:00
Gabe KangasandGitHub 30f8b77c25 Update owncast-release-checklist.md 2020-11-17 23:18:07 -08:00
Gabe Kangas 8ab5e0797e Fix TailwindCSS build missing classes 2020-11-17 22:10:24 -08:00
Gabe Kangas 09b570d64c Support framerate to be a float. For #378 2020-11-17 21:21:19 -08:00
Gabe Kangas 437b3063f8 Put content.md in data dir during build 2020-11-17 20:27:14 -08:00
Gabe Kangas 31e0382a87 Add error text to clarify config changes from #373 2020-11-17 15:30:50 -08:00
Gabe Kangas 1c753b2606 Update readme 2020-11-17 08:24:49 -08:00
Gabe Kangas a24dbc418b Tame down encoding performance alerts. Closes #338 2020-11-16 21:02:48 -08:00
Gabe Kangas bf4758d166 Update source building instructions to include the bundled admin 2020-11-16 20:37:49 -08:00
Gabe Kangas 34e9f92794 Update bundled admin 2020-11-16 14:38:57 -08:00
Gabe KangasandGitHub 4d2066a76d Start cleaning up linter errors. (#358)
* Start cleaning up linter errors. For #357

* Fix unmarshalling NullTime values

* More linter fixes

* Remove commented code

* Move defer up

* Consolidate error check lines

* Move error check to make sure row iteration was successful

* Cleaner error check + do not recreate pipe if it exists

* Consolidate hashing to generate client id
2020-11-14 18:39:53 -08:00
Gabe Kangas 934285c55b Move stats.json to data dir 2020-11-12 22:34:49 -08:00
Gabe Kangas 6df6b97815 Log auth middleware failures as Debug. Closes #342 2020-11-12 15:37:20 -08:00
Gabe Kangas 55a81029e5 Update admin 2020-11-11 19:59:05 -08:00
Gabe Kangas a9586b03fc Disable persistent http connections in transcoder 2020-11-11 00:28:01 -08:00
Gabe KangasandGitHub e8f1d5ef3f Typo 2020-11-10 15:05:33 -08:00
Gabe KangasandGitHub 7330722110 Link directly to new discussion post 2020-11-10 15:04:07 -08:00
Gabe KangasandGitHub 0a5ed6d942 Add link to Owncast discussions on Github 2020-11-10 15:03:21 -08:00