Giter VIP home page Giter VIP logo

scytherswings / plex-board Goto Github PK

View Code? Open in Web Editor NEW
72.0 9.0 4.0 3.5 MB

A dynamic dashboard for checking the status of multiple services related to Plex Media Server (Plex, Couchpotato, Sickrage, Deluge, Sabnzbd+, etc.).

License: MIT License

Ruby 69.09% HTML 17.40% JavaScript 8.86% CoffeeScript 0.53% CSS 0.74% Shell 3.39%
plex plex-board plex-dashboard plex-server dashboard healthchecker statuspage

plex-board's Introduction

This project has moved!

In order to avoid stepping on the Plex trademark I have renamed this project to Porthole. I am still in the process of moving and renaming things so please bear with me through this transition. If you have any questions feel free to ask in the new Gitter chatroom!


Plex-Board

Version 0.14.0

Build Status Coverage Status Gitter Donate


What is Plex-Board? Put simply, it is a dynamic dashboard for checking the status of multiple services related to Plex Media Server (Plex, Couchpotato, Sickrage, Deluge, Sabnzbd+, etc.).

This is essentially a revamp of a cool project (Network-Status-Page) I forked a little while ago.

Pronounced "Plex dash board" like that ghetto name La-a (La dash A)... sorry...

Just for clarification, yes this is another Plex dashboard, but this project is different and I'll tell you why.

PlexWatchWeb and PlexPy are projects oriented more towards statistics etc.

Plex-Board is meant to help the users and administrators of a Plex server get a quick overview on the status of the various services related to, and including Plex itself. There's a large list of features I plan to support in the future and I take all requests into consideration. If there is something you'd like to see, feel free to chat about it on Gitter, or create a feature request ticket.

Here are a few screenshots of v0.4.2 (the last major UI update): Now-Playing

Recently Added

All Services Panel

Plex Token Authentication

Modal dialog boxes!

System Requirements

You should have enough space to allow logs and an image cache, so I wouldn't recommend using on a system with less than 1GB free HDD space.

Rails can probably run on 512MB of RAM fine and CPU usage will vary. You can probably get away with a single core, but dual core may run smoother.

It will run on the original Raspberry Pi B+ which is pretty neat.

Installation Instructions

Other supported systems:

Ubuntu 16.04 LTS

These instructions have been tested on a fresh install of Ubuntu 16.04 LTS using bash as of 9/13/2017.

  1. sudo apt-get update && sudo apt-get install git bundler nodejs curl software-properties-common -y && sudo apt-add-repository -y ppa:rael-gc/rvm && sudo apt-get update && sudo apt-get install rvm -y

  2. Log out of your account and then log back in. Yes, log out, don't just close the terminal.

    This is because your user has just been added to the rvm group and a bunch of scripts have to run which only check your group on login.

    You could even reboot if you really feel like it.

  3. cd /opt
    You might have to give your user write permissions to this directory. If that is the case run:
    sudo chmod 777 /opt -R

  4. git clone https://github.com/scytherswings/Plex-Board.git

  5. rvm install ruby-2.4.2

    If you get a message saying something like:
    RVM is not a function, selecting rubies with 'rvm use ...' will not work.
    or
    No command 'rvm' found, but there are 26 similar ones
    Then you'll have to run:
    /bin/bash --login
    and then try again. This is because rvm needs am interactive login shell instead of the non-interactve shell that gnome normally provides.

    See https://github.com/rvm/ubuntu_rvm for more details.

    Also, installing ruby could take a while since it has to compile from source, you might want to get some coffee.

  6. cd /opt/Plex-Board

  7. ./serverSetup.sh

  8. Check the newly created server_config.yml file to see that all the settings match what you want them to. If you're not running behind a reverse proxy then you shouldn't need to touch this file at all.

  9. Plex-Board should now be installed!

Running Instructions

  1. ./startServer.sh
    If you get an error that looks like:
    ...Address family not supported by protocol - socket(2) for "::1" port 3000 (Errno::EAFNOSUPPORT)
    You can either disable IPv6 for your OS or edit the server_config.yml to use a specific IP address on your system e.g.
    192.168.0.102
    See the server_config.yml file for more details.

  2. ./stopServer.sh will stop the server.

Auto-start instructions coming soon.

Updating Instructions

  1. ./update.sh Will run git pull and serverSetup.sh for you.

If you have issues

  1. Read the CHANGELOG.md to make sure you haven't missed any important changes!
    I try to keep breaking changes to a minimum but sometimes it just isn't possible. Any time this happens the changelog will detail what the change is and how to fix it.

  2. Create an issue if you are having trouble figuring it out.
    Or you can ping me on Gitter and I'll help you out!

This project is not ready for real production use yet, so don't expect stability until a 1.0.0 release.

Then when things break you can yell at me and use this readme as an excuse.

Feedback

