diff --git a/README.md b/README.md index 17f2a0f8..eb3aa79d 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,25 @@ -# LMS - Lightweight Media Server +# LMS - Lightweight Music Server LMS is a self-hosted media streaming software, released under the GPLv3 license. It allows you to access your music using an http(s) web interface. ## Features - - Audio transcode for maximum interoperability and low bandwith requirements - - User management - - Browse your audio collection using tag-based filters - - Custom tags scan - - MusicBrainzID support to handle duplicated artist and release names - - Reverse proxy support +- Audio transcode for maximum interoperability and low bandwith requirements +- User management +- Browse your audio collection using tag-based filters +- Custom tag support +- MusicBrainzID support to handle duplicated artist and release names +- Reverse proxy support LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and memory are limited. -## Dependencies -### Debian - +## Installation +Here are the required packages to build on Debian Stretch: ```sh -apt-get install g++ autoconf automake libboost-filesystem-dev libboost-system-dev libavcodec-dev libavutil-dev libavformat-dev libav-tools libwtdbosqlite-dev libwthttp-dev libwtdbo-dev libwt-dev libmagick++-dev libpstreams-dev libconfig++-dev libpstreams-dev ffmpeg libtag1-dev +apt-get install g++ autoconf automake libboost-filesystem-dev libboost-system-dev libavcodec-dev libavutil-dev libavformat-dev libav-tools libmagick++-dev libpstreams-dev libconfig++-dev libpstreams-dev ffmpeg libtag1-dev ``` -## Build +You also need wt4, that is not packaged yet on Debian. See [installation instructions](https://www.webtoolkit.eu/wt/doc/reference/html/InstallationUnix.html). ```sh git clone https://github.com/epoupon/lms.git lms @@ -36,8 +35,6 @@ configure will report any missing library. make ``` -## Install - ```sh make install ``` @@ -51,6 +48,35 @@ All other settings are set using the web interface. It is highly recommended to run LMS as a non root user. Therefore make sure the user has write permissions on the working directory. +## Reverse proxy settings +You have to set the 'behind-reverse-proxy' option to 'true' in the configuration file. + +Here is an example to make LMS properly work on myserver.org using nginx. +``` +server { + listen 80; + + server_name myserver.org; + + access_log /var/log/nginx/myserver.access.log; + + proxy_request_buffering off; + proxy_buffering off; + proxy_buffer_size 4k; + + location / { + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + proxy_pass http://localhost:5091; + proxy_read_timeout 120; + } +} +``` + ## Running ```sh lms [config_file] @@ -60,7 +86,6 @@ Logs are output in the working directory, in the file 'lms.log' To connect to LMS, just open your favorite browser and go to http://localhost:5082 ## Credits - - Wt (http://www.webtoolkit.eu/) - bootstrap3 (http://getbootstrap.com/) - ffmpeg project (https://ffmpeg.org/)