Update documentation.

merge-requests/8/head
knotteye 4 years ago
parent fc924816df
commit b2759c5298
  1. 3
      README.md
  2. 57
      docs/CONFIGURATION.md
  3. 26
      docs/USAGE.md
  4. 4
      install/satyr.service

@ -2,13 +2,12 @@
System dependencies: A stable version of node>=10, mysql3 (or a compatible implementation such as MariaDB), and ffmpeg >=4.2 System dependencies: A stable version of node>=10, mysql3 (or a compatible implementation such as MariaDB), and ffmpeg >=4.2
### Build Instructions ### Setup Instructions
```bash ```bash
git clone https://gitlab.com/knotteye/satyr.git git clone https://gitlab.com/knotteye/satyr.git
cd satyr cd satyr
npm install npm install
npm run setup npm run setup
npm run build
``` ```
Follow the instructions after setup runs. Follow the instructions after setup runs.

@ -7,8 +7,6 @@ Some values you might want to change are
satyr: satyr:
registration: true registration: true
# allow new users to register # allow new users to register
rootRedirect: '/users/live'
# the page users are directed to when they visit your site root
http: http:
hsts: true hsts: true
@ -20,29 +18,56 @@ media:
transcode: transcode:
adapative: true adapative: true
# enable adaptive livestreaming # enable adaptive livestreaming when transcoding to mpeg-dash
# will help users with poor connections, but EXTREMELY cpu intensive # this will help users with poor connections, but is very cpu intensive
# even 3 variants will max out most budget VPSs with a single stream # even 3 variants will max out most budget VPSs with a single stream
variants: 3 variants: 3
# the number of adaptive streaming variants to generate # the number of stream variants to generate when transcoding
# satyr will always copy the source stream # satyr will generate one source quality variant, and the remaining
# and the remaining variants will lower the quality incrementally # variants will be of incrementally lower quality and bitrate
# So the default setting of 3 will copy the source stream once # having more than 4-5 variants will start giving diminishing returns on stream quality for cpu load
# And generate two lower quality & bitrate variants # if you can't afford to generate at least 3 variants, it's reccomended to leave adaptive streaming off
crypto: crypto:
saltRounds: 12 saltRounds: 12
#change the number of rounds of bcrypt to fit your hardware # change the number of rounds of bcrypt to fit your hardware
#if you don't understand the implications, don't change this # if you don't understand the implications, don't change this
irc: chat:
port: 6667 # the following settings are for chat mirroring bots
#irc settings # users will still need to choose which channel to mirror
#currently unused # for their chat at /profile/chat
irc:
enabled: true
# enable irc mirroring
server: chat.freenode.net
port: 6697
tls: true
# settings for the server the IRC bot will connect to
nickname: 'satyrchat'
sasl: true
password: 'definitelyrealpassword'
# if you want the bot to authenticate itself to reserve the username
discord:
enabled: true
# enabled discord integration
token: abcdefghijklmnopqrstuvwxyz
# the access token for the bot
# note that the bot will mirror every channel matching the name the user has chosen
# even if it's connected to multiple servers
twitch:
enabled: true
username: satyrchataccount
token: asdfghjklASDFGHJKL
# access token for the twitch chat bot
# this is not the account password, you will need to generate a token here:
# https://twitchapps.com/tmi/
``` ```
### Web Frontend ### Web Frontend
If you want to customize the front-end css, place a file with any changes you wish to make at site/local.css If you want to customize the front-end css, place a file with any changes you wish to make at site/local.css
You can change the logo by replacing site/logo.svg. You can change the logo by replacing site/logo.svg.
You should also consider editing templates/about.html and templates/tos.html You should also consider editing templates/about.html and templates/tos.html

@ -2,13 +2,6 @@
### Administration ### Administration
Satyr needs access to port 1935 for RTMP streams, and will serve HTTP on port 8000. The ports can be changed with follow config lines. Satyr needs access to port 1935 for RTMP streams, and will serve HTTP on port 8000. The ports can be changed with follow config lines.
```
[server.http]
port = 8000
[server.rtmp]
port = 1935
```
Changing the rtmp port is not recommended.
For HTTPS, run a reverse proxy in front of satyr. An example nginx block is shown below. For HTTPS, run a reverse proxy in front of satyr. An example nginx block is shown below.
``` ```
@ -33,12 +26,6 @@ server {
} }
``` ```
Users can be added from the command line even if registration is closed. Use the following syntax.
```bash
npm run-script user -- --adduser kawen --password imkawen
npm run-script user -- --rmuser lain
```
### Users ### Users
#### Accounts #### Accounts
@ -49,15 +36,18 @@ Stream keys can be changed at example.tld/changesk, and passwords at /changepwd
Chat is based on Socket.IO, and can be accessed through the webclient at /chat. Chat is based on Socket.IO, and can be accessed through the webclient at /chat.
Chatting and changing a nickname do not require authentication, but the usernames of streamers are reserved. Chatting and changing a nickname do not require authentication, but the usernames of streamers are reserved.
The following commands are available: The following commands are available:
`/nick kawen (password)` Password is only required if kawen is a registered user. `/nick sally (password)` Password is only required if sally is a registered user.
`/join kawen` Join the chatroom for kawen's stream and leave the previous room. `/join sally` Join the chatroom for sally's stream and leave the previous room.
`/kick lain` Available only in your own room if you are a streamer. Forcefully disconnect the user. `/kick bob` Available only in your own room if you are a streamer. Forcefully disconnect the user.
`/ban lain (time)` Ban a user from your room. Bans are based on IP address. The optional time is in minutes. The default is 30. `/ban bob (time)` Ban a user from your room. Bans are based on IP address. The optional time is in minutes. The default is 30.
`/banlist` List the IPs currently banned from your room. `/banlist` List the IPs currently banned from your room.
`/unban (ip)` self explanatory `/unban (ip)` self explanatory
You can set up mirroring to and from webchat rooms and IRC channels, twitch streams, and discord server channels.
More information is in CONFIGURATION.md
#### Streaming #### Streaming
Users should stream to rtmp://example.tld/stream/examplestreamkey Users should stream to rtmp://example.tld/stream/examplestreamkey
The stream will be available at rtmp://example.tld/live/kawen and http://example.tld/live/kawen/index.m3u8 or .mpd if you've enabled DASH. (Enabling both HLS and DASH is not recommended for most use cases.) The stream will be available at rtmp://example.tld/live/kawen and http://example.tld/live/kawen/index.mpd
Most software, such as OBS, will have a separate field for the URL and stream key, in which case the user can enter rtmp://example.tld/stream/ and the stream key in the appropriate field. Most software, such as OBS, will have a separate field for the URL and stream key, in which case the user can enter rtmp://example.tld/stream/ and the stream key in the appropriate field.

@ -9,7 +9,7 @@ Restart=on-failure
User=satyr User=satyr
Environment="HOME=/var/lib/satyr" Environment="HOME=/var/lib/satyr"
WorkingDirectory=/opt/satyr WorkingDirectory=/opt/satyr
ExecStart=/usr/bin/npm start ExecStart=/usr/bin/npm run start
PrivateTmp=true PrivateTmp=true
ProtectHome=true ProtectHome=true
@ -17,4 +17,4 @@ ProtectSystem=full
NoNewPrivileges=true NoNewPrivileges=true
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target