Coder Social home page Coder Social logo

alex-nalivko / roon-web-controller Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pluggemi/roon-web-controller

0.0 0.0 0.0 1.59 MB

This is an extension for the Roon music player that provides a web based remote.

License: MIT License

JavaScript 74.64% CSS 10.32% HTML 15.03%

roon-web-controller's Introduction

Roon Web Controller 1.2.13

This is an extension for the Roon music player that provides a web based remote.

NOTE: this is the final release of the 1.x series.

New features

Security

  • updated dependencies for security issues.

See the CHANGELOG.md for complete list of changes

Upgrade notes

The package dependencies have been updated to the latest versions. It is recommended to perform an update.

If you followed the Diet Pi installation guide, follow these update instructions

Otherwise, on the Node.js server:

  1. Stop the extension
  2. Run git pull
  3. Run npm install
  4. Run npm update
  5. Start the extension

Screenshots

Dark Theme

Dark Theme Dark Theme

Album Credit: Julia Kent, Asperities

Cover Art Theme

Cover Art Theme Cover Art Theme

Album Credit: Beats Antique, Blind Threshold

Dominant Color Theme

The icons and text in this theme automatically adjust to show light or dark depending on which would be more readable. Dominant Color Theme Dominant Color Theme

Album Credit: Carbon Based Lifeforms, Twentythree

Library Browser - Home Screen

Library - Home Library - Home

Library Browser - Artist Screen

Library - Artist Library - Artist

Library Browser - Album Screen

Library - Album Library - Album

Installation

Ensure that Node.js version 6.x or higher is installed.

Grab the software:

  • Via git (preferred): git clone https://github.com/pluggemi/roon-web-controller.git
  • Or download and extract the zip file.

Change directory into the software: cd roon-web-controller

Install the Node.js modules npm install

Run the application: node app.js

On an existing Roon client, go to "Settings" then "Extensions". Click "Enable" beside "Web Controller".

Open a web browser to your server at either "http://localhost:8080" or "http://(IP of Device):8080".

Firewall ports

Many operating systems now have a firewall enabled by default. Make sure that the port that this is running is open on the firewall. By default, this is TCP port 8080. But this can be changed with the configuration file or command line options below.

(Optional) Local configuration file

Simply copy config/local.json.EXAMPLE to config/local.json and edit config/local.json as needed.

  • config/local.json is not tracked by git, so it will not be clobbered with updates
  • config/local.json.EXAMPLE is tracked by git and will be updated in the future as new options are available

Content of config/local.json.EXAMPLE

// Copy this file to "local.json" and change the port as desired.
{
  "server": {
    "port": "1234"
  }
}

(Optional) Command Line Options

This is the output node app.js -h which shows usage of the command line options.

Roon Web Controller

 A web based controller for the Roon Media System.

 Usage: node app.js <options>

Options

 -h, --help          Display this usage guide.
 -p, --port number   Specify the port the server listens on.

 Project home: https://github.com/pluggemi/roon-web-controller

(Optional) Sample systemd unit file

systemd is the init system used by modern Linux systems. Here is a sample systemd unit file which can be used to automatically start this application at Linux system boot time.

[Unit]
Description=NodeJS app - Roon Web Controller
After=network.target

[Service]
User=node
WorkingDirectory=/srv/node/roon-web-controller
ExecStart=/usr/bin/node app.js

[Install]
WantedBy=multi-user.target

Usage

To use this unit file:

  • Save this template to a file called roon-web-controller.service
  • Edit the user field to be the user running the application
  • Edit the WorkingDirectory field to be the location where the application is installed (NOTE: the user must have read and write access to this location!)
  • Using either sudo or as root, copy the edited roon-web-controller.service file to /usr/lib/systemd/system
  • Reload systemd: sudo systemctl daemon-reload
  • Start the application: sudo systemctl start roon-web-controller.service
  • Enable the application at boot up: sudo systemctl enable roon-web-controller.service

You can monitor the output of this application using journalctl.

  • To show the application output: sudo journalctl -u roon-web-controller
  • To follow the application output: sudo journalctl -f -u roon-web-controller

NOTE: Some Linux distributions - including DietPi and Software Collections (addon repository for Red Hat, Centos, and Fedora) - install the Node.js binaries in a different location. You can find the executable by running which node. Adjust the ExecStart line accordingly.

Here is a list of common locations:

  • /usr/bin/node
  • /usr/local/bin/node
  • /opt/rh/rh-nodejs6/root/usr/bin/node
  • /opt/rh/rh-nodejs8/root/usr/bin/node

Credits

In addition to those packages installed via npm, this project uses:

Thanks go to st0g1e for doing one of the first web clients for the Roon API.

Thanks go to jcharr1 for suggesting and doing the initial implementation of OS native song notifications.

And of course thanks go to Roon Labs for making the music player and the APIs.

License

The MIT License (MIT)

Copyright (c) 2019 Mike Plugge

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

roon-web-controller's People

Contributors

pluggemi avatar jcharr1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.