From 3ee7264799f076f0815c36c659c1f4570276d111 Mon Sep 17 00:00:00 2001 From: epoupon Date: Fri, 4 Sep 2015 13:56:51 +0200 Subject: [PATCH 1/4] Converted README to md format --- README | 70 --------------------------------------------- README.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 70 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index dd778bc4..00000000 --- a/README +++ /dev/null @@ -1,70 +0,0 @@ -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/) diff --git a/README.md b/README.md new file mode 100644 index 00000000..cd0a0bb1 --- /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 +``` + +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 From de62abdf0f18bd17c7771774d62b5d8da4e90341 Mon Sep 17 00:00:00 2001 From: epoupon Date: Fri, 4 Sep 2015 18:16:08 +0200 Subject: [PATCH 2/4] Restored README to mahe autoreconf happy --- README | 1 + 1 file changed, 1 insertion(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 00000000..96dc92fb --- /dev/null +++ b/README @@ -0,0 +1 @@ +See README.md From 6ee16b1794cb6a7790e42f826f9881400c38fc30 Mon Sep 17 00:00:00 2001 From: epoupon Date: Mon, 7 Sep 2015 12:44:27 +0200 Subject: [PATCH 3/4] Updated docs --- README.md | 2 +- TODO | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cd0a0bb1..301cb990 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ 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 +$ 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: diff --git a/TODO b/TODO index c5e44bc0..7efca200 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 From d3c923450e07e1abee38602dfff747957469c43d Mon Sep 17 00:00:00 2001 From: epoupon Date: Mon, 7 Sep 2015 12:58:35 +0200 Subject: [PATCH 4/4] [DB] Restored scanning --- src/database-updater/DatabaseUpdater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/database-updater/DatabaseUpdater.cpp b/src/database-updater/DatabaseUpdater.cpp index 9470c9be..34ae8ba4 100644 --- a/src/database-updater/DatabaseUpdater.cpp +++ b/src/database-updater/DatabaseUpdater.cpp @@ -569,7 +569,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 ) {