Vuejs-Leafplayer: LeafPlayer - A simple and fast, privately hosted music streaming server.

Unfortunately, this project is put on ice for now.

LeafPlayer

LeafPlayer is a simple and fast, privately hosted music streaming server. It enables you to access your private music collection from anywhere where there's internet access.

Screenshot

Installation

There are currently two methods to install LeafPlayer.

Using Docker

If you haven't heard about Docker, check it out here. It's amazing! Prerequisites for using this method are to have Docker and docker-compose installed.

After that everything is fairly simple. Just grab the docker-compose.yml and .env file from the dist directory and copy them to a location of your choice on your server.

Open the .env file and edit the following values

  • APP_KEY: Replace with a random 32 character string.
  • JWT_KEY: Same as above.
  • APP_TIMEZONE: Change to your desired timezone. See http://php.net/manual/en/timezones.php for a full list.
  • DB_PASSWORD: Change to something else if desired.
  • HTTP_PORT: The http port, that LeafPlayer should run on.
  • HTTPS_PORT: The https port, that LeafPlayer should run on.
  • CERT_CHAIN: Absolute path to your SSL certificate file
  • CERT_KEY: Absolute path to your SSL key file
  • MUSIC_DIR: Absolute path to your music files

After that just run docker-compose up -d.

Not Using Docker (The old school method)

You'll need to own a server or computer, capable of running the Lumen PHP framework and a supported database, for example MySQL. Those requirements are the following:

  • Webserver
  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Composer

Simply grab the latest release and copy the contents into your desired folder.

You'll also need a database dedicated to your LeafPlayer installation.

 $ composer install

 $ php artisan lp:setup

After the installer has finished successfully, you should be able to log in with the admin account you just created.

  • Note, that LeafPlayer is currently best suited to live at the root of a domain, so example.com or leafplayer.example.com but not in a subdirectory like example.com/leafplayer. If you need to deploy it to a subdirectory however, scroll down to the Advanced section.
  • The installer is currently being tested, so please let me know if any problems arise from using it.

Usage

Adding Media

For LeafPlayer to be useful, it obviously needs some music. In the administration panel you can add folders, which will then be scanned for mp3 files when starting a scan. In the future other file formats will be supported as well.
It's also possible to manage your collection from the console by using the scanner commands.

(All commands must be prefixed with php artisan )

  • lp:library:folder:add {path} Adds a folder to scan for files.
  • lp:library:folder:remove {id} Removes a folder by its ID.
  • lp:library:folder:list Lists all folders that are used for scanning.
  • lp:library:scan {--no-output} Starts a scan for media in the earlier specified folders.
  • lp:library:clean {--no-output} Cleans the database from missing files.
  • lp:library:wipe {--confirm} {--no-output} Deletes all media information from the database. Use with care.

Adding Users

Users can be added in the "Users" tab of the administration panel. Currently it's only possible to add users with default permissions.

Upgrading

Using Docker

Just pull the newest image and restart the containers.

 $ docker-compose pull
 
 $ docker-compose up -d

Not using Docker

There is no command to upgrade to a newer release. Currently it's a matter of replacing all files except of the .env file and the public/artwork folder.

A Short History

In late 2016 I was searching for a music streaming server to fit my needs, but none of the available alternatives could really satisfy me, which is why I decided to create my own.

How hard can it be?

As it turned out, it was - and still is - a lot of work for a single person, which is why I'm searching for active contributors for the project to create something amazing.

Contributing

Please see the CONTRIBUTING.md file for more info.

Advanced

Deploying into subdirectory

There's two things that you need to do.

  • Rebuild the frontend with the following command (See CONTRIBUTING.md for more details on how to build the project)

    $ node build/build.js --base=/YOUR_BASE_URL/
  • Edit the .htaccess file in the public directory and add your subdirectory to the RewriteBase argument.

    RewriteBase /YOUR_BASE_URL/
    

