mirror of
https://github.com/IrosTheBeggar/mStream.git
synced 2025-10-27 07:31:02 +00:00
220 lines
4.3 KiB
Markdown
220 lines
4.3 KiB
Markdown
# JSON config
|
|
|
|
Using a JSON config with mStream allows for more advanced configurations. This example contains all configurable params for reference purposes.
|
|
|
|
```
|
|
{
|
|
"port": 3030,
|
|
"userinterface":"public",
|
|
"secret": "b6j7j5e6u5g36ubn536uyn536unm5m67u5365vby435y54ymn",
|
|
"database_plugin":{
|
|
"dbPath":"/path/to/loki.db",
|
|
"interval": 2
|
|
},
|
|
"albumArtDir": "/media/album-art",
|
|
"folders": {
|
|
"blues": "/media/music/blues",
|
|
"rock": { "root": "/media/music/rock"}
|
|
},
|
|
"users": {
|
|
"paul": {
|
|
"password":"p@ssword",
|
|
"vpaths": ["blues", "rock"]
|
|
},
|
|
"james": {
|
|
"password":"qwerty",
|
|
"vpaths": "rock",
|
|
"lastfm-user": "username",
|
|
"lastfm-password": "password"
|
|
}
|
|
},
|
|
"ssl": {
|
|
"key": "/path/to/key.pem",
|
|
"cert": "/path/to/cert.pem"
|
|
}
|
|
}
|
|
```
|
|
|
|
All these params have default values. Technically, an empty objects would be valid. It's the same as running `mstream` without any config options
|
|
|
|
```
|
|
# This is valid
|
|
{ }
|
|
```
|
|
|
|
## Port
|
|
|
|
Sets the port. Defaults to 3000 if not set
|
|
|
|
## UI
|
|
|
|
Folder that contains the frontend for mStream. Defaults to `public` if not set
|
|
|
|
## Secret
|
|
|
|
Sets the secret key used for the login system. If this is not set, mStream will generate a random secret key on boot and previous login sessions will be voided
|
|
|
|
## Database
|
|
|
|
Set DB options here. You can set the path for the DB and the scan interval. Scan interval is set in hours. If you want to use a decimal for the scan interval, you need to put quotes around it
|
|
|
|
```
|
|
"database_plugin":{
|
|
"dbPath":"/path/to/loki.db",
|
|
"interval": "1.5"
|
|
}
|
|
```
|
|
|
|
## Folders
|
|
|
|
Folders are set by key value pairs. The key is used later to give access to folders on a per user basis. (more info in the users section)
|
|
|
|
There are two valid syntaxes for folders
|
|
|
|
```
|
|
"folders": {
|
|
"blues": "/media/music/blues",
|
|
"rock": { "root": "/media/music/rock"}
|
|
}
|
|
```
|
|
|
|
For now, these are identical. In the future, mStream will be able to offer different frontend features based on the directory type.
|
|
|
|
## Users
|
|
|
|
A basic user example.
|
|
|
|
```
|
|
{
|
|
"folders": {
|
|
"media": "/media/music"
|
|
},
|
|
"users": {
|
|
"paul": {
|
|
"password":"p@ssword",
|
|
"vpaths": "media"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
A user with multiple folders
|
|
|
|
```
|
|
{
|
|
"folders": {
|
|
"music": "/media/music",
|
|
"audiobooks": "/media/books/audio"
|
|
},
|
|
"users": {
|
|
"paul": {
|
|
"password":"p@ssword",
|
|
"vpaths": ["music", "audiobooks"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Multiple users with multiple directories
|
|
|
|
```
|
|
{
|
|
"folders": {
|
|
"jake-music": "/media/jake/music",
|
|
"finn-music": "/media/finn/music",
|
|
"audiobooks": "/media/books/audio"
|
|
},
|
|
"users": {
|
|
"jake": {
|
|
"password":"p@ssword",
|
|
"vpaths": ["jake-music", "audiobooks"]
|
|
},
|
|
"finn": {
|
|
"password":"p@ssword",
|
|
"vpaths": ["finn-music", "audiobooks"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
|
|
If there is no users object, the login system will not be enabled and anyone will be abe to access the server. All folders will be accessible
|
|
|
|
```
|
|
{
|
|
"folders": {
|
|
"music": "/media/music",
|
|
"audiobooks": "/media/books/audio"
|
|
}
|
|
}
|
|
```
|
|
|
|
## SSL
|
|
|
|
mStream comes with SSL support built in. Just add your key and cert and the server will take care of the rest
|
|
|
|
```
|
|
"ssl": {
|
|
"key": "/path/to/key.pem",
|
|
"cert": "/path/to/cert.pem"
|
|
}
|
|
```
|
|
|
|
## Album Art
|
|
|
|
Sets the path where album art will be saved. Defaults to the `image-cache` folder in the mStream directory
|
|
|
|
```
|
|
"albumArtDir": "/media/album-art"
|
|
```
|
|
|
|
## LastFM Scrobbling
|
|
|
|
Each user can have their own lastFM credentials
|
|
|
|
```
|
|
{
|
|
"folders": {
|
|
"jake-music": "/media/jake/music",
|
|
"finn-music": "/media/finn/music",
|
|
"audiobooks": "/media/books/audio"
|
|
},
|
|
"users": {
|
|
"jake": {
|
|
"password":"p@ssword",
|
|
"vpaths": ["jake-music", "audiobooks"],
|
|
"lastfm-user": "username",
|
|
"lastfm-password": "password"
|
|
},
|
|
"finn": {
|
|
"password":"p@ssword",
|
|
"vpaths": ["finn-music", "audiobooks"],
|
|
"lastfm-user": "username",
|
|
"lastfm-password": "password"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
If you want to use LastFM scrobbling without a user system, you can do the following
|
|
|
|
```
|
|
{
|
|
"folders": {
|
|
"music": "/media/music",
|
|
"audiobooks": "/media/books/audio"
|
|
},
|
|
"lastfm-user": "username",
|
|
"lastfm-password": "password"
|
|
}
|
|
```
|
|
|
|
## Port Forwarding
|
|
|
|
Set tunnel to true if you want mStream to try to auto configure port forwarding via uPNP
|
|
|
|
```
|
|
{
|
|
"tunnel": true
|
|
}
|
|
``` |