diff --git a/README b/README index dd778bc4..96dc92fb 100644 --- a/README +++ b/README @@ -1,70 +1 @@ -LMS - Lightweight Media Server - - -LMS is a self-hosted media streaming software, released under the GPLv3 license. -It allows you to access your music and your videos using an https web interface. - -Features: -- Winamp-like interface, suited for large databases -- Audio/Video transcode for maximum interoperability and low bandwith requirements -- User management -- LMS API available in Protocol Buffers (see src/lms-api/proto/messages.proto) - -Please note LMS is still under development and will gain more features in the future. -A mobile application based on Kivy is being developped as well. - -LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and/or memory are limited. -Please note some media files may require significant CPU usage to be transcoded. - -I) DEPENDENCIES - -Debian packages: -g++ autoconf automake libboost-dev libavcodec-dev libwtdbosqlite-dev libwthttp-dev libwtdbo-dev libwt-dev libprotobuf-dev libconfig++-dev libprotobuf-dev protobuf-compiler libjpeg8-dev libavcodec-dev libavformat-dev libavutil-dev - -Warning: your distrib may provide an outdated wt library. Using the latest Wt (>= 3.3.3) is highly recommended (see http://www.webtoolkit.eu/wt) - - -II) BUILD - -# autoreconf -vfi -# mkdir build -# cd build -# ../configure - -(configure will complain if a mandatory library is missing) - -The configure script allows you to disable the LMS API support (and protobuf dependencies) -See 'configure --help' for more information. - -# make - -III) Setting up SSL materials (required by the SSL server and the web server) - -This is just a self signed certificate example, you could do use a CA if you want. - -Generate a dh file: -# openssl dhparam -out dh2048.pem 2048 - -Generate a self signed certificate: -# openssl req -x509 -out cert.pem -keyout privkey.pem -newkey rsa:4096 - - -IV) RUNNING - -In the build directory: -# ./src/lms lms.conf - -Create the lms.conf file using the etc/lms.sample.conf -- "ui.resources.approot" has to refer to the ui/approot/ directory. -- "ui.resources.docroot" has to refer to the ui/docroot/ directory -You must also link Wt's docroot (usually located in /usr/share/Wt) into that directory. Example: -# ln -s /var/lms/docroot/resources /usr/share/Wt/resources - -Depending on your SSL parameters, you may be asked for the PEM passphrase to unlock the private key. - -V) LINKS - -- Wt (http://www.webtoolkit.eu/) -- bootstrap3 (http://getbootstrap.com/) -- libav project (https://www.libav.org/). -- Protocol Buffers (https://github.com/google/protobuf/) +See README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..301cb990 --- /dev/null +++ b/README.md @@ -0,0 +1,85 @@ +# LMS - Lightweight Media Server + +LMS is a self-hosted media streaming software, released under the GPLv3 license. +It allows you to access your music and your videos using an https web interface. + +## Features + - Winamp-like interface, suited for large databases + - Audio/Video transcode for maximum interoperability and low bandwith requirements + - User management + - LMS API available in Protocol Buffers (see src/lms-api/proto/messages.proto) + +Please note LMS is still under development and will gain more features in the future. + +LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and/or memory are limited. +Please note some media files may require significant CPU usage to be transcoded. + +## Dependencies +### Debian or Ubuntu packages +```sh +$ apt-get install g++ autoconf automake libboost-dev libboost-locale-dev libboost-iostreams-dev libboost-log-dev libavcodec-dev libwtdbosqlite-dev libwthttp-dev libwtdbo-dev libwt-dev libconfig++-dev libjpeg8-dev libavcodec-dev libavformat-dev libavutil-dvegi libav-tools +``` + +If you want to enable the LMS API, you need these additional packages: + +```sh +$ apt-get install libprotobuf-dev libprotobuf-dev protobuf-compiler +``` + +Warning: your distrib may provide an outdated wt library. Using the latest Wt (>= 3.3.3) is highly recommended (see http://www.webtoolkit.eu/wt) + +## Build + +```sh +$ autoreconf -vfi +$ mkdir build +$ cd build +$ ../configure +``` + +configure will complain if a mandatory library is missing. + +The configure script allows you to disable the LMS API support, see 'configure --help' for more information. +```sh +$ make +``` + +## Setting up SSL materials +This is required by the SSL server and the web server. + +Here is just a self signed certificate example, you could do use a CA if you want. + +Generate a dh file: +```sh +$ openssl dhparam -out dh2048.pem 2048 +``` + +Generate a self signed certificate: +```sh +$ openssl req -x509 -out cert.pem -keyout privkey.pem -newkey rsa:4096 +``` + +## Running + +In the build directory: +```sh +$ ./src/lms lms.conf +``` + +Create the lms.conf file using the etc/lms.sample.conf + - "ui.resources.approot" has to refer to the ui/approot/ directory. + - "ui.resources.docroot" has to refer to the ui/docroot/ directory +You must also link Wt's docroot (usually located in /usr/share/Wt) into that directory. Example: +```sh +ln -s /var/lms/docroot/resources /usr/share/Wt/resources +``` + +Depending on your SSL parameters, you may be asked for the PEM passphrase to unlock the private key. + +## Credits + +- Wt (http://www.webtoolkit.eu/) +- bootstrap3 (http://getbootstrap.com/) +- libav project (https://www.libav.org/). +- Protocol Buffers (https://github.com/google/protobuf/) + 73,1 Bot diff --git a/TODO b/TODO index 0b1846fd..01b7e987 100644 --- a/TODO +++ b/TODO @@ -15,6 +15,7 @@ - add a global play counter for tracks. This will help people to spot most popular files - rework the exception process in av/metadata/updater in case of bad files - Use the WServer::post method to notify the end of the database scan? (with results?) +- Put more config information in the database, access from the UI [Metadata] - OGG metadata -> properly handle metadata nested in the audio stream diff --git a/src/database-updater/DatabaseUpdater.cpp b/src/database-updater/DatabaseUpdater.cpp index 24b51d05..7169a54b 100644 --- a/src/database-updater/DatabaseUpdater.cpp +++ b/src/database-updater/DatabaseUpdater.cpp @@ -585,7 +585,7 @@ Updater::processRootDirectory(RootDirectory rootDirectory, Stats& stats) if (!_running) return; - if (!boost::filesystem::is_regular(*itPath)) + if (boost::filesystem::is_regular(*itPath)) { switch( rootDirectory.type ) {