Comments

  • chore(deps): bump shelljs from 0.8.4 to 0.8.5
    chore(deps): bump shelljs from 0.8.4 to 0.8.5

    Jan 15, 2022

    Bumps shelljs from 0.8.4 to 0.8.5.

    Release notes

    Sourced from shelljs's releases.

    v0.8.5

    This was a small security fix for #1058.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    Reply
  • Adds a history of recently performed searches
    Adds a history of recently performed searches

    Jan 18, 2022

    null

                                                                                                                                                                                                           
    Reply
  • Bump node-notifier from 5.2.1 to 8.0.1 in /frontend
    Bump node-notifier from 5.2.1 to 8.0.1 in /frontend

    Dec 21, 2020

    ⚠️ Dependabot is rebasing this PR ⚠️

    If you make any changes to it yourself then they will take precedence over the rebase.


    Bumps node-notifier from 5.2.1 to 8.0.1.

    Changelog

    Sourced from node-notifier's changelog.

    v8.0.1

    • fixes possible injection issue for notify-send

    v8.0.0

    Breaking changes:

    • Expire time for notify-send is made to match macOS and Windows with default time of 10 seconds. The API is changed to take seconds as input and converting it to milliseconds before passing it on to notify-send. See #341.

    v7.0.2

    • Updates dependencies
    • Fixes issue with haning Windows notifications when disabled (#335)

    v7.0.1

    • Fixes import of uuid, removes deprecation warnings

    v7.0.0

    Features

    • NotifySend support for app-name (#299, see docs)

    Breaking Changes

    • All notify messages now have auto bound context to make it easier to pass as variables/arguments (#306)
    • Updated snoreToast to version 0.7.0 with new input features (#293)
    • Breaking snoreToast: Sanitizing data now changes "timedout" to "timeout"

    v6.0.0

    Breaking Changes

    • Dropped support for node v6. As of v6 we currently support node versions 8, 10, and 12 (latest).
    • Updated to the latest version of SnoreToast. This removes support for the wait option in that environment as it is now always on. Prepares the way for other new features added to the WindowsToaster.

    Other

    • Update to latest version of dependencies.

    v5.4.3

    • Reverts breaking dependency upgrades from v5.4.2 as some dependencies has removed Node 6 which is a breaking change.

    v5.4.2

    • Updates dependencies

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • Bump node-sass from 4.7.2 to 4.13.1 in /frontend
    Bump node-sass from 4.7.2 to 4.13.1 in /frontend

    Sep 4, 2020

    ⚠️ Dependabot is rebasing this PR ⚠️

    If you make any changes to it yourself then they will take precedence over the rebase.


    ⚠️ Dependabot is rebasing this PR ⚠️

    If you make any changes to it yourself then they will take precedence over the rebase.


    Bumps node-sass from 4.7.2 to 4.13.1.

    Release notes

    Sourced from node-sass's releases.

    v4.13.1

    Community

    Supported Environments

    OS Architecture Node
    Windows x86 & x64 0.10, 0.12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
    OSX x64 0.10, 0.12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
    Linux* x86 & x64 0.10, 0.12, 1, 2, 3, 4, 5, 6, 7, 8**, 9**, 10**^, 11**^, 12**^, 13**^
    Alpine Linux x64 6, 8, 10, 11, 12, 13
    FreeBSD i386 amd64 8, 10, 12, 13

    *Linux support refers to Ubuntu, Debian, and CentOS 5+ ** Not available on CentOS 5 ^ Only available on x64

    v4.13.0

    Features

    Community

    Dependencies

    Supported Environments

    OS Architecture Node
    Windows x86 & x64 0.10, 0.12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
    OSX x64 0.10, 0.12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
    Linux* x86 & x64 0.10, 0.12, 1, 2, 3, 4, 5, 6, 7, 8**, 9**, 10**^, 11**^, 12**^, 13**^
    Alpine Linux x64 6, 8, 10, 11, 12, 13
    FreeBSD i386 amd64 6, 8, 10, 12, 13

    *Linux support refers to Ubuntu, Debian, and CentOS 5+

    Changelog

    Sourced from node-sass's changelog.

    v4.13.1

    https://github.com/sass/node-sass/releases/tag/v4.13.1

    v4.13.0

    https://github.com/sass/node-sass/releases/tag/v4.13.0

    v4.12.0

    https://github.com/sass/node-sass/releases/tag/v4.12.0

    v4.11.0

    https://github.com/sass/node-sass/releases/tag/v4.11.0

    v4.10.0

    https://github.com/sass/node-sass/releases/tag/v4.10.0

    v4.9.4

    https://github.com/sass/node-sass/releases/tag/v4.9.4

    v4.9.3

    https://github.com/sass/node-sass/releases/tag/v4.9.3

    v4.9.2

    https://github.com/sass/node-sass/releases/tag/v4.9.2

    v4.9.1

    https://github.com/sass/node-sass/releases/tag/v4.9.1

    v4.9.0

    https://github.com/sass/node-sass/releases/tag/v4.9.0

    v4.8.3

    https://github.com/sass/node-sass/releases/tag/v4.8.3

    v4.8.2

    https://github.com/sass/node-sass/releases/tag/v4.8.2

    v4.8.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • Bump minimist from 1.2.0 to 1.2.3 in /frontend
    Bump minimist from 1.2.0 to 1.2.3 in /frontend

    Apr 4, 2020

    ⚠️ Dependabot is rebasing this PR ⚠️

    If you make any changes to it yourself then they will take precedence over the rebase.


    Bumps minimist from 1.2.0 to 1.2.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • Bump minimist from 1.2.0 to 1.2.2 in /frontend
    Bump minimist from 1.2.0 to 1.2.2 in /frontend

    Mar 15, 2020

    Bumps minimist from 1.2.0 to 1.2.2.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • ⬆️ Bump fastify-static from 3.4.0 to 4.2.4
    ⬆️ Bump fastify-static from 3.4.0 to 4.2.4

    Oct 5, 2021

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps fastify-static from 3.4.0 to 4.2.4.

    Release notes

    Sourced from fastify-static's releases.

    v4.2.4

    ⚠️ Security release

    CVE: CVE-2021-22963 Security Advisory: https://github.com/fastify/fastify-static/security/advisories/GHSA-p6vg-p826-qp3v See also: https://hackerone.com/reports/1354255 (disclosed soon)

    What's Changed

    New Contributors

    Full Changelog: https://github.com/fastify/fastify-static/compare/v4.2.3...v4.2.4

    v4.2.3

    ? PR:

    • Update README.md
    • Merge pull request #217 from olmesm/patch-1
    • Bump fastify/github-action-merge-dependabot from 2.0.0 to 2.1.0 (#207)
    • Bump tsd from 0.15.1 to 0.16.0 (#209)
    • Bump fastify/github-action-merge-dependabot from 2.1.0 to 2.1.1 (#210)
    • Bump tsd from 0.16.0 to 0.17.0 (#211)
    • Bump actions/setup-node from 2.1.5 to 2.2.0 (#213)
    • Bump @​types/node from 15.14.1 to 16.0.0 (#215)
    • Bump fastify/github-action-merge-dependabot from 2.1.1 to 2.2.0 (#216)
    • Bump actions/setup-node from 2.2.0 to 2.3.0 (#223)
    • Bump actions/setup-node from 2.3.0 to 2.3.1 (#224)
    • fix: call 404 handler if requested path is a dotfile (#225)

    v4.2.2

    ? PR:

    • fix content-encoding response header for gzip compression (#206)

    v4.2.1

    ? PR:

    • fix content-type header for precompressed assets (#204)
    • fix index not being served for precompressed assets (#205)

    v4.2.0

    ... (truncated)

    Commits
    • d97b2cf Bumped v4.2.4
    • 861e0e9 Merge pull request from GHSA-p6vg-p826-qp3v
    • 521b641 docs(readme): fix the 'download' method examples (#237)
    • 905468d build(deps): bump actions/setup-node from 2.4.0 to 2.4.1 (#236)
    • 2e97bdd fix(docs): list example and index option (#235)
    • a1a02cd Bump fastify/github-action-merge-dependabot from 2.4.0 to 2.5.0 (#233)
    • da1c3f0 Bump fastify/github-action-merge-dependabot from 2.3.0 to 2.4.0 (#229)
    • 587ef15 Bump fastify/github-action-merge-dependabot from 2.2.0 to 2.3.0 (#228)
    • 27e7035 Bump actions/setup-node from 2.3.2 to 2.4.0 (#227)
    • 652252b Bump actions/setup-node from 2.3.1 to 2.3.2 (#226)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    Reply
  • Hi, how can I open web
    Hi, how can I open web

    May 25, 2019

    Hi, I just run docker-compose up -d and what is next step I do it ?? How can I open app on website ? image

    Help me pls, thanks so much

    Reply