Update documentation.
parent
fc924816df
commit
b2759c5298
|
@ -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
|
||||||
|
|
Reference in New Issue