diff --git a/INSTALL.md b/INSTALL.md index c8f44f61..4be9decd 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -50,7 +50,7 @@ git clone https://github.com/epoupon/lms.git lms cd lms mkdir build cd build -cmake .. -DCMAKE_BUILD_TYPE=Release +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ``` __Notes__: * you can customize the installation directory using `-DCMAKE_INSTALL_PREFIX=path` (defaults to `/usr/local`). @@ -106,7 +106,7 @@ You can define which authentication backend to be used thanks to the `authentica * `PAM`: the user/password authentication request is forwarded to PAM (see the default [PAM configuration file](conf/pam/lms) provided). * `http-headers`: _LMS_ uses a configurable HTTP header field, typically set by a reverse proxy to handle [SSO](https://en.wikipedia.org/wiki/Single_sign-on), to extract the login name. You can customize the field to be used using the `http-headers-login-field` option. __Note__: the first created user is the admin user -### `internal` backend: reset admin password +#### `internal` backend: reset admin password Open the the database file located in `/var/lms/lms.db` using `sqlite3`: ```sh sqlite3 /var/lms/lms.db diff --git a/README.md b/README.md index 2c1302a5..628ed696 100644 --- a/README.md +++ b/README.md @@ -12,16 +12,12 @@ A [demo instance](http://lms-demo.poupon.dev) is available. Note the administrat * Audio transcode for maximum interoperability and low bandwith requirements * Multi-value tags: artists, genres, composers, lyricists, moods, ... * [MusicBrainz Identifier](https://musicbrainz.org/doc/MusicBrainz_Identifier) support to handle duplicated artist and release names -* [ListenBrainz](https://listenbrainz.org) support for scrobbling and synchronizing listens -* Compilation support -* Disc subtitles support +* [ListenBrainz](https://listenbrainz.org) support for: + * Scrobbling and synchronizing listens + * Synchronizing 'love' feedbacks * ReplayGain support -* Persistent play queue across sessions -* _Systemd_ integration * User management, with several authentication backends, see [Deployment](INSTALL.md#deployment) -* Subsonic API, with the following additional features: - * Playlists - * Bookmarks +* Subsonic API ## Music discovery _LMS_ provides several ways to help you find the music you like: @@ -49,9 +45,7 @@ __Notes on the self-organizing map__: ## Subsonic API The API version implemented is 1.16.0 and has been tested on _Android_ using _Subsonic Player_, _Ultrasonic_ and _DSub_. - -Since _LMS_ uses metadata tags to organize music, a compatibility mode is used to navigate through the collection when using the directory browsing commands. - +Since _LMS_ uses metadata tags to organize music, a compatibility mode is used to browse the collection when using the directory browsing commands. The Subsonic API is enabled by default. __Note__: since _LMS_ may store hashed and salted passwords or may forward authentication requests to external services, it cannot handle the __token authentication__ method. You may need to check your client to make sure to use the __password__ authentication method. @@ -79,16 +73,14 @@ $setmulti(albumartistssort,%_albumartists_sort%) ## Security considerations _Wt_ (the web framework used) has some [built-in security measures](https://www.webtoolkit.eu/wt/features#security), but _LMS_ also has some too: -* to mitigate brute force login attempts, _LMS_ uses an internal login throttler based on the client IP address. The `Client-IP` or `X-Forwarded-For` headers are used to determined the real IP adress, so make sure to properly configure your reverse proxy to filter or even erase the values (see example in [INSTALL.md](INSTALL.md)). +* to mitigate brute force login attempts, _LMS_ uses an internal login throttler based on the client IP address. The `Client-IP` or `X-Forwarded-For` headers are used to determine the real IP adress, so make sure to properly configure your reverse proxy to filter or even erase the values (see example in [INSTALL.md](INSTALL.md)). * all passwords are stored hashed and salted using [bcrypt](https://fr.wikipedia.org/wiki/Bcrypt) -* all the resources relative to the music collection (tracks, covers, etc.) are private to a session +* all the resources relative to the music collection (tracks, covers, etc.) are private to an anthenticated session ## Installation - See [INSTALL.md](INSTALL.md) file. ## Contributing - Any feedback is welcome: * feel free to participate in [discussions](https://github.com/epoupon/lms/discussions) if you have questions, * report any bug or request for new features in the [issue tracker](https://github.com/epoupon/lms/issues), diff --git a/approot/admin-users.xml b/approot/admin-users.xml index ac326d97..ec9417f6 100644 --- a/approot/admin-users.xml +++ b/approot/admin-users.xml @@ -14,9 +14,12 @@
${name}${}${tag}${}
+ ${}
- ${}${edit-btn class="btn btn-sm btn-secondary me-1"}${del-btn class="btn btn-sm btn-danger"}${} + ${edit-btn class="btn btn-sm btn-outline-secondary border-0"} + ${del-btn class="btn btn-sm btn-outline-danger border-0"}
+ ${
} @@ -25,12 +28,9 @@ + diff --git a/approot/main.xml b/approot/main.xml index ffd58fbb..5947b3db 100644 --- a/approot/main.xml +++ b/approot/main.xml @@ -14,9 +14,9 @@