Autizmo Movie Night https://movie-night.autizmo.xyz
Go to file
brosilio 84f3fc5761 Changed settings.go to allow disabling the ratelimits.
Before, the settings parser would automatically reset the ratelimit
times to the default if you set them to zero. You could get around
this by setting the ratelimits to -1, but then the parser would
immediately set them to zero and write to disk. On next launch,
the parser would read the zeros and then reset the values to
default, so you would have to modify your ratelimits every
launch.
2020-08-09 19:36:22 -04:00
common colors: remove colors that aren't AA accessible 2020-06-03 22:30:45 -07:00
docker added docker-compose file 2020-03-19 12:55:17 +01:00
static Merge pull request #124 from dunn/emote-grid 2020-06-08 11:00:07 -04:00
wasm Don't wrap name highlights with colons 2020-04-27 12:50:29 -04:00
.dockerignore add dockerignore file 2020-06-08 22:19:09 -07:00
.gitignore Use system wasm_exec.js 2020-03-29 20:47:42 -06:00
.travis.yml Enable module support for Travis 2019-04-04 10:38:14 -04:00
Dockerfile added Dockerfile 2020-03-19 11:49:42 +01:00
Makefile Use system wasm_exec.js 2020-03-29 20:47:42 -06:00
chatclient.go Fix name highlighting breaking emotes 2019-09-22 15:42:48 -04:00
chatclient_test.go Fix name highlighting breaking emotes 2019-09-22 15:42:48 -04:00
chatcommands.go Prepend @ symbol to names shown in user list, so they highlight 2020-05-28 16:41:28 -04:00
chatroom.go add new setting to suppress join/leave announcements 2020-06-03 19:47:57 -07:00
connection.go Add some logging 2019-03-24 18:58:59 -04:00
emotes.go emotes: send OAuth secret token to Twitch when fetching emotes 2020-06-04 00:32:01 -07:00
errors.go Add more information to error output 2019-03-15 18:57:12 -04:00
favicon.png Replace favicon with something else 2019-03-18 11:21:17 -04:00
go.mod Removed dependency of dennwc\dom\js 2019-09-22 14:31:04 -04:00
go.sum commiting so zorch can do my work 2019-06-01 19:41:28 -04:00
handlers.go allow customization of <title> 2020-06-03 12:24:07 -07:00
license.md Add MIT license 2020-07-09 18:48:08 -04:00
main.go Add option to change the RTMP listen address 2020-06-12 23:58:45 -04:00
notes.txt Initial commit 2019-03-10 11:42:12 -04:00
readme.md Add MIT license 2020-07-09 18:48:08 -04:00
settings.go Changed settings.go to allow disabling the ratelimits. 2020-08-09 19:36:22 -04:00
settings_example.json Add option to change the RTMP listen address 2020-06-12 23:58:45 -04:00
stats.go Add some more stats 2019-04-14 00:25:49 -04:00

readme.md

Table of Contents

MovieNight stream server

Build status

This is a single-instance streaming server with chat. Originally written to replace Rabbit as the platform for watching movies with a group of people online.

Build requirements

  • Go 1.13 or newer
  • GNU Make

Older Go Versions

You can install a newer version of Go alongside your OS's distribution by following the guide here: https://golang.org/doc/install#extra_versions

Once you have that setup add an enviromnent variable named GO_VERSION and set it to the version you installed (eg, 1.14.1). The Makefile will now use the newer version.

Compile and install

To just download and run:

$ git clone https://github.com/zorchenhimer/MovieNight
$ cd MovieNight
$ make
$ ./MovieNight

Docker build

MovieNight provides a Dockerfile and a docker-compose file to run MovieNight using Docker.

Building the Container

Install Docker, clone the repository and build:

docker build -t movienight .

Running the Container

Run the image once it's built:

docker run -d -p 8089:8089 -p 1935:1935 [-v ./settings.json:/config/settings.json] movienight

Explanation:

  • -d runs the container in the background.
  • -p 8089:8089 maps the MovieNight web interface to port 8089 on the server.
  • -p 1935:1935 maps the RTMP port for OBS to port 1935 (default RTMP port) on the server.
  • -v ./settings.json:/config/settings.json maps the file settings.json into the container. [OPTIONAL]

docker-compose

docker-compose will automatically build the image, no need to build it manually.

Install Docker and docker-compose, clone the repository and change into the directory ./docker. Then run:

docker-compose up -d

This docker-compose file will create a volume called movienight-config and automatically add the standard settings.json file to it. It also maps port 8089 and 1935 to the same ports of the host.

Notes for Running Using docker-compose

The container needs to be restarted to apply any changes you make to settings.json.

Usage

Now you can use OBS to push a stream to the server. Set the stream URL to

rtmp://your.domain.host/live

and enter the stream key.

Now you can view the stream at

http://your.domain.host:8089/

There is a video only version at

http://your.domain.host:8089/video

and a chat only version at

http://your.domain.host:8089/chat

The default listen port is :8089. It can be changed by providing a new port at startup:

Usage of .\MovieNight.exe:
  -e bool
        Whether or not to download approved emotes on startup (default "false")
  -k string
        Stream key, to protect your stream (default: "")
  -l string
        host:port of the MovieNight (default ":8089")
  -r string
        host:port of the RTMP server (default ":1935")

Configuration

MovieNights configuration is controlled by settings.json:

  • AdminPassword: users can enter /auth <value> into chat to grant themselves admin privileges. This value is automatically regenerated unless RegenAdminPass is false.
  • ApprovedEmotes: list of Twitch users whose emotes can be imported into MovieNight. Using /addemotes <username> in chat will add to this list.
  • Bans: list of banned users.
  • LetThemLurk: if false, announces when a user enters and leaves chat.
  • ListenAddress: the port that MovieNight listens on, formatted as :8089.
  • LogFile: the path of the MovieNight logfile, relative to the executable.
  • LogLevel: the log level, defaults to debug.
  • MaxMessageCount: the number of messages displayed in the chat window.
  • NewPin: if true, regenerates RoomAccessPin when the server starts.
  • PageTitle: The base string used in the <title> element of the page. When the stream title is set with /playing, it is appended; e.g., Movie Night | The Man Who Killed Hitler and Then the Bigfoot
  • RegenAdminPass: if true, regenerates AdminPassword when the server starts.
  • RoomAccess: the access policy of the chat room; this is managed by the application and should not be edited manually.
  • RoomAccessPin: if set, serves as the password required to enter the chatroom.
  • SessionKey: key used for storing session data (cookies etc.)
  • StreamKey: the key that OBS will use to connect to MovieNight.
  • StreamStats: if true, prints statistics for the stream on server shutdown.
  • TitleLength: the maximum allowed length for the stream title (set with /playing).
  • TwitchClientID: OAuth client ID for the Twitch API, used for fetching emotes
  • TwitchClientSecret: OAuth client secret for the Twitch API; can be generated locally with curl.
  • WrappedEmotesOnly: if true, requires that emote codes be wrapped in colons or brackets; e.g., :PogChamp:
  • RateLimitChat: the number of seconds between each message a non-privileged user can post in chat.
  • RateLimitNick: the number of seconds before a user can change their nick again.
  • RakeLimitColor: the number of seconds before a user can change their color again.
  • RateLimitAuth: the number of seconds between each allowed auth attempt
  • RateLimitDuplicate: the numeber of seconds before a user can post a duplicate message.
  • NoCache: if true, set Cache-Control: no-cache, must-revalidate in the HTTP header, to prevent caching responses.

License

flv.js is Licensed under the Apache 2.0 license. This project is licened under the MIT license.