Merge branch 'develop' into sortname
This commit is contained in:
@@ -98,6 +98,7 @@ Get the latest stable release and build it:
|
|||||||
git clone https://github.com/epoupon/lms.git lms
|
git clone https://github.com/epoupon/lms.git lms
|
||||||
cd lms
|
cd lms
|
||||||
mkdir build
|
mkdir build
|
||||||
|
cd build
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=Release
|
cmake .. -DCMAKE_BUILD_TYPE=Release
|
||||||
```
|
```
|
||||||
__Note__: in order to customize the installation directory, you can use the _-DCMAKE_INSTALL_PREFIX_ option (defaults to `/usr/local`).
|
__Note__: in order to customize the installation directory, you can use the _-DCMAKE_INSTALL_PREFIX_ option (defaults to `/usr/local`).
|
||||||
@@ -163,6 +164,19 @@ All other settings are set using the web interface (user management, scan settin
|
|||||||
|
|
||||||
If a setting is not present in the configuration file, a hardcoded default value is used (the same as in the [default.conf](https://github.com/epoupon/lms/blob/master/conf/lms.conf) file)
|
If a setting is not present in the configuration file, a hardcoded default value is used (the same as in the [default.conf](https://github.com/epoupon/lms/blob/master/conf/lms.conf) file)
|
||||||
|
|
||||||
|
### Deploy on non root path
|
||||||
|
If you want to deploy on non root path (e.g. https://mydomain.com/newroot/), you have to set the `deploy-path` option accordingly in `lms.conf`.
|
||||||
|
|
||||||
|
As static resources are __not__ related to the `deploy-path` option, you have to perform the following steps if you want them to be on a non root path too:
|
||||||
|
* Create a new intermediary `newroot` directory in `/usr/share/lms/docroot` and move everything in it.
|
||||||
|
* Symlink `/usr/share/lms/docroot/newroot/resources` to `/usr/share/Wt/resources`.
|
||||||
|
* Edit `lms.conf` and set:
|
||||||
|
```
|
||||||
|
wt-resources = "" # do not comment the whole line
|
||||||
|
docroot = "/usr/share/lms/docroot/;/newroot/resources,/newroot/css,/newroot/images,/newroot/js,/newroot/favicon.ico";`
|
||||||
|
deploy-path = "/newroot/"; # ending slash is important
|
||||||
|
```
|
||||||
|
|
||||||
### Reverse proxy settings
|
### Reverse proxy settings
|
||||||
_LMS_ is shipped with an embedded web server, but it is recommended to deploy behind a reverse proxy. You have to set the _behind-reverse-proxy_ option to _true_ in the `lms.conf` configuration file.
|
_LMS_ is shipped with an embedded web server, but it is recommended to deploy behind a reverse proxy. You have to set the _behind-reverse-proxy_ option to _true_ in the `lms.conf` configuration file.
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -18,19 +18,18 @@ listen-port = 5082;
|
|||||||
listen-addr = "0.0.0.0";
|
listen-addr = "0.0.0.0";
|
||||||
behind-reverse-proxy = false;
|
behind-reverse-proxy = false;
|
||||||
|
|
||||||
# Location for deployment
|
|
||||||
deploy-path = "/";
|
|
||||||
|
|
||||||
# If enabled, these files have to exist and have correct permissions
|
# If enabled, these files have to exist and have correct permissions
|
||||||
tls-enable = false;
|
tls-enable = false;
|
||||||
tls-cert = "/var/lms/cert.pem";
|
tls-cert = "/var/lms/cert.pem";
|
||||||
tls-key = "/var/lms/privkey.pem";
|
tls-key = "/var/lms/privkey.pem";
|
||||||
tls-dh = "/var/lms/dh2048.pem";
|
tls-dh = "/var/lms/dh2048.pem";
|
||||||
|
|
||||||
# Path to the resources used by the web interface
|
# Path to the resources used by the web interface.
|
||||||
wt-resources = "/usr/share/Wt/resources";
|
wt-resources = "/usr/share/Wt/resources";
|
||||||
docroot = "/usr/share/lms/docroot/;/resources,/css,/images,/js,/favicon.ico";
|
docroot = "/usr/share/lms/docroot/;/resources,/css,/images,/js,/favicon.ico";
|
||||||
approot = "/usr/share/lms/approot";
|
approot = "/usr/share/lms/approot";
|
||||||
|
# Location for deployment (See README if you want to deploy on a non root path)
|
||||||
|
deploy-path = "/";
|
||||||
|
|
||||||
# Acoustic brainz's root API
|
# Acoustic brainz's root API
|
||||||
acousticbrainz-api-url = "https://acousticbrainz.org/api/v1/";
|
acousticbrainz-api-url = "https://acousticbrainz.org/api/v1/";
|
||||||
|
|||||||
+3
-1
@@ -43,13 +43,15 @@ std::vector<std::string> generateWtConfig(std::string execPath)
|
|||||||
const std::filesystem::path wtConfigPath {ServiceProvider<IConfig>::get()->getPath("working-dir") / "wt_config.xml"};
|
const std::filesystem::path wtConfigPath {ServiceProvider<IConfig>::get()->getPath("working-dir") / "wt_config.xml"};
|
||||||
const std::filesystem::path wtLogFilePath {ServiceProvider<IConfig>::get()->getPath("log-file", "/var/log/lms.log")};
|
const std::filesystem::path wtLogFilePath {ServiceProvider<IConfig>::get()->getPath("log-file", "/var/log/lms.log")};
|
||||||
const std::filesystem::path wtAccessLogFilePath {ServiceProvider<IConfig>::get()->getPath("access-log-file", "/var/log/lms.access.log")};
|
const std::filesystem::path wtAccessLogFilePath {ServiceProvider<IConfig>::get()->getPath("access-log-file", "/var/log/lms.access.log")};
|
||||||
|
const std::filesystem::path wtResourcesPath {ServiceProvider<IConfig>::get()->getPath("wt-resources", "/usr/share/Wt/resources")};
|
||||||
|
|
||||||
args.push_back(execPath);
|
args.push_back(execPath);
|
||||||
args.push_back("--config=" + wtConfigPath.string());
|
args.push_back("--config=" + wtConfigPath.string());
|
||||||
args.push_back("--docroot=" + ServiceProvider<IConfig>::get()->getString("docroot"));
|
args.push_back("--docroot=" + ServiceProvider<IConfig>::get()->getString("docroot"));
|
||||||
args.push_back("--approot=" + ServiceProvider<IConfig>::get()->getString("approot"));
|
args.push_back("--approot=" + ServiceProvider<IConfig>::get()->getString("approot"));
|
||||||
args.push_back("--deploy-path=" + ServiceProvider<IConfig>::get()->getString("deploy-path", "/"));
|
args.push_back("--deploy-path=" + ServiceProvider<IConfig>::get()->getString("deploy-path", "/"));
|
||||||
args.push_back("--resources-dir=" + ServiceProvider<IConfig>::get()->getString("wt-resources"));
|
if (!wtResourcesPath.empty())
|
||||||
|
args.push_back("--resources-dir=" + wtResourcesPath.string());
|
||||||
|
|
||||||
if (ServiceProvider<IConfig>::get()->getBool("tls-enable", false))
|
if (ServiceProvider<IConfig>::get()->getBool("tls-enable", false))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -153,9 +153,9 @@ LmsApplication::LmsApplication(const Wt::WEnvironment& env,
|
|||||||
messageResourceBundle().use(appRoot() + "tracksinfo");
|
messageResourceBundle().use(appRoot() + "tracksinfo");
|
||||||
|
|
||||||
// Require js here to avoid async problems
|
// Require js here to avoid async problems
|
||||||
requireJQuery("/js/jquery-1.10.2.min.js");
|
requireJQuery("js/jquery-1.10.2.min.js");
|
||||||
require("/js/mediaplayer.js");
|
require("js/mediaplayer.js");
|
||||||
require("/js/bootstrap-notify.js");
|
require("js/bootstrap-notify.js");
|
||||||
|
|
||||||
setTitle("LMS");
|
setTitle("LMS");
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@ LmsApplication::handleException(LmsApplicationException& e)
|
|||||||
btn->clicked().connect([this]()
|
btn->clicked().connect([this]()
|
||||||
{
|
{
|
||||||
setConfirmCloseMessage("");
|
setConfirmCloseMessage("");
|
||||||
redirect("/");
|
redirect(".");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,7 +302,7 @@ LmsApplication::goHomeAndQuit()
|
|||||||
{
|
{
|
||||||
setConfirmCloseMessage("");
|
setConfirmCloseMessage("");
|
||||||
WApplication::quit("");
|
WApplication::quit("");
|
||||||
redirect("/");
|
redirect(".");
|
||||||
}
|
}
|
||||||
|
|
||||||
enum IdxRoot
|
enum IdxRoot
|
||||||
|
|||||||
Reference in New Issue
Block a user