If you run into any bugs, please, make a ticket or ask in the Gitter chat room. I'm sure I'll miss something in my testing so feel free to let me know what I overlooked. Since I work on this project in my free time, I can't always respond to chats immediately but I'll do the best I can to get back to you within the day.

plex-board's People

Contributors

scytherswings avatar vuokkovuorinnen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plex-board's Issues

Remove status etc. data from database

The status doesn't need to be saved to the database, so it shouldn't be. This will reduce excess database activity. Status only matters when we're running the app, so saving it doesn't add value.

Sonarr Support

Will PlexBoard Support things like Sonarr? I find this to be the best option vs sickrage and sickbeard.
Sonarr has a nice API that you can ask about in their irc channel

Exception thrown if plex is unreachable

I'd like the service to not throw exceptions if api calls fail, the temporary solution is to catch these errors, but a better long term solution would be to wrap api calls into a class that can handle exceptions properly

Add plex now playing and progress bar

Gotta catch up to Network-Status-Page. Would be sweet if we could display the progress of media being played. Need to figure out how to display multiple servers, perhaps just more items in the carousel.

Can't modify frozen hash

This exception gets thrown every time I start up the app. I think it has to do with the way I am handling JSON somewhere.... it doesn't seem to be breaking anything at the moment though.

Add remote data like server load and disk space

Start adding functionality to show available disk space, and server load. This will take quite a bit of time because there will have to be a way for the rails server to reach out and contact whatever service you are trying to monitor which will take configuration on both sides.

Add Permissions and Users

It would be cool if the home page could display different content based on who is authenticated (or not authenticated). An example would be, unauthenticated users can only see what's playing/recently added while the admin could actually add servers, manage settings etc.

Add Unified search to allow users of a Plex server request new media to be added

I hate answering requests from my users who like to ask "Hey, can you add ___ to the Plex server?" Or "when is ___ going to be added?" Plex-Board should have functionality to help shut these annoying users up so us administrators can get back to our daily lives and stop running around adding things for people. This will most likely tie in with some configuration/authentication so that users don't see the administrative parts of the project and so that they can add media on their own. I'm thinking there should be configuration so that an administator can approve/deny new media requests or explicitly allow any media request to be handled by their attached download services such as sickrage/sonarr and couchpotato etc.

Add a dark theme

A configuration option to switch themes would be pretty sweet. I'm thinking about matching the theme that Plex has as a first option.

Add Plex Now Playing SSE

The carousel should update in response to media being played on the plex server without need for a refresh of the page

Add alerting capability

This is probably more than most users would be interested in, but it would be cool to get an email if your plex server goes down for x amount of time etc.

Services_controller getting nil session ids in plex_now_playing method

I haven't been able to figure out why session ids are nil in this controller, it is intermittent and irritating because it screws up the information the client receives over SSE unless I filter out nil IDs. The problem with filtering out these nil IDs is that the sessions then don't get updated in the browser. The sessions all have IDs when queried directly, and they also have IDs when queried via their associated service so I can't figure out how these IDs are sometimes nil when they are in this loop.

Make "Online"/"Offline" button always link to the URL provided

Right now it looks like if only "asdf" is provided, rails will try to route the link to the rails server, so if the URL is set to "asdf" then the link will be 0.0.0.0:3000/asdf which, of course doesn't exist. Now if "asdf" was resolvable by DNS, then this could be valid, so it should be treated as such.

Cache remote plex images

Instead of pulling images directly from the plex server, cache them and serve them up so that the plex server doesn't have to do any extra work.

Mock out Plex server for better testing

I want to create a mock Plex server to test against. This will take some time to put together, but I believe it will get more reliable results and it should make it easier to add more tests in the future.

Add support for FreeNAS

This is probably a duplicate of the storage space thing, but if there is value to specifically supporting FreeNAS then I don't see why it shouldn't get its own ticket.

Remove saving username and password for plex

I can grab the plex token once from plex.tv and just save that. If that changes after I have it, then I'll have to re-prompt for auth, but at least the password for your plex account won't be saved to a database anymore.

openuri files appearing in root

I think this has to do with the way images are getting pulled from plex. These extra files should delete themselves, but sometimes they don't... and nobody likes unused gibberish files.

Add alternative to carousel

There's a lot of hate on the internet for carousels, and a lot of it has good reason. I think there should be options for how we display data, suggestions welcome.

Overhaul SSE connection manager

The current implementation sucks. I'm going to strip down the logic implemented in javascript and figure out a better way to update the page. I already generate html on the server, so that logic should be re-used.

Service status buttons that work

Use SSE and JS to update buttons and make them refresh automatically while the page is open. (This means the page doesn't poll your servers, rather, the server polls your services and will update the webpage at a set interval! This is way less traffic than what Network-Status-Page used.) SSE is not supported by Internet Explorer (Sorry; not sorry.)

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.